staging: wilc1000: add check before performing operation on net_device

Before calling an operation on net_device check if that interface is
available.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Ajay Singh 2019-02-05 07:15:48 +00:00 committed by Greg Kroah-Hartman
parent f2bf97cb95
commit 20c888becc
1 changed files with 8 additions and 4 deletions

View File

@ -159,9 +159,11 @@ static int linux_wlan_txq_task(void *vp)
do {
ret = wilc_wlan_handle_txq(dev, &txq_count);
if (txq_count < FLOW_CONTROL_LOWER_THRESHOLD) {
if (netif_queue_stopped(wl->vif[0]->ndev))
if (wl->vif[0]->mac_opened &&
netif_queue_stopped(wl->vif[0]->ndev))
netif_wake_queue(wl->vif[0]->ndev);
if (netif_queue_stopped(wl->vif[1]->ndev))
if (wl->vif[1]->mac_opened &&
netif_queue_stopped(wl->vif[1]->ndev))
netif_wake_queue(wl->vif[1]->ndev);
}
} while (ret == -ENOBUFS && !wl->close);
@ -761,8 +763,10 @@ netdev_tx_t wilc_mac_xmit(struct sk_buff *skb, struct net_device *ndev)
linux_wlan_tx_complete);
if (queue_count > FLOW_CONTROL_UPPER_THRESHOLD) {
netif_stop_queue(wilc->vif[0]->ndev);
netif_stop_queue(wilc->vif[1]->ndev);
if (wilc->vif[0]->mac_opened)
netif_stop_queue(wilc->vif[0]->ndev);
if (wilc->vif[1]->mac_opened)
netif_stop_queue(wilc->vif[1]->ndev);
}
return 0;