From: Allen Pais <allen.cryptic@gmail.com> To: gerrit@erg.abdn.ac.uk, davem@davemloft.net, kuba@kernel.org, edumazet@google.com, kuznet@ms2.inr.ac.ru, yoshfuji@linux-ipv6.org, johannes@sipsolutions.net, alex.aring@gmail.com, stefan@datenfreihafen.org, santosh.shilimkar@oracle.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, jiri@resnulli.us Cc: keescook@chromium.org, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, linux-wpan@vger.kernel.org, linux-rdma@vger.kernel.org, linux-s390@vger.kernel.org, Allen Pais <allen.lkml@gmail.com>, Romain Perier <romain.perier@gmail.com> Subject: [PATCH 3/8] net: mac80211: convert tasklets to use new tasklet_setup() API Date: Mon, 17 Aug 2020 14:21:15 +0530 Message-ID: <20200817085120.24894-3-allen.cryptic@gmail.com> (raw) In-Reply-To: <20200817085120.24894-1-allen.cryptic@gmail.com> From: Allen Pais <allen.lkml@gmail.com> In preparation for unconditionally passing the struct tasklet_struct pointer to all tasklet callbacks, switch to using the new tasklet_setup() and from_tasklet() to pass the tasklet pointer explicitly. Signed-off-by: Romain Perier <romain.perier@gmail.com> Signed-off-by: Allen Pais <allen.lkml@gmail.com> --- net/mac80211/ieee80211_i.h | 4 ++-- net/mac80211/main.c | 14 +++++--------- net/mac80211/tx.c | 5 +++-- net/mac80211/util.c | 5 +++-- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 0b1eaec6649f..3fb87a3cee30 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h @@ -1775,7 +1775,7 @@ static inline bool ieee80211_sdata_running(struct ieee80211_sub_if_data *sdata) /* tx handling */ void ieee80211_clear_tx_pending(struct ieee80211_local *local); -void ieee80211_tx_pending(unsigned long data); +void ieee80211_tx_pending(struct tasklet_struct *t); netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb, struct net_device *dev); netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, @@ -2125,7 +2125,7 @@ void ieee80211_txq_remove_vlan(struct ieee80211_local *local, struct ieee80211_sub_if_data *sdata); void ieee80211_fill_txq_stats(struct cfg80211_txq_stats *txqstats, struct txq_info *txqi); -void ieee80211_wake_txqs(unsigned long data); +void ieee80211_wake_txqs(struct tasklet_struct *t); void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, u16 transaction, u16 auth_alg, u16 status, const u8 *extra, size_t extra_len, const u8 *bssid, diff --git a/net/mac80211/main.c b/net/mac80211/main.c index b4a2efe8e83a..dd489b841bb7 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -220,9 +220,9 @@ u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata) BSS_CHANGED_ERP_SLOT; } -static void ieee80211_tasklet_handler(unsigned long data) +static void ieee80211_tasklet_handler(struct tasklet_struct *t) { - struct ieee80211_local *local = (struct ieee80211_local *) data; + struct ieee80211_local *local = from_tasklet(local, t, tasklet); struct sk_buff *skb; while ((skb = skb_dequeue(&local->skb_queue)) || @@ -733,16 +733,12 @@ struct ieee80211_hw *ieee80211_alloc_hw_nm(size_t priv_data_len, skb_queue_head_init(&local->pending[i]); atomic_set(&local->agg_queue_stop[i], 0); } - tasklet_init(&local->tx_pending_tasklet, ieee80211_tx_pending, - (unsigned long)local); + tasklet_setup(&local->tx_pending_tasklet, ieee80211_tx_pending); if (ops->wake_tx_queue) - tasklet_init(&local->wake_txqs_tasklet, ieee80211_wake_txqs, - (unsigned long)local); + tasklet_setup(&local->wake_txqs_tasklet, ieee80211_wake_txqs); - tasklet_init(&local->tasklet, - ieee80211_tasklet_handler, - (unsigned long) local); + tasklet_setup(&local->tasklet, ieee80211_tasklet_handler); skb_queue_head_init(&local->skb_queue); skb_queue_head_init(&local->skb_queue_unreliable); diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index dca01d7e6e3e..a7fafd2f196b 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -4401,9 +4401,10 @@ static bool ieee80211_tx_pending_skb(struct ieee80211_local *local, /* * Transmit all pending packets. Called from tasklet. */ -void ieee80211_tx_pending(unsigned long data) +void ieee80211_tx_pending(struct tasklet_struct *t) { - struct ieee80211_local *local = (struct ieee80211_local *)data; + struct ieee80211_local *local = from_tasklet(local, t, + tx_pending_tasklet); unsigned long flags; int i; bool txok; diff --git a/net/mac80211/util.c b/net/mac80211/util.c index c8504ffc71a1..b99d3d2721df 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -334,9 +334,10 @@ _ieee80211_wake_txqs(struct ieee80211_local *local, unsigned long *flags) rcu_read_unlock(); } -void ieee80211_wake_txqs(unsigned long data) +void ieee80211_wake_txqs(struct tasklet_struct *t) { - struct ieee80211_local *local = (struct ieee80211_local *)data; + struct ieee80211_local *local = from_tasklet(local, t, + wake_txqs_tasklet); unsigned long flags; spin_lock_irqsave(&local->queue_stop_reason_lock, flags); -- 2.17.1
next prev parent reply index Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-08-17 8:51 [PATCH 1/8] net: dccp: " Allen Pais 2020-08-17 8:51 ` [PATCH 2/8] net: ipv4: " Allen Pais 2020-08-17 8:51 ` Allen Pais [this message] 2020-08-17 8:56 ` [PATCH 3/8] net: mac80211: " Johannes Berg 2020-08-17 8:51 ` [PATCH 4/8] net: mac802154: " Allen Pais 2020-08-17 12:19 ` Stefan Schmidt 2020-08-17 8:51 ` [PATCH 5/8] net: rds: " Allen Pais 2020-08-17 8:51 ` [PATCH 6/8] net: sched: " Allen Pais 2020-08-17 8:51 ` [PATCH 7/8] net: smc: " Allen Pais 2020-08-17 8:51 ` [PATCH 8/8] net: xfrm: " Allen Pais
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200817085120.24894-3-allen.cryptic@gmail.com \ --to=allen.cryptic@gmail.com \ --cc=alex.aring@gmail.com \ --cc=allen.lkml@gmail.com \ --cc=davem@davemloft.net \ --cc=edumazet@google.com \ --cc=gerrit@erg.abdn.ac.uk \ --cc=jhs@mojatatu.com \ --cc=jiri@resnulli.us \ --cc=johannes@sipsolutions.net \ --cc=keescook@chromium.org \ --cc=kuba@kernel.org \ --cc=kuznet@ms2.inr.ac.ru \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-rdma@vger.kernel.org \ --cc=linux-s390@vger.kernel.org \ --cc=linux-wireless@vger.kernel.org \ --cc=linux-wpan@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=romain.perier@gmail.com \ --cc=santosh.shilimkar@oracle.com \ --cc=stefan@datenfreihafen.org \ --cc=xiyou.wangcong@gmail.com \ --cc=yoshfuji@linux-ipv6.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-WPAN Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-wpan/0 linux-wpan/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-wpan linux-wpan/ https://lore.kernel.org/linux-wpan \ linux-wpan@vger.kernel.org public-inbox-index linux-wpan Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-wpan AGPL code for this site: git clone https://public-inbox.org/public-inbox.git