Re: [patch 1/6] posix-cpu-timers: Always clear head pointer on dequeue

From: Frederic Weisbecker
Date: Thu Sep 05 2019 - 11:49:40 EST


On Thu, Sep 05, 2019 at 02:03:40PM +0200, Thomas Gleixner wrote:
> The head pointer in struct cpu_timer is checked to be NULL in
> posix_cpu_timer_del() when the delete raced with the exit cleanup. The
> works correctly as long as the timer is actually dequeued via
> posix_cpu_timers_exit*().
>
> But if the timer was dequeued due to expiry the head pointer is still set
> and triggers the warning.
>
> In fact keeping the head pointer around after any dequeue is pointless as
> is has no meaning at all after that.
>
> Clear the head pointer always on dequeue and remove the unused requeue
> function while at it.
>
> Fixes: 60bda037f1dd ("posix-cpu-timers: Utilize timerqueue for storage")
> Reported-by: syzbot+55acd54b57bb4b3840a4@xxxxxxxxxxxxxxxxxxxxxxxxx
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

Reviewed-by: Frederic Weisbecker <frederic@xxxxxxxxxx>