• Johannes Berg's avatar
    mac80211: fix auth/assoc timeout handling · 89afe614
    Johannes Berg authored
    In my commit 1672c0e3
    ("mac80211: start auth/assoc timeout on frame status")
    I broke auth/assoc timeout handling: in case we wait
    for the TX status, it now leaves the timeout field set
    to 0, which is a valid time and can compare as being
    before now ("jiffies"). Thus, if the work struct runs
    for some other reason, the auth/assoc is treated as
    having timed out.
    
    Fix this by introducing a separate "timeout_started"
    variable that tracks whether the timeout has started
    and is checked before timing out.
    
    Additionally, for proper TX status handling the change
    requires that the skb->dev pointer is set up for all
    the frames, so set it up for all frames in mac80211.
    Reported-by: default avatarWojciech Dubowik <Wojciech.Dubowik@neratec.com>
    Tested-by: default avatarWojciech Dubowik <Wojciech.Dubowik@neratec.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    89afe614
ieee80211_i.h 49.1 KB