• J
    [PATCH] mac80211: fix interface initialisation and deinitialisation · 5b2812e9
    Johannes Berg 提交于
    When an interface is registered it is still uninitialised so
    ieee80211_if_reinit() can't be called on it (it will oops.)
    Hence, we need to move the uninit method assignment.
    
    Also, this patch fixes the bug that the master device is never
    initialised nor deinitialised at all. Oddly, the deinit code
    had an if statement to not run some code when running for the
    master interface (which never happened), but that if statement
    is also wrong. Fix that too.
    
    Now that the uninit code is run for the master device, another
    bug surfaced: it tries to remove all dependent interfaces and
    that oopses or BUGs at some point, either because it unregisters
    already unregistered interfaces (missing list_del bug) or due
    to trying to iterate a list that has had other things removed.
    Fix this too by handling the master interface specially.
    Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
    Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
    5b2812e9
ieee80211.c 38.8 KB