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: Shannon Nelson <snelson@pensando.io> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
101b40a017
commit
6f7d6f0fd7
@ -1406,9 +1406,14 @@ static void ionic_tx_timeout_work(struct work_struct *ws)
|
|||||||
|
|
||||||
netdev_info(lif->netdev, "Tx Timeout recovery\n");
|
netdev_info(lif->netdev, "Tx Timeout recovery\n");
|
||||||
|
|
||||||
rtnl_lock();
|
/* if we were stopped before this scheduled job was launched,
|
||||||
ionic_reset_queues(lif, NULL, NULL);
|
* don't bother the queues as they are already stopped.
|
||||||
rtnl_unlock();
|
*/
|
||||||
|
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)
|
static void ionic_tx_timeout(struct net_device *netdev, unsigned int txqueue)
|
||||||
@ -2280,34 +2285,6 @@ err_out:
|
|||||||
return err;
|
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)
|
int ionic_lif_alloc(struct ionic *ionic)
|
||||||
{
|
{
|
||||||
struct device *dev = ionic->dev;
|
struct device *dev = ionic->dev;
|
||||||
|
@ -259,7 +259,6 @@ int ionic_lif_rss_config(struct ionic_lif *lif, u16 types,
|
|||||||
const u8 *key, const u32 *indir);
|
const u8 *key, const u32 *indir);
|
||||||
int ionic_reconfigure_queues(struct ionic_lif *lif,
|
int ionic_reconfigure_queues(struct ionic_lif *lif,
|
||||||
struct ionic_queue_params *qparam);
|
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)
|
static inline void debug_stats_txq_post(struct ionic_queue *q, bool dbell)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user