diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2022-01-25 00:39:30 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2022-03-16 16:55:23 +1100 |
commit | 35de589cb8793573ed56a915af9cb4b5f15ad7d7 (patch) | |
tree | 17b10fa12821ff0e3a094a67c972f68158e63a35 /lib/mpi/mpi-add.c | |
parent | cf74ff52e352112be78c4c4c3637a37ec36a6608 (diff) |
powerpc/time: improve decrementer clockevent processing
The stop/shutdown op should not use decrementer_set_next_event because
that sets decrementers_next_tb to now + decrementer_max, which means a
decrementer interrupt that occurs after that time will call the
clockevent event handler unexpectedly. Set next_tb to ~0 here to prevent
any clock event call. Init all clockevents to stopped.
Then the decrementer clockevent device always has event_handler set and
applicable because we know the clock event device was not stopped. So
make this call unconditional to show that it is always called. next_tb
need not be set to ~0 before the event handler is called because it will
stop the clockevent device if there is no other timer.
Finally, the timer broadcast interrupt should not modify next_tb because
it is not involved with the local decrementer clockevent on this CPU.
This doesn't fix a known bug, just tidies the code.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220124143930.3923442-3-npiggin@gmail.com
Diffstat (limited to 'lib/mpi/mpi-add.c')
0 files changed, 0 insertions, 0 deletions