]> rtime.felk.cvut.cz Git - linux-imx.git/commit
mac80211: avoid scheduling while atomic in mesh_rx_plink_frame
authorJohn W. Linville <linville@tuxdriver.com>
Mon, 21 Jun 2010 21:14:07 +0000 (17:14 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Aug 2010 18:09:21 +0000 (11:09 -0700)
commit1a0528f57734493e588229266130c247a8e26ac2
treed41b40a32ce4087f0398082ad12b46c1dba4db27
parentbfcd88d2b16638f74957a78c787e0284d7080284
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