Skip to content
Commit ec57870b authored by Bruce Ashfield's avatar Bruce Ashfield
Browse files

mips: Kconfig: add QEMUMIPS64 option



In 5.4+ mips has switched to using the generic VDSO implementation, in
particular the following commits are the bulk of the changes:

   932bb934 mips: compat: vdso: Use legacy syscalls as fallback
   cdab7e2c mips: vdso: Fix flip/flop vdso building bug
   b4c0f7fa mips: vdso: Fix source path
   1f66c45d mips: Add clock_gettime64 entry point
   abed3d82 mips: Add clock_getres entry point
   6393e606 mips: fix vdso32 build, again
   24640f23 mips: Add support for generic vDSO
   8919975b MIPS: VDSO: Fix build for binutils < 2.25
   90800281 MIPS: VDSO: Remove unused gettimeofday.c

There is a (currently) unknown interaction between qemumips64, the
mti_malta64 platform, glibc and VDSO that causes a segfault when
gettimeofday is called during boot. It appears that the VDSO
configuration of the gic address is incorrect, and hence when
read_gic_count() is called during do_hres() initialization, the
page is not properly mapped and a segfault is triggered.

If we avoid reading the gic, and let the vdso syscall fallbacks
be enabled, we are find for boot. The most flexible way to avoid
these reads is to make the two malta clocksources not be selected
when we are booting under qemumips64. This allows other platforms
to not be impacted.

Once a root cause of this bad mapping is found, we can drop the
new CONFIG_QEMUMIPS64 option and behaviour will revert to using
the git automatically.

Signed-off-by: default avatarBruce Ashfield <bruce.ashfield@gmail.com>
parent 6a81b3c0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment