lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 6 Nov 2014 16:25:14 -0800 From: Anatol Pomozov <anatol.pomozov@...il.com> To: Marc Zyngier <marc.zyngier@....com>, mark.rutland@....com, Stephen Warren <swarren@...dia.com> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@....com>, LKML <linux-kernel@...r.kernel.org>, Anatol Pomozov <anatol.pomozov@...il.com> Subject: Re: [PATCH] arm64: kernel: Copy register_persistent_clock() to arm64 source subtree +Stephen This patch is for tegra20_timer that uses register_persistent_clock(). I did not find any way to share the same arch code for arm/arm64. Actually this register_persistent_clock() does not look arm specific at all. Would it be better to move it somewhere outside of arch/? On Thu, Nov 6, 2014 at 4:21 PM, Anatol Pomozov <anatol.pomozov@...il.com> wrote: > This allows to port code that needs register_persistent_clock() to arm64 > > Signed-off-by: Anatol Pomozov <anatol.pomozov@...il.com> > --- > arch/arm64/include/asm/time.h | 17 +++++++++++++++++ > arch/arm64/kernel/time.c | 37 +++++++++++++++++++++++++++++++++++++ > 2 files changed, 54 insertions(+) > create mode 100644 arch/arm64/include/asm/time.h > > diff --git a/arch/arm64/include/asm/time.h b/arch/arm64/include/asm/time.h > new file mode 100644 > index 0000000..28015b8 > --- /dev/null > +++ b/arch/arm64/include/asm/time.h > @@ -0,0 +1,17 @@ > +/* > + * Copyright (C) 2004 MontaVista Software, Inc. > + * Copyright (C) 2014 The Chromium OS Authors. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > +#ifndef __ASM_TIME_H > +#define __ASM_TIME_H > + > +struct timespec; > +typedef void (*clock_access_fn)(struct timespec *); > +extern int register_persistent_clock(clock_access_fn read_boot, > + clock_access_fn read_persistent); > + > +#endif > diff --git a/arch/arm64/kernel/time.c b/arch/arm64/kernel/time.c > index 1a7125c..71a907e 100644 > --- a/arch/arm64/kernel/time.c > +++ b/arch/arm64/kernel/time.c > @@ -40,6 +40,7 @@ > > #include <asm/thread_info.h> > #include <asm/stacktrace.h> > +#include <asm/time.h> > > #ifdef CONFIG_SMP > unsigned long profile_pc(struct pt_regs *regs) > @@ -79,3 +80,39 @@ void __init time_init(void) > /* Calibrate the delay loop directly */ > lpj_fine = arch_timer_rate / HZ; > } > + > +static void dummy_clock_access(struct timespec *ts) > +{ > + ts->tv_sec = 0; > + ts->tv_nsec = 0; > +} > + > +static clock_access_fn __read_persistent_clock = dummy_clock_access; > +static clock_access_fn __read_boot_clock = dummy_clock_access; > + > +void read_persistent_clock(struct timespec *ts) > +{ > + __read_persistent_clock(ts); > +} > + > +void read_boot_clock(struct timespec *ts) > +{ > + __read_boot_clock(ts); > +} > + > +int __init register_persistent_clock(clock_access_fn read_boot, > + clock_access_fn read_persistent) > +{ > + /* Only allow the clockaccess functions to be registered once */ > + if (__read_persistent_clock == dummy_clock_access && > + __read_boot_clock == dummy_clock_access) { > + if (read_boot) > + __read_boot_clock = read_boot; > + if (read_persistent) > + __read_persistent_clock = read_persistent; > + > + return 0; > + } > + > + return -EINVAL; > +} > -- > 2.1.0.rc2.206.gedb03e5 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists