On Thu, 2009-04-16 at 12:59 +0300, Kalle Valo wrote: > >> I have been thinking two ways to fix this, either disabling the timer > >> for the duration of the scan or add a check for scan scan in > >> ieee80211_associated(). I started implementing the former but haven't > >> finished it yet. It would be great if someone else can fix it. > > > > But that doesn't make sense to me now. ieee80211_associated() is only > > run from the station work (ieee80211_sta_work) which doesn't do anything > > when we're scanning (and gets restarted on scan end). So even if last_rx > > or last_beacon isn't updated we should only run the evaluation of that > > after the scan finishes. > > ifmgd->timer is run every two seconds, even then scanning and it calls > like this: > > ieee80211_sta_timer() -> ieee80211_sta_work() -> ieee80211_associated() > > And to my knowledge the timer is run even when scanning. Or am I missing > something? But ieee80211_sta_work() checks if we're scanning and aborts if we are. > Like you have sometime ago said, this MLME code we would need a rewrite. > It's getting messier all the time. Heh, yeah. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part