Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'timers-urgent-2024-03-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer fix from Ingo Molnar:
"Fix timer migration bug that can result in long bootup delays and
other oddities"

* tag 'timers-urgent-2024-03-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
timer/migration: Remove buggy early return on deactivation

-20
-20
kernel/time/timer_migration.c
··· 751 751 752 752 first_childevt = evt = data->evt; 753 753 754 - /* 755 - * Walking the hierarchy is required in any case when a 756 - * remote expiry was done before. This ensures to not lose 757 - * already queued events in non active groups (see section 758 - * "Required event and timerqueue update after a remote 759 - * expiry" in the documentation at the top). 760 - * 761 - * The two call sites which are executed without a remote expiry 762 - * before, are not prevented from propagating changes through 763 - * the hierarchy by the return: 764 - * - When entering this path by tmigr_new_timer(), @evt->ignore 765 - * is never set. 766 - * - tmigr_inactive_up() takes care of the propagation by 767 - * itself and ignores the return value. But an immediate 768 - * return is required because nothing has to be done in this 769 - * level as the event could be ignored. 770 - */ 771 - if (evt->ignore && !remote) 772 - return true; 773 - 774 754 raw_spin_lock(&group->lock); 775 755 776 756 childstate.state = 0;