• Javier Cardona's avatar
    mac80211: Fix locking bug on mesh path table access · 9b84b808
    Javier Cardona authored
    The mesh and mpp path tables are accessed from softirq and workqueue
    context so non-irq locking cannot be used.  Or at least that's what
    PROVE_RCU seems to tell us here:
    
    [  431.240946] =================================
    [  431.241061] [ INFO: inconsistent lock state ]
    [  431.241061] 2.6.39-rc3-wl+ #354
    [  431.241061] ---------------------------------
    [  431.241061] inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage.
    [  431.241061] kworker/u:1/1423 [HC0[0]:SC0[0]:HE1:SE1] takes:
    [  431.241061]  (&(&newtbl->hashwlock[i])->rlock){+.?...}, at:
    [<c14671bf>] mesh_path_add+0x167/0x257
    Signed-off-by: default avatarJavier Cardona <javier@cozybit.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    9b84b808
mesh_pathtbl.c 19.3 KB