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
This commit is contained in:
parent
bfd72934ab
commit
45846aa7f1
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user