Commit cfb3f91a authored by Shannon Nelson's avatar Shannon Nelson Committed by David S. Miller
Browse files

ixgbe: handle parameters for tx and rx EITR, no div0



The driver was doing a divide by zero when adjusting tx-usecs.
This patch removes the divide by zero code and changes the logic slightly
to ignore tx-usecs in the case of shared TxRx vectors.

Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: default avatarShannon Nelson <shannon.nelson@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 429d33ac
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -1972,6 +1972,10 @@ static int ixgbe_get_coalesce(struct net_device *netdev,
		break;
	}

	/* if in mixed tx/rx queues per vector mode, report only rx settings */
	if (adapter->q_vector[0]->txr_count && adapter->q_vector[0]->rxr_count)
		return 0;

	/* only valid if in constant ITR mode */
	switch (adapter->tx_itr_setting) {
	case 0:
@@ -1997,12 +2001,9 @@ static int ixgbe_set_coalesce(struct net_device *netdev,
	struct ixgbe_q_vector *q_vector;
	int i;

	/*
	 * don't accept tx specific changes if we've got mixed RxTx vectors
	 * test and jump out here if needed before changing the rx numbers
	 */
	if ((1000000/ec->tx_coalesce_usecs) != adapter->tx_eitr_param &&
	    adapter->q_vector[0]->txr_count && adapter->q_vector[0]->rxr_count)
	/* don't accept tx specific changes if we've got mixed RxTx vectors */
	if (adapter->q_vector[0]->txr_count && adapter->q_vector[0]->rxr_count
	   && ec->tx_coalesce_usecs)
		return -EINVAL;

	if (ec->tx_max_coalesced_frames_irq)