From: Heiko Carstens Date: Mon, 8 Feb 2021 15:19:27 +0000 (+0100) Subject: s390/time: remove get_tod_clock_ext() X-Git-Tag: v5.15~1740^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7ef37dd7bb00b94e027f63ef626a3a1c58474da9;p=platform%2Fkernel%2Flinux-starfive.git s390/time: remove get_tod_clock_ext() Remove get_tod_clock_ext() and the STORE_CLOCK_EXT_SIZE define. This enforces all users of the existing low level functions to use a union tod_clock. This way there is now a compile time check for the correct time and therefore also if the size of the argument matches what will be written to by the STORE CLOCK EXTENDED instruction. Signed-off-by: Heiko Carstens Signed-off-by: Vasily Gorbik --- diff --git a/arch/s390/include/asm/timex.h b/arch/s390/include/asm/timex.h index dbd7b44..c4e23e9 100644 --- a/arch/s390/include/asm/timex.h +++ b/arch/s390/include/asm/timex.h @@ -17,8 +17,6 @@ /* The value of the TOD clock for 1.1.1970. */ #define TOD_UNIX_EPOCH 0x7d91048bca000000ULL -#define STORE_CLOCK_EXT_SIZE 16 /* stcke writes 16 bytes */ - extern u64 clock_comparator_max; union tod_clock { @@ -173,19 +171,12 @@ static inline void local_tick_enable(unsigned long long comp) typedef unsigned long long cycles_t; -static inline void get_tod_clock_ext(char *clk) -{ - typedef struct { char _[STORE_CLOCK_EXT_SIZE]; } addrtype; - - asm volatile("stcke %0" : "=Q" (*(addrtype *) clk) : : "cc"); -} - static inline unsigned long long get_tod_clock(void) { - char clk[STORE_CLOCK_EXT_SIZE]; + union tod_clock clk; - get_tod_clock_ext(clk); - return *((unsigned long long *)&clk[1]); + store_tod_clock_ext(&clk); + return clk.tod; } static inline unsigned long long get_tod_clock_fast(void)