acrn-kernel/arch
Johannes Berg 4f7dad73df um: time-travel: fix time corruption
[ Upstream commit abe4eaa8618bb36c2b33e9cdde0499296a23448c ]

In 'basic' time-travel mode (without =inf-cpu or =ext), we
still get timer interrupts. These can happen at arbitrary
points in time, i.e. while in timer_read(), which pushes
time forward just a little bit. Then, if we happen to get
the interrupt after calculating the new time to push to,
but before actually finishing that, the interrupt will set
the time to a value that's incompatible with the forward,
and we'll crash because time goes backwards when we do the
forwarding.

Fix this by reading the time_travel_time, calculating the
adjustment, and doing the adjustment all with interrupts
disabled.

Reported-by: Vincent Whitchurch <Vincent.Whitchurch@axis.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-02-05 20:12:57 +00:00
..
alpha
arc
arm ARM: dts: imx23/28: Fix the DMA controller node name 2024-02-05 20:12:52 +00:00
arm64 arm64: dts: amlogic: fix format for s4 uart node 2024-02-05 20:12:53 +00:00
csky arch: consolidate arch_irq_work_raise prototypes 2024-02-05 20:12:49 +00:00
hexagon
ia64
loongarch
m68k
microblaze
mips mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan 2024-01-31 16:17:12 -08:00
nios2
openrisc
parisc
powerpc arch: consolidate arch_irq_work_raise prototypes 2024-02-05 20:12:49 +00:00
riscv arch: consolidate arch_irq_work_raise prototypes 2024-02-05 20:12:49 +00:00
s390 KVM: s390: fix setting of fpc register 2024-02-05 20:12:49 +00:00
sh
sparc
um um: time-travel: fix time corruption 2024-02-05 20:12:57 +00:00
x86 arch: consolidate arch_irq_work_raise prototypes 2024-02-05 20:12:49 +00:00
xtensa
.gitignore
Kconfig