Re: [PATCH 1/1] livepatch: add support on s390

From: Josh Poimboeuf
Date: Thu Mar 26 2015 - 08:15:48 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/