On Wed, 2014-06-04 at 09:27 -0400, Bob Copeland wrote: > The mesh_plink code is doing some interesting things with the > ignore_plink_timer flag. It seems the original intent was to > handle this race: > > cpu 0 cpu 1 > ----- ----- > start timer handler for state X > acquire sta_lock > change state from X to Y > mod_timer() / del_timer() > release sta_lock > acquire sta_lock > execute state Y timer too soon > > However, using the mod_timer()/del_timer() return values to > detect these cases is broken. As a result, timers get ignored > unnecessarily, and stations can get stuck in the peering state > machine. > > Instead, we can detect the case by looking at the timer expiration. > In the case of del_timer, just ignore the timers in the following > (LISTEN/ESTAB) states since they won't have timers anyway. I'm not entirely sure about the expiration thing - doesn't seem different from the outside flag? But anyway - applied. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html