mac802154: tx: make worker information static
Subsystems (2)
Alexander Aring
maintainerPATCH 1/1 mac802154: tx: make worker information static
This patch moves the worker information struct out of skb control block. Instead control block we declare it static inside of tx.c file. We can do that, because the worker can't be used twice at the same time. It's protected by stop and wake netdev queue.
This patch fix an issue that the "struct ieee802154_xmit_cb" doesn't fit into the skb control block on some kernel configuartion reported by kbuild test robot.
It was introduced by commit fe24371d6645b766c59ec664c59d0a9c310ad455 ("mac802154: tx: remove kmalloc in xmit hotpath").
--- net/mac802154/tx.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-)
net/mac802154/tx.c +5 -12
@@ -37,13 +37,7 @@ struct ieee802154_xmit_cb {struct ieee802154_local *local; }; -static inline struct ieee802154_xmit_cb * -ieee802154_xmit_cb (const struct sk_buff *skb) -{ -BUILD_BUG_ON (sizeof (skb->cb) <sizeof (struct ieee802154_xmit_cb )); - -return (struct ieee802154_xmit_cb *)skb->cb; -} +static struct ieee802154_xmit_cb ieee802154_xmit_cb;static void ieee802154_xmit_worker (struct work_struct *work) {
@@ -84,7 +78,6 @@ err_tx:static netdev_tx_t ieee802154_tx (struct ieee802154_local *local,struct sk_buff *skb) { -struct ieee802154_xmit_cb *cb =ieee802154_xmit_cb (skb);struct net_device *dev = skb->dev;int ret;
@@ -113,11 +106,11 @@ ieee802154_tx(struct ieee802154_local *local, struct sk_buff *skb) dev->stats.tx_packets++; dev->stats.tx_bytes += skb->len; }else { -INIT_WORK (&cb->work, ieee802154_xmit_worker); - cb->skb = skb; - cb->local = local; +INIT_WORK (&ieee802154_xmit_cb.work, ieee802154_xmit_worker); + ieee802154_xmit_cb.skb = skb; + ieee802154_xmit_cb.local = local; -queue_work (local->workqueue, &cb->work); +queue_work (local->workqueue, &ieee802154_xmit_cb.work); }return NETDEV_TX_OK ;
Signature · 1 line
2.1.2
Hi Alex,
Quoted 9 lines
This patch moves the worker information struct out of skb control block. Instead control block we declare it static inside of
tx.cfile. We can do that, because the worker can't be used twice at the same time. It's protected by stop and wake netdev queue.This patch fix an issue that the "struct
ieee802154_xmit_cb" doesn't fit into the skb control block on some kernel configuartion reported by kbuild test robot.
Quoted 7 lines
It was introduced by commit
fe24371d6645b766c59ec664c59d0a9c310ad455("mac802154: tx: remove kmalloc in xmit hotpath").Signed-off-by Alexander Aring <[email protected]>---
net/mac802154/tx.c| 17 +++++------------1 file changed, 5 insertions(+), 12 deletions(-)
patch has been applied to bluetooth-next tree.
Regards
Marcel