mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +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_TIME_VSYSCALL
 | 
				
			||||||
	select GENERIC_VDSO_32
 | 
						select GENERIC_VDSO_32
 | 
				
			||||||
	select GENERIC_GETTIMEOFDAY
 | 
						select GENERIC_GETTIMEOFDAY
 | 
				
			||||||
	select GENERIC_VDSO_CLOCK_MODE
 | 
					 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  Place in the process address space an ELF shared object
 | 
						  Place in the process address space an ELF shared object
 | 
				
			||||||
	  providing fast implementations of gettimeofday and
 | 
						  providing fast implementations of gettimeofday and
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -110,7 +110,6 @@ config ARM64
 | 
				
			||||||
	select GENERIC_STRNLEN_USER
 | 
						select GENERIC_STRNLEN_USER
 | 
				
			||||||
	select GENERIC_TIME_VSYSCALL
 | 
						select GENERIC_TIME_VSYSCALL
 | 
				
			||||||
	select GENERIC_GETTIMEOFDAY
 | 
						select GENERIC_GETTIMEOFDAY
 | 
				
			||||||
	select GENERIC_VDSO_CLOCK_MODE
 | 
					 | 
				
			||||||
	select HANDLE_DOMAIN_IRQ
 | 
						select HANDLE_DOMAIN_IRQ
 | 
				
			||||||
	select HARDIRQS_SW_RESEND
 | 
						select HARDIRQS_SW_RESEND
 | 
				
			||||||
	select HAVE_PCI
 | 
						select HAVE_PCI
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,6 @@ config MIPS
 | 
				
			||||||
	select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
 | 
						select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
 | 
				
			||||||
	select GENERIC_SMP_IDLE_THREAD
 | 
						select GENERIC_SMP_IDLE_THREAD
 | 
				
			||||||
	select GENERIC_TIME_VSYSCALL
 | 
						select GENERIC_TIME_VSYSCALL
 | 
				
			||||||
	select GENERIC_VDSO_CLOCK_MODE
 | 
					 | 
				
			||||||
	select GUP_GET_PTE_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
 | 
						select GUP_GET_PTE_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
 | 
				
			||||||
	select HANDLE_DOMAIN_IRQ
 | 
						select HANDLE_DOMAIN_IRQ
 | 
				
			||||||
	select HAVE_ARCH_COMPILER_H
 | 
						select HAVE_ARCH_COMPILER_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -125,7 +125,6 @@ config X86
 | 
				
			||||||
	select GENERIC_STRNLEN_USER
 | 
						select GENERIC_STRNLEN_USER
 | 
				
			||||||
	select GENERIC_TIME_VSYSCALL
 | 
						select GENERIC_TIME_VSYSCALL
 | 
				
			||||||
	select GENERIC_GETTIMEOFDAY
 | 
						select GENERIC_GETTIMEOFDAY
 | 
				
			||||||
	select GENERIC_VDSO_CLOCK_MODE
 | 
					 | 
				
			||||||
	select GENERIC_VDSO_TIME_NS
 | 
						select GENERIC_VDSO_TIME_NS
 | 
				
			||||||
	select GUP_GET_PTE_LOW_HIGH		if X86_PAE
 | 
						select GUP_GET_PTE_LOW_HIGH		if X86_PAE
 | 
				
			||||||
	select HARDLOCKUP_CHECK_TIMESTAMP	if X86_64
 | 
						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 */
 | 
					#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
 | 
					#ifndef __arch_update_vsyscall
 | 
				
			||||||
static __always_inline void __arch_update_vsyscall(struct vdso_data *vdata,
 | 
					static __always_inline void __arch_update_vsyscall(struct vdso_data *vdata,
 | 
				
			||||||
						   struct timekeeper *tk)
 | 
											   struct timekeeper *tk)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,13 +24,13 @@ struct clocksource;
 | 
				
			||||||
struct module;
 | 
					struct module;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(CONFIG_ARCH_CLOCKSOURCE_DATA) || \
 | 
					#if defined(CONFIG_ARCH_CLOCKSOURCE_DATA) || \
 | 
				
			||||||
    defined(CONFIG_GENERIC_VDSO_CLOCK_MODE)
 | 
					    defined(CONFIG_GENERIC_GETTIMEOFDAY)
 | 
				
			||||||
#include <asm/clocksource.h>
 | 
					#include <asm/clocksource.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum vdso_clock_mode {
 | 
					enum vdso_clock_mode {
 | 
				
			||||||
	VDSO_CLOCKMODE_NONE,
 | 
						VDSO_CLOCKMODE_NONE,
 | 
				
			||||||
#ifdef CONFIG_GENERIC_VDSO_CLOCK_MODE
 | 
					#ifdef CONFIG_GENERIC_GETTIMEOFDAY
 | 
				
			||||||
	VDSO_ARCH_CLOCKMODES,
 | 
						VDSO_ARCH_CLOCKMODES,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	VDSO_CLOCKMODE_MAX,
 | 
						VDSO_CLOCKMODE_MAX,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -77,11 +77,7 @@ void update_vsyscall(struct timekeeper *tk)
 | 
				
			||||||
	/* copy vsyscall data */
 | 
						/* copy vsyscall data */
 | 
				
			||||||
	vdso_write_begin(vdata);
 | 
						vdso_write_begin(vdata);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_GENERIC_VDSO_CLOCK_MODE
 | 
					 | 
				
			||||||
	clock_mode = tk->tkr_mono.clock->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_HRES_COARSE].clock_mode	= clock_mode;
 | 
				
			||||||
	vdata[CS_RAW].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
 | 
						  Selected by architectures which support time namespaces in the
 | 
				
			||||||
	  VDSO
 | 
						  VDSO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config GENERIC_VDSO_CLOCK_MODE
 | 
					 | 
				
			||||||
	bool
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -65,16 +65,13 @@ static int do_hres_timens(const struct vdso_data *vdns, clockid_t clk,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	do {
 | 
						do {
 | 
				
			||||||
		seq = vdso_read_begin(vd);
 | 
							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;
 | 
								return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		cycles = __arch_get_hw_counter(vd->clock_mode);
 | 
							cycles = __arch_get_hw_counter(vd->clock_mode);
 | 
				
			||||||
		ns = vdso_ts->nsec;
 | 
							ns = vdso_ts->nsec;
 | 
				
			||||||
		last = vd->cycle_last;
 | 
							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 += vdso_calc_delta(cycles, last, vd->mask, vd->mult);
 | 
				
			||||||
		ns >>= vd->shift;
 | 
							ns >>= vd->shift;
 | 
				
			||||||
		sec = vdso_ts->sec;
 | 
							sec = vdso_ts->sec;
 | 
				
			||||||
| 
						 | 
					@ -137,16 +134,12 @@ static __always_inline int do_hres(const struct vdso_data *vd, clockid_t clk,
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		smp_rmb();
 | 
							smp_rmb();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (IS_ENABLED(CONFIG_GENERIC_VDSO_CLOCK_MODE) &&
 | 
							if (unlikely(vd->clock_mode == VDSO_CLOCKMODE_NONE))
 | 
				
			||||||
		    vd->clock_mode == VDSO_CLOCKMODE_NONE)
 | 
					 | 
				
			||||||
			return -1;
 | 
								return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		cycles = __arch_get_hw_counter(vd->clock_mode);
 | 
							cycles = __arch_get_hw_counter(vd->clock_mode);
 | 
				
			||||||
		ns = vdso_ts->nsec;
 | 
							ns = vdso_ts->nsec;
 | 
				
			||||||
		last = vd->cycle_last;
 | 
							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 += vdso_calc_delta(cycles, last, vd->mask, vd->mult);
 | 
				
			||||||
		ns >>= vd->shift;
 | 
							ns >>= vd->shift;
 | 
				
			||||||
		sec = vdso_ts->sec;
 | 
							sec = vdso_ts->sec;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue