mirror of https://gitee.com/openkylin/linux.git
mac80211: Fix scan RX processing oops
ieee80211_bss_info_update() can return NULL. Verify that this is not the case before calling ieee802111_rx_bss_put() which would trigger an oops in interrupt context in atomic_dec_and_lock(). Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com> Acked-by: Johannes Berg <johannes@sipsolutions.net> Acked-by: Benoit Papillault <benoit.papillault@free.fr> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
c25bab54fe
commit
d048e503a2
|
@ -388,7 +388,8 @@ ieee80211_scan_rx(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb,
|
||||||
bss = ieee80211_bss_info_update(sdata->local, rx_status,
|
bss = ieee80211_bss_info_update(sdata->local, rx_status,
|
||||||
mgmt, skb->len, &elems,
|
mgmt, skb->len, &elems,
|
||||||
freq, beacon);
|
freq, beacon);
|
||||||
ieee80211_rx_bss_put(sdata->local, bss);
|
if (bss)
|
||||||
|
ieee80211_rx_bss_put(sdata->local, bss);
|
||||||
|
|
||||||
dev_kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
return RX_QUEUED;
|
return RX_QUEUED;
|
||||||
|
|
Loading…
Reference in New Issue