mac80211: fix calling sleeping function in atomic context
authorSara Sharon <sara.sharon@intel.com>
Mon, 19 Feb 2018 12:48:37 +0000 (14:48 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 19 Feb 2018 13:53:10 +0000 (14:53 +0100)
sta_info_alloc can be called from atomic paths (such as RX path)
so we need to call pcpu_alloc with the correct gfp.

Fixes: c9c5962b56c1 ("mac80211: enable collecting station statistics per-CPU")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/sta_info.c

index 8d7e3732bb613398147f7289d05a7f13e4c499b4..af0b608ee8ed11bdab91a163e4f8e8036f991185 100644 (file)
@@ -314,7 +314,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
 
        if (ieee80211_hw_check(hw, USES_RSS)) {
                sta->pcpu_rx_stats =
-                       alloc_percpu(struct ieee80211_sta_rx_stats);
+                       alloc_percpu_gfp(struct ieee80211_sta_rx_stats, gfp);
                if (!sta->pcpu_rx_stats)
                        goto free;
        }