From 45846aa7f1e60f6e947a918e0fea1dbc28aee5c2 Mon Sep 17 00:00:00 2001 From: scottl Date: Wed, 7 Mar 2001 08:37:49 +0000 Subject: [PATCH] Set si_iosize_max to 64K, even though the adapter seems to be able to do more. This puts us safely in line with Adaptec documentation and shouldn't really affect anything. MFC candidate for 4.3 --- sys/dev/aac/aac_disk.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/sys/dev/aac/aac_disk.c b/sys/dev/aac/aac_disk.c index 1505a6adeec5..23287adcde09 100644 --- a/sys/dev/aac/aac_disk.c +++ b/sys/dev/aac/aac_disk.c @@ -219,8 +219,6 @@ static int aac_disk_attach(device_t dev) { struct aac_disk *sc = (struct aac_disk *)device_get_softc(dev); - int sgspace; - int maxsg; debug_called(4); @@ -258,16 +256,11 @@ aac_disk_attach(device_t dev) disks_registered++; #endif - /* - * We can calculate the maximum number of s/g entries based on the size of the - * FIB and the command structures packed within it. + /* + * The adapters seem to have a 64K size limit on the max I/O size. Set + * our size on accordance. */ - sgspace = (sizeof(struct aac_fib) - sizeof(struct aac_fib_header) - - imax(sizeof(struct aac_blockwrite), sizeof(struct aac_blockread))); - maxsg = (sgspace - sizeof(struct aac_sg_table)) / sizeof(struct aac_sg_entry); - - /* set the maximum I/O size to the theoretical worst maximum allowed by the S/G list size */ - sc->ad_dev_t->si_iosize_max = (maxsg - 1) * PAGE_SIZE; + sc->ad_dev_t->si_iosize_max = 65536; return (0); }