aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aacraid/comminit.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/aacraid/comminit.c')
-rw-r--r--drivers/scsi/aacraid/comminit.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c
index 8e5d3be16127..3f759957f4b4 100644
--- a/drivers/scsi/aacraid/comminit.c
+++ b/drivers/scsi/aacraid/comminit.c
@@ -404,7 +404,13 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
404 dev->max_fib_size = status[1] & 0xFFE0; 404 dev->max_fib_size = status[1] & 0xFFE0;
405 host->sg_tablesize = status[2] >> 16; 405 host->sg_tablesize = status[2] >> 16;
406 dev->sg_tablesize = status[2] & 0xFFFF; 406 dev->sg_tablesize = status[2] & 0xFFFF;
407 host->can_queue = (status[3] & 0xFFFF) - AAC_NUM_MGT_FIB; 407 if (dev->pdev->device == PMC_DEVICE_S7 ||
408 dev->pdev->device == PMC_DEVICE_S8 ||
409 dev->pdev->device == PMC_DEVICE_S9)
410 host->can_queue = ((status[3] >> 16) ? (status[3] >> 16) :
411 (status[3] & 0xFFFF)) - AAC_NUM_MGT_FIB;
412 else
413 host->can_queue = (status[3] & 0xFFFF) - AAC_NUM_MGT_FIB;
408 dev->max_num_aif = status[4] & 0xFFFF; 414 dev->max_num_aif = status[4] & 0xFFFF;
409 /* 415 /*
410 * NOTE: 416 * NOTE:
@@ -452,6 +458,9 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
452 } 458 }
453 } 459 }
454 460
461 if (host->can_queue > AAC_NUM_IO_FIB)
462 host->can_queue = AAC_NUM_IO_FIB;
463
455 /* 464 /*
456 * Ok now init the communication subsystem 465 * Ok now init the communication subsystem
457 */ 466 */