forked from Minki/linux
Merge branch 'qlcnic'
Shahed Shaikh says: ==================== qlcnic: Bug fixes This patch series contains following fixes- * Performace drop because driver was forcing adapter not to check destination IP for LRO. * driver was not issuing qlcnic_fw_cmd_set_drv_version() to 83xx adapter becasue of improper handling of QLCNIC_FW_CAPABILITY_MORE_CAPS bit. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
d49c83d7ab
@ -2276,9 +2276,9 @@ int qlcnic_83xx_get_nic_info(struct qlcnic_adapter *adapter,
|
||||
temp = (cmd.rsp.arg[8] & 0x7FFE0000) >> 17;
|
||||
npar_info->max_linkspeed_reg_offset = temp;
|
||||
}
|
||||
if (npar_info->capabilities & QLCNIC_FW_CAPABILITY_MORE_CAPS)
|
||||
memcpy(ahw->extra_capability, &cmd.rsp.arg[16],
|
||||
sizeof(ahw->extra_capability));
|
||||
|
||||
memcpy(ahw->extra_capability, &cmd.rsp.arg[16],
|
||||
sizeof(ahw->extra_capability));
|
||||
|
||||
out:
|
||||
qlcnic_free_mbx_args(&cmd);
|
||||
|
@ -785,8 +785,6 @@ void qlcnic_82xx_config_intr_coalesce(struct qlcnic_adapter *adapter)
|
||||
|
||||
#define QLCNIC_ENABLE_IPV4_LRO 1
|
||||
#define QLCNIC_ENABLE_IPV6_LRO 2
|
||||
#define QLCNIC_NO_DEST_IPV4_CHECK (1 << 8)
|
||||
#define QLCNIC_NO_DEST_IPV6_CHECK (2 << 8)
|
||||
|
||||
int qlcnic_82xx_config_hw_lro(struct qlcnic_adapter *adapter, int enable)
|
||||
{
|
||||
@ -806,11 +804,10 @@ int qlcnic_82xx_config_hw_lro(struct qlcnic_adapter *adapter, int enable)
|
||||
|
||||
word = 0;
|
||||
if (enable) {
|
||||
word = QLCNIC_ENABLE_IPV4_LRO | QLCNIC_NO_DEST_IPV4_CHECK;
|
||||
word = QLCNIC_ENABLE_IPV4_LRO;
|
||||
if (adapter->ahw->extra_capability[0] &
|
||||
QLCNIC_FW_CAP2_HW_LRO_IPV6)
|
||||
word |= QLCNIC_ENABLE_IPV6_LRO |
|
||||
QLCNIC_NO_DEST_IPV6_CHECK;
|
||||
word |= QLCNIC_ENABLE_IPV6_LRO;
|
||||
}
|
||||
|
||||
req.words[0] = cpu_to_le64(word);
|
||||
|
@ -1131,7 +1131,10 @@ qlcnic_initialize_nic(struct qlcnic_adapter *adapter)
|
||||
if (err == -EIO)
|
||||
return err;
|
||||
adapter->ahw->extra_capability[0] = temp;
|
||||
} else {
|
||||
adapter->ahw->extra_capability[0] = 0;
|
||||
}
|
||||
|
||||
adapter->ahw->max_mac_filters = nic_info.max_mac_filters;
|
||||
adapter->ahw->max_mtu = nic_info.max_mtu;
|
||||
|
||||
@ -2159,8 +2162,7 @@ void qlcnic_set_drv_version(struct qlcnic_adapter *adapter)
|
||||
else if (qlcnic_83xx_check(adapter))
|
||||
fw_cmd = QLCNIC_CMD_83XX_SET_DRV_VER;
|
||||
|
||||
if ((ahw->capabilities & QLCNIC_FW_CAPABILITY_MORE_CAPS) &&
|
||||
(ahw->extra_capability[0] & QLCNIC_FW_CAPABILITY_SET_DRV_VER))
|
||||
if (ahw->extra_capability[0] & QLCNIC_FW_CAPABILITY_SET_DRV_VER)
|
||||
qlcnic_fw_cmd_set_drv_version(adapter, fw_cmd);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user