Messages in this thread Patch in this message |  | | | Date | Tue, 20 Jun 2006 00:00:10 -0700 | | From | Chris Wright <> | | Subject | [PATCH 10/13] scsi_lib.c: properly count the number of pages in scsi_req_map_sg() |
| |
-stable review patch. If anyone has any objections, please let us know. ------------------ From: James Bottomley <jejb@mulgrave.il.steeleye.com>
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 <lgeek@frontiernet.net> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com> Signed-off-by: Chris Wright <chrisw@sous-sol.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- drivers/scsi/scsi_lib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- linux-2.6.16.21.orig/drivers/scsi/scsi_lib.c +++ linux-2.6.16.21/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; -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |