On 2 April 2015 at 19:46, Peter Zijlstra peterz@infradead.org wrote:
So then I'm not seeing how its a bug. Sure __hrtimer_get_next_event() will iterate all the bases again, and it will not skip the just empty one. But I don't see how that is anything but an inefficiency. By virtue of the base being empty it cannot find an event there, so its a pointless check.
What am I missing?
Hmm. It was a bug for me because I was doing this unconditionally: timer = container_of(timerqueue_getnext(&base->active), + struct hrtimer, node);
And this will give a container-of over NULL, as timerqueue_getnext() can return NULL..
And so it will crash in my case.
But I understand your point, its inefficiency only :(