[SCSI] Set max_phys_segments to sg_tablesize

From: Herbert Xu
Date: Wed Oct 15 2003 - 06:59:40 EST


Hi:

Many SCSI host drivers assume that use_sg will be <= sg_tablesize.
Hence they may break under 2.6 as the number of physical segments
is not limited by sg_tablesize. This patch fixes that.

Cheers,
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Index: kernel-source-2.5/drivers/scsi/scsi_lib.c
===================================================================
RCS file: /home/gondolin/herbert/src/CVS/debian/kernel-source-2.5/drivers/scsi/scsi_lib.c,v
retrieving revision 1.1.1.16
diff -u -r1.1.1.16 scsi_lib.c
--- kernel-source-2.5/drivers/scsi/scsi_lib.c 28 Sep 2003 04:44:15 -0000 1.1.1.16
+++ kernel-source-2.5/drivers/scsi/scsi_lib.c 15 Oct 2003 11:32:20 -0000
@@ -1243,7 +1243,7 @@
blk_queue_prep_rq(q, scsi_prep_fn);

blk_queue_max_hw_segments(q, shost->sg_tablesize);
- blk_queue_max_phys_segments(q, MAX_PHYS_SEGMENTS);
+ blk_queue_max_phys_segments(q, shost->sg_tablesize);
blk_queue_max_sectors(q, shost->max_sectors);
blk_queue_bounce_limit(q, scsi_calculate_bounce_limit(shost));
blk_queue_segment_boundary(q, shost->dma_boundary);