On Tue, 30 Nov 2010 19:24:25 +0200 Boaz Harrosh <bharrosh@xxxxxxxxxxx> wrote: > I looked at enlarge_buffer() and it looks fragile and broken. If you really > need a pointer eg: > STbuffer->b_data = page_address(STbuffer->reserved_pages[0]); > > Than way not use vmalloc() for buffers larger then PAGE_SIZE? But better yet As Kai said, this buffer is used for dma so you can't use vmalloc. sg drivers keeps an array for pages. b_data is used for some commands that do small data transfer (< PAGE_SIZE). So the driver exploits the first page for it. > avoid it by keeping a pages_array or sg-list and operate on an aio type > operations. As explained, the driver keeps a pages_array. -- 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