linux/arch/um/kernel
Johannes Berg abe4eaa861 um: time-travel: fix time corruption
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>
2024-01-05 00:29:51 +01:00
..
skas um: document arch_futex_atomic_op_inuser 2024-01-04 22:08:57 +01:00
asm-offsets.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
config.c.in um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
dtb.c um: Fix order of dtb unflatten/early init 2022-03-11 10:44:43 +01:00
dyn.lds.S objtool/idle: Validate __cpuidle code as noinstr 2023-01-13 11:48:15 +01:00
early_printk.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
exec.c um: Switch printk calls to adhere to correct coding style 2023-02-01 22:11:28 +01:00
exitcode.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
gprof_syms.c um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
initrd.c um: Extract load file helper from initrd.c 2021-12-22 20:32:36 +01:00
ioport.c um: add PCI over virtio emulation driver 2021-06-17 21:45:43 +02:00
irq.c um: fix 3 instances of -Wmissing-prototypes 2023-08-26 22:45:05 +02:00
kmsg_dump.c um: kmsg_dumper: use srcu console list iterator 2022-12-02 11:25:00 +01:00
ksyms.c um: rename set_signals() to um_set_signals() 2021-12-21 21:13:44 +01:00
load_file.c um: Extract load file helper from initrd.c 2021-12-22 20:32:36 +01:00
maccess.c maccess: rename probe_kernel_{read,write} to copy_{from,to}_kernel_nofault 2020-06-17 10:57:41 -07:00
Makefile kbuild: remove --include-dir MAKEFLAG from top Makefile 2023-02-05 18:51:22 +09:00
mem.c - The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe 2022-08-05 16:32:45 -07:00
physmem.c um: Fix comment typo 2022-09-19 23:05:46 +02:00
process.c um: Drop support for hosts without SYSEMU_SINGLESTEP support 2024-01-04 23:29:11 +01:00
ptrace.c um: Drop support for hosts without SYSEMU_SINGLESTEP support 2024-01-04 23:29:11 +01:00
reboot.c um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
sigio.c um: Support dynamic IRQ allocation 2020-12-13 22:22:08 +01:00
signal.c um: Drop support for hosts without SYSEMU_SINGLESTEP support 2024-01-04 23:29:11 +01:00
stacktrace.c UML: add support for KASAN under x86_64 2022-07-17 23:35:22 +02:00
sysrq.c um: Prevent KASAN splats in dump_stack() 2022-09-19 22:58:48 +02:00
time.c um: time-travel: fix time corruption 2024-01-05 00:29:51 +01:00
tlb.c um: Declare fix_range_common as a static function 2023-02-01 22:11:29 +01:00
trap.c mm: always expand the stack with the mmap write lock held 2023-06-27 09:41:30 -07:00
um_arch.c x86/alternative: Rename apply_ibt_endbr() 2023-07-10 09:52:23 +02:00
um_arch.h um: Add devicetree support 2021-12-22 20:35:01 +01:00
umid.c uml: Remove the initialization of statics to 0 2022-09-19 23:10:07 +02:00
uml.lds.S objtool/idle: Validate __cpuidle code as noinstr 2023-01-13 11:48:15 +01:00
vmlinux.lds.S UML: define RUNTIME_DISCARD_EXIT 2023-02-13 10:14:31 +01:00