From: Chris Wright Date: Mon, 19 Jun 2006 19:20:19 +0000 (-0700) Subject: scsi_req_map_sg page count fix, fwd from Chuck Ebbert X-Git-Tag: v2.6.16.21~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=26b89c7a7d33c6d520e573e0d0b7c5ad88b10f76;p=thirdparty%2Fkernel%2Fstable-queue.git scsi_req_map_sg page count fix, fwd from Chuck Ebbert --- diff --git a/queue-2.6.16/scsi_lib.c-properly-count-the-number-of-pages-in-scsi_req_map_sg.patch b/queue-2.6.16/scsi_lib.c-properly-count-the-number-of-pages-in-scsi_req_map_sg.patch new file mode 100644 index 00000000000..427e98605bd --- /dev/null +++ b/queue-2.6.16/scsi_lib.c-properly-count-the-number-of-pages-in-scsi_req_map_sg.patch @@ -0,0 +1,32 @@ +From stable-bounces@linux.kernel.org Wed Jun 7 21:15:48 2006 +Date: Thu, 8 Jun 2006 00:03:28 -0400 +From: Chuck Ebbert <76306.1226@compuserve.com> +To: linux-stable +Cc: James Bottomley , Brian Holty +Subject: scsi_lib.c: properly count the number of pages in scsi_req_map_sg() + +From: James Bottomley + +The calculation of nr_pages in scsi_req_map_sg() doesn't account for +the fact that the first page could have an offset that pushes the end +of the buffer onto a new page. + +Signed-off-by: Bryan Holty +Signed-off-by: James Bottomley +Signed-off-by: Chris Wright +--- + + drivers/scsi/scsi_lib.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- linux-2.6.16.20.orig/drivers/scsi/scsi_lib.c ++++ linux-2.6.16.20/drivers/scsi/scsi_lib.c +@@ -368,7 +368,7 @@ static int scsi_req_map_sg(struct reques + int nsegs, unsigned bufflen, gfp_t gfp) + { + struct request_queue *q = rq->q; +- int nr_pages = (bufflen + PAGE_SIZE - 1) >> PAGE_SHIFT; ++ int nr_pages = (bufflen + sgl[0].offset + PAGE_SIZE - 1) >> PAGE_SHIFT; + unsigned int data_len = 0, len, bytes, off; + struct page *page; + struct bio *bio = NULL; diff --git a/queue-2.6.16/series b/queue-2.6.16/series index 4ab489b303b..4ac2da9c987 100644 --- a/queue-2.6.16/series +++ b/queue-2.6.16/series @@ -7,3 +7,4 @@ tmpfs-time-granularity-fix-for-time-going-backwards.patch serial-parport_serial-should-depend-on-serial_8250_pci.patch fs-namei.c-call-to-file_permission-under-a-spinlock-in-do_lookup_path.patch jfs-fix-multiple-errors-in-metapage_releasepage.patch +scsi_lib.c-properly-count-the-number-of-pages-in-scsi_req_map_sg.patch