• Johannes Berg's avatar
    wifi: mac80211: set up/tear down client vif links properly · b2e8434f
    Johannes Berg authored
    In station/client mode, the link data needs a bit more
    initialization and destruction than just zero-init and
    kfree() respectively, implement that.
    
    This required some shuffling of the link data handling
    in general, as we should set it up in setup and do the
    teardown in teardown, otherwise we're asymmetric in
    case of interface type changes.
    
    Also stop using kfree_rcu(), we cannot guarantee that
    nothing is scheduling things that live within the link
    (e.g. the u.mgd.request_smps_work) until we're sure it
    cannot be referenced anymore, therefore synchronize
    instead. This isn't very efficient, but we can always
    optimize it later.
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    b2e8434f
iface.c 65.9 KB