[PATCH 0/7] clocksource/arm_arch_timer: Removing the static branch on errata handling

From: Marc Zyngier
Date: Mon Apr 08 2019 - 11:49:39 EST


The static key used to deal with the errata workaround that plague a
significant number of arm64 systems (who thought that building a timer
was that hard?) has proved to be a disaster when dealing with
lockdep. We try to activate it in contexts that were never expected,
and things break pretty loudly.

This series takes the easy way out and removes the static key
altogether. It always looked like premature optimisation anyway, and
some of the hooks can be implemented in saner ways. To get there, some
unrelated bits have to be fixed first: the 32bit vdso as well as some
of the arm64 stuff.

Marc Zyngier (7):
ARM: vdso: Remove dependency with the arch_timer driver internals
watchdog/sbsa: Use arch_timer_read_counter instead of
arch_counter_get_cntvct
arm64: Use arch_timer_read_counter instead of arch_counter_get_cntvct
clocksource/arm_arch_timer: Direcly assign set_next_event workaround
clocksource/arm_arch_timer: Drop use of static key in
arch_timer_reg_read_stable
clocksource/arm_arch_timer: Remove use of workaround static key
clocksource/arm_arch_timer: Use arch_timer_read_counter to access
stable counters

arch/arm/include/asm/arch_timer.h | 18 ++++-
arch/arm/include/asm/cp15.h | 2 +
arch/arm/vdso/vgettimeofday.c | 5 +-
arch/arm64/include/asm/arch_timer.h | 78 +++++++++++++-----
arch/arm64/kernel/traps.c | 4 +-
drivers/clocksource/arm_arch_timer.c | 115 +++++++++++++--------------
drivers/watchdog/sbsa_gwdt.c | 2 +-
7 files changed, 139 insertions(+), 85 deletions(-)

--
2.20.1