Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90b72609 authored by Juuso Oikarinen's avatar Juuso Oikarinen Committed by John W. Linville
Browse files

mac80211: Add netif state checking to ieee80211_ifa_changed



There's a window for ieee80211_ifa_changed() to get called whilst the
managed mode mutex has not been initialized when opening and stopping the
interface. Currently this causes a kernel BUG like the following:

[  132.460013] kernel BUG at /home/wifi/iwlwifi-2.6/net/mac80211/main.c:380!
[  132.460013] invalid opcode: 0000 [#1] SMP

The mutex is initialized during open(), hence once netif_running() is true,
the mutex should be valid. Fix by adding a netif_running() check to the
function.

Reported-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarJuuso Oikarinen <juuso.oikarinen@nokia.com>
Tested-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 3cfd43f4
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -359,6 +359,9 @@ static int ieee80211_ifa_changed(struct notifier_block *nb,
	struct ieee80211_sub_if_data *sdata;
	struct ieee80211_sub_if_data *sdata;
	struct ieee80211_if_managed *ifmgd;
	struct ieee80211_if_managed *ifmgd;


	if (!netif_running(ndev))
		return NOTIFY_DONE;

	/* Make sure it's our interface that got changed */
	/* Make sure it's our interface that got changed */
	if (!wdev)
	if (!wdev)
		return NOTIFY_DONE;
		return NOTIFY_DONE;