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

net: mac802154: Rename the main tx_work struct



This entry is dedicated to synchronous transmissions done by drivers
without async hook. Make this clearer that this is not a work that any
driver can use by at least prefixing it with "sync_". While at it, let's
enhance the comment explaining why we choose one or the other.

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


Signed-off-by: default avatarStefan Schmidt <stefan@datenfreihafen.org>
parent be8c6d86
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ struct ieee802154_local {
	struct sk_buff_head skb_queue;

	struct sk_buff *tx_skb;
	struct work_struct tx_work;
	struct work_struct sync_tx_work;
	/* A negative Linux error code or a null/positive MLME error status */
	int tx_result;
};
+1 −1
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ ieee802154_alloc_hw(size_t priv_data_len, const struct ieee802154_ops *ops)

	skb_queue_head_init(&local->skb_queue);

	INIT_WORK(&local->tx_work, ieee802154_xmit_sync_worker);
	INIT_WORK(&local->sync_tx_work, ieee802154_xmit_sync_worker);

	/* init supported flags with 802.15.4 default ranges */
	phy->supported.max_minbe = 8;
+6 −3
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@
void ieee802154_xmit_sync_worker(struct work_struct *work)
{
	struct ieee802154_local *local =
		container_of(work, struct ieee802154_local, tx_work);
		container_of(work, struct ieee802154_local, sync_tx_work);
	struct sk_buff *skb = local->tx_skb;
	struct net_device *dev = skb->dev;
	int res;
@@ -76,7 +76,10 @@ ieee802154_tx(struct ieee802154_local *local, struct sk_buff *skb)
	/* Stop the netif queue on each sub_if_data object. */
	ieee802154_stop_queue(&local->hw);

	/* async is priority, otherwise sync is fallback */
	/* Drivers should preferably implement the async callback. In some rare
	 * cases they only provide a sync callback which we will use as a
	 * fallback.
	 */
	if (local->ops->xmit_async) {
		unsigned int len = skb->len;

@@ -90,7 +93,7 @@ ieee802154_tx(struct ieee802154_local *local, struct sk_buff *skb)
		dev->stats.tx_bytes += len;
	} else {
		local->tx_skb = skb;
		queue_work(local->workqueue, &local->tx_work);
		queue_work(local->workqueue, &local->sync_tx_work);
	}

	return NETDEV_TX_OK;