mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 10:10:33 +02:00 
			
		
		
		
	lib/vdso: Cleanup clock mode storage leftovers
Now that all architectures are converted to use the generic storage the helpers and conditionals can be removed. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Link: https://lkml.kernel.org/r/20200207124403.470699892@linutronix.de
This commit is contained in:
		
							parent
							
								
									5e3c6a312a
								
							
						
					
					
						commit
						f86fd32db7
					
				
					 9 changed files with 7 additions and 32 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue