[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 <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
d743de6675
commit
24a081386e
@ -2432,6 +2432,7 @@ struct qla_hw_data {
|
||||
#define RISC_START_ADDRESS_2100 0x1000
|
||||
#define RISC_START_ADDRESS_2300 0x800
|
||||
#define RISC_START_ADDRESS_2400 0x100000
|
||||
uint16_t fw_xcb_count;
|
||||
|
||||
uint16_t fw_options[16]; /* slots: 1,2,3,10,11 */
|
||||
uint8_t fw_seriallink_options[4];
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user