ia64: efi: use timespec64 for persistent clock
authorArnd Bergmann <arnd@arndb.de>
Fri, 17 Jun 2016 14:48:17 +0000 (16:48 +0200)
committerTony Luck <tony.luck@intel.com>
Fri, 17 Jun 2016 20:45:05 +0000 (13:45 -0700)
We have a generic read_persistent_clock64 interface now, and can
change the ia64 implementation to provide that instead of
read_persistent_clock.

The main point of this is to avoid the use of struct timespec
in the global efi.h, which would cause build errors as soon
as we want to build a kernel without 'struct timespec' defined
on 32-bit architectures.

Aside from this, we get a little closer to removing the
__weak read_persistent_clock() definition, which relies on
converting all architectures to provide read_persistent_clock64
instead.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/efi.c
arch/ia64/kernel/time.c
include/linux/efi.h

index 3b7a60e40e8ac9d3ec344ea5d3f003b7c8ec16f2..121295637d0df831fbbf919983ee9a0cd1a7d366 100644 (file)
@@ -236,7 +236,7 @@ STUB_GET_NEXT_HIGH_MONO_COUNT(virt, id)
 STUB_RESET_SYSTEM(virt, id)
 
 void
-efi_gettimeofday (struct timespec *ts)
+efi_gettimeofday (struct timespec64 *ts)
 {
        efi_time_t tm;
 
@@ -245,7 +245,7 @@ efi_gettimeofday (struct timespec *ts)
                return;
        }
 
-       ts->tv_sec = mktime(tm.year, tm.month, tm.day,
+       ts->tv_sec = mktime64(tm.year, tm.month, tm.day,
                            tm.hour, tm.minute, tm.second);
        ts->tv_nsec = tm.nanosecond;
 }
index c8dbe2acd735bb6fabe29c41b21483f3fd46009d..6f892b94e9064de4855e5d4de9ed1bfb02799db1 100644 (file)
@@ -355,7 +355,7 @@ static struct irqaction timer_irqaction = {
        .name =         "timer"
 };
 
-void read_persistent_clock(struct timespec *ts)
+void read_persistent_clock64(struct timespec64 *ts)
 {
        efi_gettimeofday(ts);
 }
index f196dd0b0f2f6c241715807f63bdccaa30973ce8..acb6adace01e4a69520504f0ce91a2e79a6a3252 100644 (file)
@@ -937,7 +937,7 @@ extern void efi_init (void);
 extern void *efi_get_pal_addr (void);
 extern void efi_map_pal_code (void);
 extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg);
-extern void efi_gettimeofday (struct timespec *ts);
+extern void efi_gettimeofday (struct timespec64 *ts);
 extern void efi_enter_virtual_mode (void);     /* switch EFI to virtual mode, if possible */
 #ifdef CONFIG_X86
 extern void efi_late_init(void);