mac80211: avoid scheduling while atomic in mesh_rx_plink_frame
commit6f3748cccb3c3a02265deb4cd66948d4ce2755d3
authorJohn W. Linville <linville@tuxdriver.com>
Mon, 21 Jun 2010 21:14:07 +0000 (21 17:14 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Aug 2010 17:54:13 +0000 (10 10:54 -0700)
treee085cf7476040d1620f82bfd4d5307434b8a03a9
parentd3ae12acd666aadac7834b0389e4a15046aa4132
mac80211: avoid scheduling while atomic in mesh_rx_plink_frame

commit c937019761a758f2749b1f3a032b7a91fb044753 upstream.

While mesh_rx_plink_frame holds sta->lock...

mesh_rx_plink_frame ->
mesh_plink_inc_estab_count ->
ieee80211_bss_info_change_notify

...but ieee80211_bss_info_change_notify is allowed to sleep.  A driver
taking advantage of that allowance can cause a scheduling while
atomic bug.  Similar paths exist for mesh_plink_dec_estab_count,
so work around those as well.

http://bugzilla.kernel.org/show_bug.cgi?id=16099

Also, correct a minor kerneldoc comment error (mismatched function names).

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/mac80211/mesh_plink.c