summaryrefslogtreecommitdiffstats
path: root/net/mac802154/ieee802154_i.h
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2014-10-27 17:13:30 +0100
committerMarcel Holtmann <marcel@holtmann.org>2014-10-27 18:07:40 +0100
commitc5c47e67bcd24638a059b1b5e9ec18c95f8634ca (patch)
treec57352e1df69afab550d8df129a0bee16b3455a7 /net/mac802154/ieee802154_i.h
parentieee802154: drivers: use dev_alloc_skb (diff)
downloadlinux-c5c47e67bcd24638a059b1b5e9ec18c95f8634ca.tar.xz
linux-c5c47e67bcd24638a059b1b5e9ec18c95f8634ca.zip
mac802154: rx: use tasklet instead workqueue
Tasklets have much less overhead than workqueues. This patch also removes the heap allocation for the worker on receiving path. Like mac80211 we should prefer use a tasklet here instead a workqueue to getting fast out of interrupt context when ieee802154_rx_irqsafe is called by driver. Like wireless inside the tasklet context we should call netif_receive_skb instead netif_rx_ni anymore. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/mac802154/ieee802154_i.h')
-rw-r--r--net/mac802154/ieee802154_i.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/mac802154/ieee802154_i.h b/net/mac802154/ieee802154_i.h
index ef29c10eeb66..603509a94a86 100644
--- a/net/mac802154/ieee802154_i.h
+++ b/net/mac802154/ieee802154_i.h
@@ -55,11 +55,18 @@ struct ieee802154_local {
* read them using any of protection methods.
*/
bool running;
+
+ struct tasklet_struct tasklet;
+ struct sk_buff_head skb_queue;
};
#define MAC802154_DEVICE_STOPPED 0x00
#define MAC802154_DEVICE_RUN 0x01
+enum {
+ IEEE802154_RX_MSG = 1,
+};
+
/* Slave interface definition.
*
* Slaves represent typical network interfaces available from userspace.