• cozybit Inc's avatar
    mac80211: Allocate new mesh path and portal tables before taking locks · a3e6b12c
    cozybit Inc authored
    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: default avatarJavier Cardona <javier@cozybit.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    a3e6b12c
mesh_pathtbl.c 19 KB