From 24a081386e4236e10e80af4c62d5f6e68feb2081 Mon Sep 17 00:00:00 2001 From: Andrew Vasquez Date: Tue, 24 Mar 2009 09:08:16 -0700 Subject: [SCSI] qla2xxx: Explicitly set the execution-throttle with recent ISPs. Firmware semantics changed for 24xx and above ISPs in their handling of the specified execution-throttle passed during firmware initialization. The original codes use of a theoretical maximum (0xffff, as carried over from earlier ISPs) could in fact act as a throttle in some circumstances. Now set the value based of the firmware's own 'resource' (exchange IOCBs) capabilities. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley --- drivers/scsi/qla2xxx/qla_init.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'drivers/scsi/qla2xxx/qla_init.c') diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index f90fd3774f1..bd7dd84c064 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -948,8 +948,9 @@ qla2x00_setup_chip(scsi_qla_host_t *vha) ha->max_npiv_vports = MIN_MULTI_ID_FABRIC - 1; } - qla2x00_get_resource_cnts(vha, NULL, NULL, - NULL, NULL, &ha->max_npiv_vports); + qla2x00_get_resource_cnts(vha, NULL, + &ha->fw_xcb_count, NULL, NULL, + &ha->max_npiv_vports); if (!fw_major_version && ql2xallocfwdump) qla2x00_alloc_fw_dump(vha); @@ -1275,8 +1276,11 @@ qla2x00_init_rings(scsi_qla_host_t *vha) mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports); } - - mid_init_cb->options = __constant_cpu_to_le16(BIT_1); + if (IS_FWI2_CAPABLE(ha)) { + mid_init_cb->options = __constant_cpu_to_le16(BIT_1); + mid_init_cb->init_cb.execution_throttle = + cpu_to_le16(ha->fw_xcb_count); + } rval = qla2x00_init_firmware(vha, ha->init_cb_size); if (rval) { -- cgit v1.2.3