]> git.baikalelectronics.ru Git - kernel.git/commit
x86/vdso: Replace the clockid switch case
authorThomas Gleixner <tglx@linutronix.de>
Mon, 17 Sep 2018 12:45:41 +0000 (14:45 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 4 Oct 2018 21:00:26 +0000 (23:00 +0200)
commitb21a0f95e76b285a0bc11b21eb347e8e0bf8dcf3
tree30b32d2ddbbb98e9fdb4ba01f9b87d3827dc3775
parent9c520f263c12b897330cd0171171b7ac0afaea31
x86/vdso: Replace the clockid switch case

Now that the time getter functions use the clockid as index into the
storage array for the base time access, the switch case can be replaced.

- Check for clockid >= MAX_CLOCKS and for negative clockid (CPU/FD) first
  and call the fallback function right away.

- After establishing that clockid is < MAX_CLOCKS, convert the clockid to a
  bitmask

- Check for the supported high resolution and coarse functions by anding
  the bitmask of supported clocks and check whether a bit is set.

This completely avoids jump tables, reduces the number of conditionals and
makes the VDSO extensible for other clock ids.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Andy Lutomirski <luto@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Matt Rickard <matt@softrans.com.au>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: "K. Y. Srinivasan" <kys@microsoft.com>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: devel@linuxdriverproject.org
Cc: virtualization@lists.linux-foundation.org
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Juergen Gross <jgross@suse.com>
Link: https://lkml.kernel.org/r/20180917130707.574315796@linutronix.de
arch/x86/entry/vdso/vclock_gettime.c