2018-10-23 03:24:58

by Tony Chuang

[permalink] [raw]
Subject: [PATCH] mac80211: fix GFP_KERNEL under tasklet context

From: Yan-Hsuan Chuang <[email protected]>

cfg80211_sta_opmode_change_notify needs a gfp_t flag to hint the nl80211
stack when allocating new skb, but it is called under tasklet context
here with GFP_KERNEL and kernel will yield a warning about it.

Fixes: ff84e7bfe176 ("mac80211: Add support to notify ht/vht opmode modification.")
Signed-off-by: Yan-Hsuan Chuang <[email protected]>
---
net/mac80211/rx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 64742f2..03d3964f 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -3028,7 +3028,7 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
cfg80211_sta_opmode_change_notify(sdata->dev,
rx->sta->addr,
&sta_opmode,
- GFP_KERNEL);
+ GFP_ATOMIC);
goto handled;
}
case WLAN_HT_ACTION_NOTIFY_CHANWIDTH: {
@@ -3065,7 +3065,7 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
cfg80211_sta_opmode_change_notify(sdata->dev,
rx->sta->addr,
&sta_opmode,
- GFP_KERNEL);
+ GFP_ATOMIC);
goto handled;
}
default:
--
2.7.4



2018-10-23 13:56:39

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix GFP_KERNEL under tasklet context

On 10/22/18 10:24 PM, [email protected] wrote:
> From: Yan-Hsuan Chuang <[email protected]>
>
> cfg80211_sta_opmode_change_notify needs a gfp_t flag to hint the nl80211
> stack when allocating new skb, but it is called under tasklet context
> here with GFP_KERNEL and kernel will yield a warning about it.
>
> Fixes: ff84e7bfe176 ("mac80211: Add support to notify ht/vht opmode modification.")
> Signed-off-by: Yan-Hsuan Chuang <[email protected]>
> ---

ACKed-by: Larry Finger <[email protected]>

Just in case a "Fixes" is not enough, please add

Cc: Stable <[email protected]> # v4.17+

Larry

> net/mac80211/rx.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
> index 64742f2..03d3964f 100644
> --- a/net/mac80211/rx.c
> +++ b/net/mac80211/rx.c
> @@ -3028,7 +3028,7 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
> cfg80211_sta_opmode_change_notify(sdata->dev,
> rx->sta->addr,
> &sta_opmode,
> - GFP_KERNEL);
> + GFP_ATOMIC);
> goto handled;
> }
> case WLAN_HT_ACTION_NOTIFY_CHANWIDTH: {
> @@ -3065,7 +3065,7 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
> cfg80211_sta_opmode_change_notify(sdata->dev,
> rx->sta->addr,
> &sta_opmode,
> - GFP_KERNEL);
> + GFP_ATOMIC);
> goto handled;
> }
> default:
>