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

ionic: pull reset_queues into tx_timeout handler



Convert tx_timeout handler to not do the full reset.  As this was
the last user of ionic_reset_queues(), we can drop it.

Signed-off-by: default avatarShannon Nelson <snelson@pensando.io>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 101b40a0
Loading
Loading
Loading
Loading
+8 −31
Original line number Diff line number Diff line
@@ -1406,9 +1406,14 @@ static void ionic_tx_timeout_work(struct work_struct *ws)

	netdev_info(lif->netdev, "Tx Timeout recovery\n");

	rtnl_lock();
	ionic_reset_queues(lif, NULL, NULL);
	rtnl_unlock();
	/* if we were stopped before this scheduled job was launched,
	 * don't bother the queues as they are already stopped.
	 */
	if (!netif_running(lif->netdev))
		return;

	ionic_stop_queues_reconfig(lif);
	ionic_start_queues_reconfig(lif);
}

static void ionic_tx_timeout(struct net_device *netdev, unsigned int txqueue)
@@ -2280,34 +2285,6 @@ err_out:
	return err;
}

int ionic_reset_queues(struct ionic_lif *lif, ionic_reset_cb cb, void *arg)
{
	bool running;
	int err = 0;

	mutex_lock(&lif->queue_lock);
	running = netif_running(lif->netdev);
	if (running) {
		netif_device_detach(lif->netdev);
		err = ionic_stop(lif->netdev);
		if (err)
			goto reset_out;
	}

	if (cb)
		cb(lif, arg);

	if (running) {
		err = ionic_open(lif->netdev);
		netif_device_attach(lif->netdev);
	}

reset_out:
	mutex_unlock(&lif->queue_lock);

	return err;
}

int ionic_lif_alloc(struct ionic *ionic)
{
	struct device *dev = ionic->dev;
+0 −1
Original line number Diff line number Diff line
@@ -259,7 +259,6 @@ int ionic_lif_rss_config(struct ionic_lif *lif, u16 types,
			 const u8 *key, const u32 *indir);
int ionic_reconfigure_queues(struct ionic_lif *lif,
			     struct ionic_queue_params *qparam);
int ionic_reset_queues(struct ionic_lif *lif, ionic_reset_cb cb, void *arg);

static inline void debug_stats_txq_post(struct ionic_queue *q, bool dbell)
{