On Sun, 20 Jan 2008 09:40:11 -0700 Matthew Wilcox <matthew@xxxxxx> wrote: > On Wed, Jan 16, 2008 at 01:32:17PM +0900, FUJITA Tomonori wrote: > > This removes static array sense_buffer in scsi_cmnd and uses > > dynamically allocated sense_buffer (with GFP_DMA). > > > > The reason for doing this is that some architectures need cacheline > > aligned buffer for DMA: > > > > http://lkml.org/lkml/2007/11/19/2 > > > > The problems are that scsi_eh_prep_cmnd puts scsi_cmnd::sense_buffer > > to sglist and some LLDs directly DMA to scsi_cmnd::sense_buffer. It's > > necessary to DMA to scsi_cmnd::sense_buffer safely. This patch solves > > these issues. > > > > __scsi_get_command allocates sense_buffer via kmem_cache_alloc and > > attaches it to a scsi_cmnd so everything just work as before. > > I think this is fine for the moment. > > Longer-term, I want to allow low-level drivers to allocate the > sense_buffer themselves so they can DMA directly into it (ie grown-up dma > mapping, rather than this quaint x86 __GFP_DMA). This patch doesn't get Yeah, I think that the approach is one of candidates. If we go with it, I think that the major issue is that LLDs don't know when they can reclaim sense_buffer from scsi-ml; scsi-ml uses sense_buffer after scmd->scsi_done. > us any closer to that, but it doesn't get us further away from it either. - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html