a3e6b12c02
It is unnecessary to hold the path table resize lock while allocating a new table. Allocate first and take lock later. This resolves a soft-lockup: [ 293.385799] BUG: soft lockup - CPU#0 stuck for 61s! [kworker/u:3:744] (...) [ 293.386049] Call Trace: [ 293.386049] [<c119fd04>] do_raw_read_lock+0x26/0x29 [ 293.386049] [<c14b2982>] _raw_read_lock+0x8/0xa [ 293.386049] [<c148c178>] mesh_path_add+0xb7/0x24e [ 293.386049] [<c148b98d>] ? mesh_path_lookup+0x1b/0xa6 [ 293.386049] [<c148ded5>] hwmp_route_info_get+0x276/0x2fd [ 293.386049] [<c148dfb6>] mesh_rx_path_sel_frame+0x5a/0x5d9 [ 293.386049] [<c102667d>] ? update_curr+0x1cf/0x1d7 [ 293.386049] [<c148b45a>] ieee80211_mesh_rx_queued_mgmt+0x60/0x67 [ 293.386049] [<c147c374>] ieee80211_iface_work+0x1f0/0x258 (...) Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> |
||
---|---|---|
.. | ||
aes_ccm.c | ||
aes_ccm.h | ||
aes_cmac.c | ||
aes_cmac.h | ||
agg-rx.c | ||
agg-tx.c | ||
cfg.c | ||
cfg.h | ||
chan.c | ||
debugfs.c | ||
debugfs.h | ||
debugfs_key.c | ||
debugfs_key.h | ||
debugfs_netdev.c | ||
debugfs_netdev.h | ||
debugfs_sta.c | ||
debugfs_sta.h | ||
driver-ops.h | ||
driver-trace.c | ||
driver-trace.h | ||
event.c | ||
ht.c | ||
ibss.c | ||
ieee80211_i.h | ||
iface.c | ||
Kconfig | ||
key.c | ||
key.h | ||
led.c | ||
led.h | ||
main.c | ||
Makefile | ||
mesh.c | ||
mesh.h | ||
mesh_hwmp.c | ||
mesh_pathtbl.c | ||
mesh_plink.c | ||
michael.c | ||
michael.h | ||
mlme.c | ||
offchannel.c | ||
pm.c | ||
rate.c | ||
rate.h | ||
rc80211_minstrel.c | ||
rc80211_minstrel.h | ||
rc80211_minstrel_debugfs.c | ||
rc80211_minstrel_ht.c | ||
rc80211_minstrel_ht.h | ||
rc80211_minstrel_ht_debugfs.c | ||
rc80211_pid.h | ||
rc80211_pid_algo.c | ||
rc80211_pid_debugfs.c | ||
rx.c | ||
scan.c | ||
spectmgmt.c | ||
sta_info.c | ||
sta_info.h | ||
status.c | ||
tkip.c | ||
tkip.h | ||
tx.c | ||
util.c | ||
wep.c | ||
wep.h | ||
wme.c | ||
wme.h | ||
work.c | ||
wpa.c | ||
wpa.h |