These patches fix an issue in the 802.15.4 code where the output buffer (which prior to this patchset is just a workqueue) can grow to an arbitrary size. This is basically fixed as follows:
1. Use netif_stop_queue() and netif_wake_queue() to stop and start the transmit queue, preventing packets from piling up without bound on the mac802154 workqueue. 2. Increase the default tx_buffer_len for mac802154 (wpan) devices from 10 to 300, enabling Qdisc to work properly on the transmit queue. Additionally the following related issues are fixed: 1. Handle dev_queue_xmit() return values properly in the 6LoWPAN code (and return the proper errors to the higher layers). This will cause the higher layers to retry later if the mac802154 queue is full. 2. Fix the retry of transmit failures in mac802154. Alan Ott (6): mac802154: Immediately retry sending failed packets mac802154: Move xmit_attemps to stack mac802154: Use netif flow control mac802154: Increase tx_buffer_len 6lowpan: handle dev_queue_xmit error code properly 6lowpan: return the dev_queue_xmit() return value from lowpan_xmit() net/ieee802154/6lowpan.c | 4 ++-- net/mac802154/tx.c | 34 ++++++++++++++++++++++++---------- net/mac802154/wpan.c | 2 +- 3 files changed, 27 insertions(+), 13 deletions(-) -- 1.7.11.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/