6lowpan: handle dev_queue_xmit() error code properly
dev_queue_xmit() will return a positive value if the packet could not be queued, often because the real network device (in our case the mac802154 wpan device) has its queue stopped. lowpan_xmit() should handle the positive return code (for the debug statement) and return that value to the higher layer so the higher layer will retry sending the packet. Signed-off-by: Alan Ott <alan@signal11.us> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e937f583ec
commit
fc52eea4c5
|
@ -1139,10 +1139,10 @@ static netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
error:
|
||||
dev_kfree_skb(skb);
|
||||
out:
|
||||
if (err < 0)
|
||||
if (err)
|
||||
pr_debug("ERROR: xmit failed\n");
|
||||
|
||||
return (err < 0 ? NETDEV_TX_BUSY : NETDEV_TX_OK);
|
||||
return (err < 0) ? NET_XMIT_DROP : err;
|
||||
}
|
||||
|
||||
static struct wpan_phy *lowpan_get_phy(const struct net_device *dev)
|
||||
|
|
Loading…
Reference in New Issue