• Johannes Berg's avatar
    [PATCH] mac80211: fix virtual interface locking · 79010420
    Johannes Berg authored
    Florian Lohoff noticed a bug in mac80211: when bringing the
    master interface down while other virtual interfaces are up
    we call dev_close() under a spinlock which is not allowed.
    This patch removes the sub_if_lock used by mac80211 in favour
    of using an RCU list. All list manipulations are already done
    under rtnl so are well protected against each other, and the
    read-side locks we took in the RX and TX code are already in
    RCU read-side critical sections.
    Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
    Cc: Florian Lohoff <flo@rfc822.org>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
    Cc: Satyam Sharma <satyam@infradead.org>
    Signed-off-by: default avatarMichael Wu <flamingice@sourmilk.net>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>