On Wed, 31 May 2006, James Bottomley wrote: > This is my current slew of small bug fixes which either fix serious > bugs, or are completely safe for this -rc5 stage of the kernel. I've > added one more since I last sent you this pull request (the fix memory > building non-aligned sg lists) > > The patch is available from: > > master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6.git > > The short changelog is: > > Bryan Holty: > o fix memory building non-aligned sg lists > I looked at www.kernel.org/git/?p=linux/kernel/git/jejb/scsi-rc-fixes-2.6.git;. This patch does the following change: - int nr_pages = (bufflen + PAGE_SIZE - 1) >> PAGE_SHIFT; + int nr_pages = PAGE_ALIGN(bufflen + sgl[0].offset); This seems to wrong: the new version is missing the right shift. For instance, offset=0 and bufflen=4096 results in 4096 and not 1! (Using asm-x86_64, the new version translates to ((bufflen + sgl[0].offset+PAGE_SIZE-1)&(~(PAGE_SIZE-1))) ) According to the original patch by Brian, the change should probably have been to (or something equivalent): + int nr_pages = (bufflen + sgl[0].offset + PAGE_SIZE - 1) >> PAGE_SHIFT; This was tested by several people. Did anyone test the version put into scsi-rc-fixes-2.6.git? -- Kai - : 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