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

Commit 80c0e4f3 authored by Himanshu Madhani's avatar Himanshu Madhani Committed by David S. Miller
Browse files

qlcnic: Allow single Tx/Rx queue for all adapters.



o Allow user to set sigle Tx/Rx queue in MSI-x mode,
  for ALL supported adapters.

Signed-off-by: default avatarHimanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: default avatarManish Chopra <manish.chopra@qlogic.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9b0fff2a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -289,6 +289,7 @@ int qlcnic_83xx_setup_intr(struct qlcnic_adapter *adapter)
		if (qlcnic_sriov_vf_check(adapter))
			return -EINVAL;
		num_msix = 1;
		adapter->drv_tx_rings = QLCNIC_SINGLE_RING;
	}
	/* setup interrupt mapping table for fw */
	ahw->intr_tbl = vzalloc(num_msix *
+2 −4
Original line number Diff line number Diff line
@@ -1466,8 +1466,7 @@ int qlcnic_82xx_napi_add(struct qlcnic_adapter *adapter,
	for (ring = 0; ring < adapter->drv_sds_rings; ring++) {
		sds_ring = &recv_ctx->sds_rings[ring];
		if (qlcnic_check_multi_tx(adapter) &&
		    !adapter->ahw->diag_test &&
		    (adapter->drv_tx_rings > QLCNIC_SINGLE_RING)) {
		    !adapter->ahw->diag_test) {
			netif_napi_add(netdev, &sds_ring->napi, qlcnic_rx_poll,
				       NAPI_POLL_WEIGHT);
		} else {
@@ -1540,8 +1539,7 @@ void qlcnic_82xx_napi_enable(struct qlcnic_adapter *adapter)

	if (qlcnic_check_multi_tx(adapter) &&
	    (adapter->flags & QLCNIC_MSIX_ENABLED) &&
	    !adapter->ahw->diag_test &&
	    (adapter->drv_tx_rings > QLCNIC_SINGLE_RING)) {
	    !adapter->ahw->diag_test) {
		for (ring = 0; ring < adapter->drv_tx_rings; ring++) {
			tx_ring = &adapter->tx_ring[ring];
			napi_enable(&tx_ring->napi);
+1 −8
Original line number Diff line number Diff line
@@ -646,8 +646,7 @@ int qlcnic_enable_msix(struct qlcnic_adapter *adapter, u32 num_msix)
			} else {
				adapter->ahw->num_msix = num_msix;
				if (qlcnic_check_multi_tx(adapter) &&
				    !adapter->ahw->diag_test &&
				    (adapter->drv_tx_rings > 1))
				    !adapter->ahw->diag_test)
					drv_sds_rings = num_msix - drv_tx_rings;
				else
					drv_sds_rings = num_msix;
@@ -3722,12 +3721,6 @@ int qlcnic_validate_rings(struct qlcnic_adapter *adapter, __u32 ring_cnt,
		return -EINVAL;
	}

	if (ring_cnt < 2) {
		netdev_err(netdev,
			   "%s rings value should not be lower than 2\n", buf);
		return -EINVAL;
	}

	if (!is_power_of_2(ring_cnt)) {
		netdev_err(netdev, "%s rings value should be a power of 2\n",
			   buf);