diff options
author | Alexander Aring <alex.aring@gmail.com> | 2014-10-27 17:13:30 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2014-10-27 18:07:40 +0100 |
commit | c5c47e67bcd24638a059b1b5e9ec18c95f8634ca (patch) | |
tree | c57352e1df69afab550d8df129a0bee16b3455a7 /net/mac802154/ieee802154_i.h | |
parent | ieee802154: drivers: use dev_alloc_skb (diff) | |
download | linux-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.h | 7 |
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. |