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)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 24 Jun 2010 19:42:30 +0000 (15:42 -0400)
commitc937019761a758f2749b1f3a032b7a91fb044753
tree8305297e2d93794fa3a70e28dcb99990c9050ecb
parentde66bfd85c817146825eaafb39d5872463c09e8c
mac80211: avoid scheduling while atomic in mesh_rx_plink_frame

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>
Cc: stable@kernel.org
net/mac80211/mesh_plink.c