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); }