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;
 };
 
 
        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;
 
 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;
        /* 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;
 
                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;