Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 433bd805 authored by Andy Lutomirski's avatar Andy Lutomirski Committed by H. Peter Anvin
Browse files

clocksource: Replace vread with generic arch data



The vread field was bloating struct clocksource everywhere except
x86_64, and I want to change the way this works on x86_64, so let's
split it out into per-arch data.

Cc: x86@kernel.org
Cc: Clemens Ladisch <clemens@ladisch.de>
Cc: linux-ia64@vger.kernel.org
Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: John Stultz <johnstul@us.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarAndy Lutomirski <luto@mit.edu>
Link: http://lkml.kernel.org/r/3ae5ec76a168eaaae63f08a2a1060b91aa0b7759.1310563276.git.luto@mit.edu


Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
parent 7f79ad15
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
/* x86-specific clocksource additions */

#ifndef _ASM_X86_CLOCKSOURCE_H
#define _ASM_X86_CLOCKSOURCE_H

#ifdef CONFIG_X86_64

#define __ARCH_HAS_CLOCKSOURCE_DATA

struct arch_clocksource_data {
	cycle_t (*vread)(void);
};

#endif /* CONFIG_X86_64 */

#endif /* _ASM_X86_CLOCKSOURCE_H */
+1 −1
Original line number Diff line number Diff line
@@ -753,7 +753,7 @@ static struct clocksource clocksource_hpet = {
	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
	.resume		= hpet_resume_counter,
#ifdef CONFIG_X86_64
	.vread		= vread_hpet,
	.archdata	= { .vread = vread_hpet },
#endif
};

+1 −1
Original line number Diff line number Diff line
@@ -777,7 +777,7 @@ static struct clocksource clocksource_tsc = {
	.flags                  = CLOCK_SOURCE_IS_CONTINUOUS |
				  CLOCK_SOURCE_MUST_VERIFY,
#ifdef CONFIG_X86_64
	.vread                  = vread_tsc,
	.archdata               = { .vread = vread_tsc },
#endif
};

+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ void update_vsyscall(struct timespec *wall_time, struct timespec *wtm,
	write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags);

	/* copy vsyscall data */
	vsyscall_gtod_data.clock.vread		= clock->vread;
	vsyscall_gtod_data.clock.vread		= clock->archdata.vread;
	vsyscall_gtod_data.clock.cycle_last	= clock->cycle_last;
	vsyscall_gtod_data.clock.mask		= clock->mask;
	vsyscall_gtod_data.clock.mult		= mult;
+4 −0
Original line number Diff line number Diff line
/*
 * Architectures should override this file to add private userspace
 * clock magic if needed.
 */
Loading