diff options
author | Alan Ott <alan@signal11.us> | 2013-04-03 06:00:58 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-04-07 23:06:44 +0200 |
commit | fc52eea4c5f160d1b42fa1852fece38e5a0fc991 (patch) | |
tree | 7f9e5d634244531f1d76adb2aaeb9e501f085295 /net/ieee802154 | |
parent | mac802154: Increase tx_buffer_len (diff) | |
download | linux-fc52eea4c5f160d1b42fa1852fece38e5a0fc991.tar.xz linux-fc52eea4c5f160d1b42fa1852fece38e5a0fc991.zip |
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>
Diffstat (limited to 'net/ieee802154')
-rw-r--r-- | net/ieee802154/6lowpan.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c index e1b4580f78dd..55e1fd5b3e56 100644 --- a/net/ieee802154/6lowpan.c +++ b/net/ieee802154/6lowpan.c @@ -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) |