On Wed, 4 Dec 2019 at 14:05, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > > On Wed, 2019-12-04 at 11:56 +0000, Pavel Machek wrote: > > > > - if (time_after(stats->last_rx, sta->status_stats.last_ack)) > > > + if (!sta->status_stats.last_ack || > > > + time_after(stats->last_rx, sta->status_stats.last_ack)) > > > return stats->last_rx; > > > return sta->status_stats.last_ack; > > > } > > > > I mean, jiffies do wrapraound periodically, so eventually we'll have > > sta->status_stats.last_ack == 0 even through it is not short after > > boot, no? > > Yeah. I contemplated that when I applied the original patch - it's a bit > complicated otherwise, you have to track "is this valid" etc. > > Since this is updated on pretty much every frame, it's highly unlikely > you'll go without the value for long, so I figured this was good enough. > > johannes > That happened when I was testing an IBSS network, so a unit would have last_ack = 0 for some neighbours for extended period of time, but last_rx was always valid (from broadcasts and beacons I guess). In this case, it makes sense to use last_rx, no matter jiffies had wrapped around or not. For STA/AP situations, last_ack should pretty much be valid and non-zero. Ahmed