Message ID | 20201028182018.1780842-4-aleksandrnogikh@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Johannes Berg |
Headers | show |
Series | net, mac80211, kernel: enable KCOV remote coverage collection for 802.11 frame handling | expand |
On Wed, Oct 28, 2020 at 10:25 PM Johannes Berg <johannes@sipsolutions.net> wrote: [...] > Wouldn't it make more sense to push that a layer down > into ieee80211_rx_napi(), or actually now perhaps even > better ieee80211_rx_list(), so we get it even if the driver called that > API in the first place? > > You might only care about hwsim at this point, but perhaps hwsim would > get optimised .. Yes, ieee80211_rx_list() seems to be a reasonable place to move these annotations to. Thanks for the suggestion. I've incorporated this change into v5: https://lkml.kernel.org/r/20201029173620.2121359-1-aleksandrnogikh@gmail.com
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index e8e295dae744..f4c37a1b381e 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -4499,7 +4499,9 @@ void ieee80211_rx_napi(struct ieee80211_hw *hw, struct ieee80211_sta *sta, */ static inline void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) { + kcov_remote_start_common(skb_get_kcov_handle(skb)); ieee80211_rx_napi(hw, NULL, skb, NULL); + kcov_remote_stop(); } /** diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 1be775979132..56a1bcea2c1c 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -1356,6 +1356,7 @@ static void ieee80211_iface_work(struct work_struct *work) while ((skb = skb_dequeue(&sdata->skb_queue))) { struct ieee80211_mgmt *mgmt = (void *)skb->data; + kcov_remote_start_common(skb_get_kcov_handle(skb)); if (ieee80211_is_action(mgmt->frame_control) && mgmt->u.action.category == WLAN_CATEGORY_BACK) { int len = skb->len; @@ -1465,6 +1466,7 @@ static void ieee80211_iface_work(struct work_struct *work) } kfree_skb(skb); + kcov_remote_stop(); } /* then other type-dependent work */