On Thu, Mar 26, 2015 at 10:10:17AM +0100, Jiri Slaby wrote: > This is a trivial port from kGraft. Module relocations are not > supported. > > Signed-off-by: Jiri Slaby <jslaby@xxxxxxx> > --- > [v2] return ENOSYS > [v3] proper return value from klp_check_compiler_support > > arch/s390/Kconfig | 3 +++ > arch/s390/include/asm/livepatch.h | 43 +++++++++++++++++++++++++++++++++++++++ > 2 files changed, 46 insertions(+) > create mode 100644 arch/s390/include/asm/livepatch.h Acked-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx> > > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index 5f01f22b4f16..de2726a487b0 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -134,6 +134,7 @@ config S390 > select HAVE_KPROBES > select HAVE_KRETPROBES > select HAVE_KVM > + select HAVE_LIVEPATCH > select HAVE_MEMBLOCK > select HAVE_MEMBLOCK_NODE_MAP > select HAVE_MEMBLOCK_PHYS_MAP > @@ -164,6 +165,8 @@ source "init/Kconfig" > > source "kernel/Kconfig.freezer" > > +source "kernel/livepatch/Kconfig" > + > menu "Processor type and features" > > config HAVE_MARCH_Z900_FEATURES > diff --git a/arch/s390/include/asm/livepatch.h b/arch/s390/include/asm/livepatch.h > new file mode 100644 > index 000000000000..7aa799134a11 > --- /dev/null > +++ b/arch/s390/include/asm/livepatch.h > @@ -0,0 +1,43 @@ > +/* > + * livepatch.h - s390-specific Kernel Live Patching Core > + * > + * Copyright (c) 2013-2015 SUSE > + * Authors: Jiri Kosina > + * Vojtech Pavlik > + * Jiri Slaby > + */ > + > +/* > + * This program is free software; you can redistribute it and/or modify it > + * under the terms of the GNU General Public License as published by the Free > + * Software Foundation; either version 2 of the License, or (at your option) > + * any later version. > + */ > + > +#ifndef ASM_LIVEPATCH_H > +#define ASM_LIVEPATCH_H > + > +#include <linux/module.h> > + > +#ifdef CONFIG_LIVEPATCH > +static inline int klp_check_compiler_support(void) > +{ > + return 0; > +} > + > +static inline int klp_write_module_reloc(struct module *mod, unsigned long > + type, unsigned long loc, unsigned long value) > +{ > + /* not supported yet */ > + return -ENOSYS; > +} > + > +static inline void klp_arch_set_pc(struct pt_regs *regs, unsigned long ip) > +{ > + regs->psw.addr = ip; > +} > +#else > +#error Live patching support is disabled; check CONFIG_LIVEPATCH > +#endif > + > +#endif > -- > 2.3.3 > -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html