Re: [GIT PATCH] scsi bug fixes for 2.6.17-rc5

From: Kai Makisara
Date: Thu Jun 01 2006 - 01:06:11 EST


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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/