lan78xx: Fix Smatch Warnings
lan78xx.c:2282 tx_complete() warn: variable dereferenced before check 'skb' (see line 2249) lan78xx.c:2885 lan78xx_bh() info: ignoring unreachable code. lan78xx.c:3159 lan78xx_probe() info: ignoring unreachable code. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Woojung Huh <woojung.huh@microchip.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
c3ffe0ca4a
Коммит
81c38e811a
|
@ -2279,8 +2279,7 @@ static void tx_complete(struct urb *urb)
|
||||||
|
|
||||||
usb_autopm_put_interface_async(dev->intf);
|
usb_autopm_put_interface_async(dev->intf);
|
||||||
|
|
||||||
if (skb)
|
defer_bh(dev, skb, &dev->txq, tx_done);
|
||||||
defer_bh(dev, skb, &dev->txq, tx_done);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lan78xx_queue_skb(struct sk_buff_head *list,
|
static void lan78xx_queue_skb(struct sk_buff_head *list,
|
||||||
|
@ -2295,13 +2294,15 @@ static void lan78xx_queue_skb(struct sk_buff_head *list,
|
||||||
netdev_tx_t lan78xx_start_xmit(struct sk_buff *skb, struct net_device *net)
|
netdev_tx_t lan78xx_start_xmit(struct sk_buff *skb, struct net_device *net)
|
||||||
{
|
{
|
||||||
struct lan78xx_net *dev = netdev_priv(net);
|
struct lan78xx_net *dev = netdev_priv(net);
|
||||||
|
struct sk_buff *skb2 = NULL;
|
||||||
|
|
||||||
if (skb)
|
|
||||||
skb_tx_timestamp(skb);
|
|
||||||
|
|
||||||
skb = lan78xx_tx_prep(dev, skb, GFP_ATOMIC);
|
|
||||||
if (skb) {
|
if (skb) {
|
||||||
skb_queue_tail(&dev->txq_pend, skb);
|
skb_tx_timestamp(skb);
|
||||||
|
skb2 = lan78xx_tx_prep(dev, skb, GFP_ATOMIC);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (skb2) {
|
||||||
|
skb_queue_tail(&dev->txq_pend, skb2);
|
||||||
|
|
||||||
if (skb_queue_len(&dev->txq_pend) > 10)
|
if (skb_queue_len(&dev->txq_pend) > 10)
|
||||||
netif_stop_queue(net);
|
netif_stop_queue(net);
|
||||||
|
@ -2882,10 +2883,6 @@ static void lan78xx_bh(unsigned long param)
|
||||||
netdev_dbg(dev->net, "skb state %d\n", entry->state);
|
netdev_dbg(dev->net, "skb state %d\n", entry->state);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!dev->done.prev)
|
|
||||||
BUG_ON(!dev->done.prev);
|
|
||||||
if (!dev->done.next)
|
|
||||||
BUG_ON(!dev->done.next);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (netif_device_present(dev->net) && netif_running(dev->net)) {
|
if (netif_device_present(dev->net) && netif_running(dev->net)) {
|
||||||
|
@ -3156,7 +3153,6 @@ static int lan78xx_probe(struct usb_interface *intf,
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
usb_set_intfdata(intf, NULL);
|
|
||||||
out3:
|
out3:
|
||||||
lan78xx_unbind(dev, intf);
|
lan78xx_unbind(dev, intf);
|
||||||
out2:
|
out2:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче