Commit e88570f8 authored by David S. Miller's avatar David S. Miller

Merge branch 'qlcnic'

Shahed Shaikh says:

====================
qlcnic: Bug fixes

This patch series includes following bug fixes,

* Fix for return value handling of function qlcnic_enable_msi_legacy().
* Fix for the usage of module parameters for interrupt mode.
  Driver should use flags while checking for driver's interrupt mode instead of
  module parameters.
* Revert commit 1414abea (qlcnic: Restrict VF from configuring any VLAN mode),
  in order to save some multicast filters.
* Fix a bug where driver was not re-setting sds ring count to 1 when
  it falls back from MSI-x mode to legacy interrupt mode.

Please apply to net.

Change in v2 -
Dropped patch "qlcnic: reset firmware API lock during driver load" for further rework.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 22ae2790 42beb3f2
...@@ -340,6 +340,7 @@ int qlcnic_83xx_setup_intr(struct qlcnic_adapter *adapter) ...@@ -340,6 +340,7 @@ int qlcnic_83xx_setup_intr(struct qlcnic_adapter *adapter)
if (qlcnic_sriov_vf_check(adapter)) if (qlcnic_sriov_vf_check(adapter))
return -EINVAL; return -EINVAL;
num_msix = 1; num_msix = 1;
adapter->drv_sds_rings = QLCNIC_SINGLE_RING;
adapter->drv_tx_rings = QLCNIC_SINGLE_RING; adapter->drv_tx_rings = QLCNIC_SINGLE_RING;
} }
} }
......
...@@ -816,9 +816,10 @@ static int qlcnic_82xx_setup_intr(struct qlcnic_adapter *adapter) ...@@ -816,9 +816,10 @@ static int qlcnic_82xx_setup_intr(struct qlcnic_adapter *adapter)
if (!(adapter->flags & QLCNIC_MSIX_ENABLED)) { if (!(adapter->flags & QLCNIC_MSIX_ENABLED)) {
qlcnic_disable_multi_tx(adapter); qlcnic_disable_multi_tx(adapter);
adapter->drv_sds_rings = QLCNIC_SINGLE_RING;
err = qlcnic_enable_msi_legacy(adapter); err = qlcnic_enable_msi_legacy(adapter);
if (!err) if (err)
return err; return err;
} }
} }
...@@ -3863,7 +3864,7 @@ int qlcnic_validate_rings(struct qlcnic_adapter *adapter, __u32 ring_cnt, ...@@ -3863,7 +3864,7 @@ int qlcnic_validate_rings(struct qlcnic_adapter *adapter, __u32 ring_cnt,
strcpy(buf, "Tx"); strcpy(buf, "Tx");
} }
if (!qlcnic_use_msi_x && !qlcnic_use_msi) { if (!QLCNIC_IS_MSI_FAMILY(adapter)) {
netdev_err(netdev, "No RSS/TSS support in INT-x mode\n"); netdev_err(netdev, "No RSS/TSS support in INT-x mode\n");
return -EINVAL; return -EINVAL;
} }
......
...@@ -13,8 +13,6 @@ ...@@ -13,8 +13,6 @@
#define QLC_VF_MIN_TX_RATE 100 #define QLC_VF_MIN_TX_RATE 100
#define QLC_VF_MAX_TX_RATE 9999 #define QLC_VF_MAX_TX_RATE 9999
#define QLC_MAC_OPCODE_MASK 0x7 #define QLC_MAC_OPCODE_MASK 0x7
#define QLC_MAC_STAR_ADD 6
#define QLC_MAC_STAR_DEL 7
#define QLC_VF_FLOOD_BIT BIT_16 #define QLC_VF_FLOOD_BIT BIT_16
#define QLC_FLOOD_MODE 0x5 #define QLC_FLOOD_MODE 0x5
...@@ -1206,13 +1204,6 @@ static int qlcnic_sriov_validate_cfg_macvlan(struct qlcnic_adapter *adapter, ...@@ -1206,13 +1204,6 @@ static int qlcnic_sriov_validate_cfg_macvlan(struct qlcnic_adapter *adapter,
struct qlcnic_vport *vp = vf->vp; struct qlcnic_vport *vp = vf->vp;
u8 op, new_op; u8 op, new_op;
if (((cmd->req.arg[1] & QLC_MAC_OPCODE_MASK) == QLC_MAC_STAR_ADD) ||
((cmd->req.arg[1] & QLC_MAC_OPCODE_MASK) == QLC_MAC_STAR_DEL)) {
netdev_err(adapter->netdev, "MAC + any VLAN filter not allowed from VF %d\n",
vf->pci_func);
return -EINVAL;
}
if (!(cmd->req.arg[1] & BIT_8)) if (!(cmd->req.arg[1] & BIT_8))
return -EINVAL; return -EINVAL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment