diff --git a/COPYING-6.12.0-55.31.1.el10 b/COPYING-6.12.0-55.32.1.el10 similarity index 100% rename from COPYING-6.12.0-55.31.1.el10 rename to COPYING-6.12.0-55.32.1.el10 diff --git a/Makefile.rhelver b/Makefile.rhelver index 9e79724b3a..6af39a99f9 100644 --- a/Makefile.rhelver +++ b/Makefile.rhelver @@ -12,7 +12,7 @@ RHEL_MINOR = 0 # # Use this spot to avoid future merge conflicts. # Do not trim this comment. -RHEL_RELEASE = 55.31.1 +RHEL_RELEASE = 55.32.1 # # RHEL_REBASE_NUM diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c index 6bcee47040..d44641108b 100644 --- a/kernel/time/posix-cpu-timers.c +++ b/kernel/time/posix-cpu-timers.c @@ -1400,6 +1400,15 @@ void run_posix_cpu_timers(void) lockdep_assert_irqs_disabled(); + /* + * Ensure that release_task(tsk) can't happen while + * handle_posix_cpu_timers() is running. Otherwise, a concurrent + * posix_cpu_timer_del() may fail to lock_task_sighand(tsk) and + * miss timer->it.cpu.firing != 0. + */ + if (tsk->exit_state) + return; + /* * If the actual expiry is deferred to task work context and the * work is already scheduled there is no point to do anything here.