qlcnic: Fix max ring count calculation
Do not read max rings count from qlcnic_get_nic_info(). Use driver defined values for 82xx adapters. In case of 83xx adapters, use minimum of firmware provided and driver defined values. Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
4d52e1e8d1
Коммит
7b546842b1
|
@ -2139,8 +2139,6 @@ static int qlcnic_83xx_get_nic_configuration(struct qlcnic_adapter *adapter)
|
|||
ahw->max_mac_filters = nic_info.max_mac_filters;
|
||||
ahw->max_mtu = nic_info.max_mtu;
|
||||
|
||||
adapter->max_tx_rings = ahw->max_tx_ques;
|
||||
adapter->max_sds_rings = ahw->max_rx_ques;
|
||||
/* eSwitch capability indicates vNIC mode.
|
||||
* vNIC and SRIOV are mutually exclusive operational modes.
|
||||
* If SR-IOV capability is detected, SR-IOV physical function
|
||||
|
@ -2161,6 +2159,7 @@ static int qlcnic_83xx_get_nic_configuration(struct qlcnic_adapter *adapter)
|
|||
int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter)
|
||||
{
|
||||
struct qlcnic_hardware_context *ahw = adapter->ahw;
|
||||
u16 max_sds_rings, max_tx_rings;
|
||||
int ret;
|
||||
|
||||
ret = qlcnic_83xx_get_nic_configuration(adapter);
|
||||
|
@ -2173,18 +2172,21 @@ int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter)
|
|||
if (qlcnic_83xx_config_vnic_opmode(adapter))
|
||||
return -EIO;
|
||||
|
||||
adapter->max_sds_rings = QLCNIC_MAX_VNIC_SDS_RINGS;
|
||||
adapter->max_tx_rings = QLCNIC_MAX_VNIC_TX_RINGS;
|
||||
max_sds_rings = QLCNIC_MAX_VNIC_SDS_RINGS;
|
||||
max_tx_rings = QLCNIC_MAX_VNIC_TX_RINGS;
|
||||
} else if (ret == QLC_83XX_DEFAULT_OPMODE) {
|
||||
ahw->nic_mode = QLCNIC_DEFAULT_MODE;
|
||||
adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
|
||||
ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
|
||||
adapter->max_sds_rings = QLCNIC_MAX_SDS_RINGS;
|
||||
adapter->max_tx_rings = QLCNIC_MAX_TX_RINGS;
|
||||
max_sds_rings = QLCNIC_MAX_SDS_RINGS;
|
||||
max_tx_rings = QLCNIC_MAX_TX_RINGS;
|
||||
} else {
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
adapter->max_sds_rings = min(ahw->max_rx_ques, max_sds_rings);
|
||||
adapter->max_tx_rings = min(ahw->max_tx_ques, max_tx_rings);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -883,8 +883,6 @@ int qlcnic_82xx_get_nic_info(struct qlcnic_adapter *adapter,
|
|||
npar_info->max_rx_ques = le16_to_cpu(nic_info->max_rx_ques);
|
||||
npar_info->capabilities = le32_to_cpu(nic_info->capabilities);
|
||||
npar_info->max_mtu = le16_to_cpu(nic_info->max_mtu);
|
||||
adapter->max_tx_rings = npar_info->max_tx_ques;
|
||||
adapter->max_sds_rings = npar_info->max_rx_ques;
|
||||
}
|
||||
|
||||
qlcnic_free_mbx_args(&cmd);
|
||||
|
|
Загрузка…
Ссылка в новой задаче