On Mon, Jul 06, 2020 at 05:38:01PM +0100, Marc Zyngier wrote: > ARM64_WORKAROUND_1418040 requires that AArch32 EL0 accesses to > the virtual counter register are trapped and emulated by the kernel. > This makes the vdso pretty pointless, and in some cases livelock > prone. > > Provide a workaround entry that limits the vdso to 64bit tasks. > > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> Acked-by: Mark Rutland <mark.rutland@xxxxxxx> Mark. > --- > drivers/clocksource/arm_arch_timer.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c > index a8e4fb429f52..6c3e84180146 100644 > --- a/drivers/clocksource/arm_arch_timer.c > +++ b/drivers/clocksource/arm_arch_timer.c > @@ -480,6 +480,14 @@ static const struct arch_timer_erratum_workaround ool_workarounds[] = { > .set_next_event_virt = erratum_set_next_event_tval_virt, > }, > #endif > +#ifdef CONFIG_ARM64_ERRATUM_1418040 > + { > + .match_type = ate_match_local_cap_id, > + .id = (void *)ARM64_WORKAROUND_1418040, > + .desc = "ARM erratum 1418040", > + .disable_compat_vdso = true, > + }, > +#endif > }; > > typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *, > -- > 2.27.0 >