Matthew Wilcox wrote: > On Sat, Aug 19, 2006 at 12:11:34AM -0400, Douglas Gilbert wrote: >>> Your point about the change to sg_vma_nopage() between >>> lk 2.6.15 and lk 2.6.16 also seems to be correct. >>> The most indented part of that function has been >>> changed from incrementing the change count on the >>> reported page (as indicated by 'offset') in a >>> compound page allocation to ignoring the 'offset' >>> and incrementing the page count on the first page >>> in a compound page allocation. >> if (offset < len) { >> - page = sg->page; >> + page = virt_to_page(page_address(sg->page) + offset); >> get_page(page); /* increment page count */ > > But page_address can return NULL on highmem machines. Or are you > guaranteed that these are lowmem pages? Matthew, The allocation is typically compound done with: alloc_pages(GFP_ATOMIC|__GFP_COMP|__GFP_NOWARN, order) where 'order' is 3 (hence 32 KB). The lack of a '__GFP_HIGHMEM' flag should mean these are lowmem pages (?). The (compound) pages in question would have already been mmap()-ed by the user. Doug Gilbert - 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