Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -340,6 +340,7 @@ int qlcnic_83xx_setup_intr(struct qlcnic_adapter *adapter)
			if (qlcnic_sriov_vf_check(adapter))
				return -EINVAL;
			num_msix = 1;
			adapter->drv_sds_rings = QLCNIC_SINGLE_RING;
			adapter->drv_tx_rings = QLCNIC_SINGLE_RING;
		}
	}
+3 −2
Original line number Diff line number Diff line
@@ -816,9 +816,10 @@ static int qlcnic_82xx_setup_intr(struct qlcnic_adapter *adapter)

		if (!(adapter->flags & QLCNIC_MSIX_ENABLED)) {
			qlcnic_disable_multi_tx(adapter);
			adapter->drv_sds_rings = QLCNIC_SINGLE_RING;

			err = qlcnic_enable_msi_legacy(adapter);
			if (!err)
			if (err)
				return err;
		}
	}
@@ -3863,7 +3864,7 @@ int qlcnic_validate_rings(struct qlcnic_adapter *adapter, __u32 ring_cnt,
		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");
		return -EINVAL;
	}
+0 −9
Original line number Diff line number Diff line
@@ -13,8 +13,6 @@
#define QLC_VF_MIN_TX_RATE	100
#define QLC_VF_MAX_TX_RATE	9999
#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_FLOOD_MODE		0x5

@@ -1206,13 +1204,6 @@ static int qlcnic_sriov_validate_cfg_macvlan(struct qlcnic_adapter *adapter,
	struct qlcnic_vport *vp = vf->vp;
	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))
		return -EINVAL;