Skip to content

Commit

Permalink
lib/vdso: Cleanup clock mode storage leftovers
Browse files Browse the repository at this point in the history
Now that all architectures are converted to use the generic storage the
helpers and conditionals can be removed.

Signed-off-by: Thomas Gleixner <[email protected]>
Tested-by: Vincenzo Frascino <[email protected]>
Reviewed-by: Vincenzo Frascino <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
  • Loading branch information
KAGA-KOKO committed Feb 17, 2020
1 parent 5e3c6a3 commit f86fd32
Show file tree
Hide file tree
Showing 9 changed files with 7 additions and 32 deletions.
1 change: 0 additions & 1 deletion arch/arm/mm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -900,7 +900,6 @@ config VDSO
select GENERIC_TIME_VSYSCALL
select GENERIC_VDSO_32
select GENERIC_GETTIMEOFDAY
select GENERIC_VDSO_CLOCK_MODE
help
Place in the process address space an ELF shared object
providing fast implementations of gettimeofday and
Expand Down
1 change: 0 additions & 1 deletion arch/arm64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,6 @@ config ARM64
select GENERIC_STRNLEN_USER
select GENERIC_TIME_VSYSCALL
select GENERIC_GETTIMEOFDAY
select GENERIC_VDSO_CLOCK_MODE
select HANDLE_DOMAIN_IRQ
select HARDIRQS_SW_RESEND
select HAVE_PCI
Expand Down
1 change: 0 additions & 1 deletion arch/mips/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ config MIPS
select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL
select GENERIC_VDSO_CLOCK_MODE
select GUP_GET_PTE_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
select HANDLE_DOMAIN_IRQ
select HAVE_ARCH_COMPILER_H
Expand Down
1 change: 0 additions & 1 deletion arch/x86/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ config X86
select GENERIC_STRNLEN_USER
select GENERIC_TIME_VSYSCALL
select GENERIC_GETTIMEOFDAY
select GENERIC_VDSO_CLOCK_MODE
select GENERIC_VDSO_TIME_NS
select GUP_GET_PTE_LOW_HIGH if X86_PAE
select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
Expand Down
7 changes: 0 additions & 7 deletions include/asm-generic/vdso/vsyscall.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,6 @@ static __always_inline bool __arch_update_vdso_data(void)
}
#endif /* __arch_update_vdso_data */

#ifndef __arch_get_clock_mode
static __always_inline int __arch_get_clock_mode(struct timekeeper *tk)
{
return 0;
}
#endif /* __arch_get_clock_mode */

#ifndef __arch_update_vsyscall
static __always_inline void __arch_update_vsyscall(struct vdso_data *vdata,
struct timekeeper *tk)
Expand Down
4 changes: 2 additions & 2 deletions include/linux/clocksource.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ struct clocksource;
struct module;

#if defined(CONFIG_ARCH_CLOCKSOURCE_DATA) || \
defined(CONFIG_GENERIC_VDSO_CLOCK_MODE)
defined(CONFIG_GENERIC_GETTIMEOFDAY)
#include <asm/clocksource.h>
#endif

enum vdso_clock_mode {
VDSO_CLOCKMODE_NONE,
#ifdef CONFIG_GENERIC_VDSO_CLOCK_MODE
#ifdef CONFIG_GENERIC_GETTIMEOFDAY
VDSO_ARCH_CLOCKMODES,
#endif
VDSO_CLOCKMODE_MAX,
Expand Down
4 changes: 0 additions & 4 deletions kernel/time/vsyscall.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,7 @@ void update_vsyscall(struct timekeeper *tk)
/* copy vsyscall data */
vdso_write_begin(vdata);

#ifdef CONFIG_GENERIC_VDSO_CLOCK_MODE
clock_mode = tk->tkr_mono.clock->vdso_clock_mode;
#else
clock_mode = __arch_get_clock_mode(tk);
#endif
vdata[CS_HRES_COARSE].clock_mode = clock_mode;
vdata[CS_RAW].clock_mode = clock_mode;

Expand Down
3 changes: 0 additions & 3 deletions lib/vdso/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,4 @@ config GENERIC_VDSO_TIME_NS
Selected by architectures which support time namespaces in the
VDSO

config GENERIC_VDSO_CLOCK_MODE
bool

endif
17 changes: 5 additions & 12 deletions lib/vdso/gettimeofday.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,16 +65,13 @@ static int do_hres_timens(const struct vdso_data *vdns, clockid_t clk,

do {
seq = vdso_read_begin(vd);
if (IS_ENABLED(CONFIG_GENERIC_VDSO_CLOCK_MODE) &&
vd->clock_mode == VDSO_CLOCKMODE_NONE)

if (unlikely(vd->clock_mode == VDSO_CLOCKMODE_NONE))
return -1;

cycles = __arch_get_hw_counter(vd->clock_mode);
ns = vdso_ts->nsec;
last = vd->cycle_last;
if (!IS_ENABLED(CONFIG_GENERIC_VDSO_CLOCK_MODE) &&
unlikely((s64)cycles < 0))
return -1;

ns += vdso_calc_delta(cycles, last, vd->mask, vd->mult);
ns >>= vd->shift;
sec = vdso_ts->sec;
Expand Down Expand Up @@ -137,16 +134,12 @@ static __always_inline int do_hres(const struct vdso_data *vd, clockid_t clk,
}
smp_rmb();

if (IS_ENABLED(CONFIG_GENERIC_VDSO_CLOCK_MODE) &&
vd->clock_mode == VDSO_CLOCKMODE_NONE)
if (unlikely(vd->clock_mode == VDSO_CLOCKMODE_NONE))
return -1;

cycles = __arch_get_hw_counter(vd->clock_mode);
ns = vdso_ts->nsec;
last = vd->cycle_last;
if (!IS_ENABLED(CONFIG_GENERIC_VDSO_CLOCK_MODE) &&
unlikely((s64)cycles < 0))
return -1;

ns += vdso_calc_delta(cycles, last, vd->mask, vd->mult);
ns >>= vd->shift;
sec = vdso_ts->sec;
Expand Down

0 comments on commit f86fd32

Please sign in to comment.