Commit c265a3a6 authored by Miquel Raynal's avatar Miquel Raynal Committed by Stefan Schmidt
Browse files

net: mac802154: Explain the use of ieee802154_wake/stop_queue()



It is not straightforward to the newcomer that a single skb can
currently be sent at a time and that the internal process is to stop the
queue when processing a frame before re-enabling it.

Make this clear by documenting the ieee802154_wake/stop_queue()
helpers.

Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Acked-by: default avatarAlexander Aring <aahringo@redhat.com>
Link: https://lore.kernel.org/r/20220125122540.855604-4-miquel.raynal@bootlin.com


Signed-off-by: default avatarStefan Schmidt <stefan@datenfreihafen.org>
parent 898db3b8
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -464,6 +464,12 @@ void ieee802154_rx_irqsafe(struct ieee802154_hw *hw, struct sk_buff *skb,
 * ieee802154_wake_queue - wake ieee802154 queue
 * @hw: pointer as obtained from ieee802154_alloc_hw().
 *
 * Tranceivers usually have either one transmit framebuffer or one framebuffer
 * for both transmitting and receiving. Hence, the core currently only handles
 * one frame at a time for each phy, which means we had to stop the queue to
 * avoid new skb to come during the transmission. The queue then needs to be
 * woken up after the operation.
 *
 * Drivers should use this function instead of netif_wake_queue.
 */
void ieee802154_wake_queue(struct ieee802154_hw *hw);
@@ -472,6 +478,12 @@ void ieee802154_wake_queue(struct ieee802154_hw *hw);
 * ieee802154_stop_queue - stop ieee802154 queue
 * @hw: pointer as obtained from ieee802154_alloc_hw().
 *
 * Tranceivers usually have either one transmit framebuffer or one framebuffer
 * for both transmitting and receiving. Hence, the core currently only handles
 * one frame at a time for each phy, which means we need to tell upper layers to
 * stop giving us new skbs while we are busy with the transmitted one. The queue
 * must then be stopped before transmitting.
 *
 * Drivers should use this function instead of netif_stop_queue.
 */
void ieee802154_stop_queue(struct ieee802154_hw *hw);