-
Jan Kiszka authored
These steps must be done unconditionally, because if __ipipe_ack_hrtimer_irq() is called, the tick event will be delivered to the head domain next, which will neither call ipipe_end() for a tick event, nor propagate such event to the root stage (at least not using the same IRQ line). This plugs a race for timers that are per-CPU but share the same interrupt number. When setting them up, there is a window where the first CPU already called ipipe_request_irq, but some other CPU did not yet ran through grab_timer, thus have ipipe_stolen = 0. It also solves boot issues with the TSC deadline timer in use. Based on reasoning provided by Philippe Gerum. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
e94b0a88