Message ID | 20231106162513.17556-2-lhruska@suse.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | livepatch: klp-convert tool - Minimal version | expand |
On Mon 2023-11-06 17:25:09, Lukas Hruska wrote: > From: Josh Poimboeuf <jpoimboe@redhat.com> > > Define klp prefixes in include/uapi/linux/livepatch.h, and use them for > replacing hard-coded values in kernel/livepatch/core.c. > > Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> > Signed-off-by: Lukas Hruska <lhruska@suse.cz> Reviewed-by: Petr Mladek <pmladek@suse.com> Best Regards, Petr
On Mon, 2023-11-06 at 17:25 +0100, Lukas Hruska wrote: > From: Josh Poimboeuf <jpoimboe@redhat.com> > > Define klp prefixes in include/uapi/linux/livepatch.h, and use them > for > replacing hard-coded values in kernel/livepatch/core.c. > > Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> > Signed-off-by: Lukas Hruska <lhruska@suse.cz> Reviewed-by: Marcos Paulo de Souza <mpdesouza@suse.com> > --- > MAINTAINERS | 1 + > include/uapi/linux/livepatch.h | 15 +++++++++++++++ > kernel/livepatch/core.c | 5 +++-- > 3 files changed, 19 insertions(+), 2 deletions(-) > create mode 100644 include/uapi/linux/livepatch.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index 4cc6bf79fdd8..11a2d84c1277 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -12130,6 +12130,7 @@ F: Documentation/ABI/testing/sysfs- > kernel-livepatch > F: Documentation/livepatch/ > F: arch/powerpc/include/asm/livepatch.h > F: include/linux/livepatch.h > +F: include/uapi/linux/livepatch.h > F: kernel/livepatch/ > F: kernel/module/livepatch.c > F: lib/livepatch/ > diff --git a/include/uapi/linux/livepatch.h > b/include/uapi/linux/livepatch.h > new file mode 100644 > index 000000000000..e19430918a07 > --- /dev/null > +++ b/include/uapi/linux/livepatch.h > @@ -0,0 +1,15 @@ > +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ > + > +/* > + * livepatch.h - Kernel Live Patching Core > + * > + * Copyright (C) 2016 Josh Poimboeuf <jpoimboe@redhat.com> > + */ > + > +#ifndef _UAPI_LIVEPATCH_H > +#define _UAPI_LIVEPATCH_H > + > +#define KLP_RELA_PREFIX ".klp.rela." > +#define KLP_SYM_PREFIX ".klp.sym." > + > +#endif /* _UAPI_LIVEPATCH_H */ > diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c > index 61328328c474..622f1916a5c8 100644 > --- a/kernel/livepatch/core.c > +++ b/kernel/livepatch/core.c > @@ -20,6 +20,7 @@ > #include <linux/completion.h> > #include <linux/memory.h> > #include <linux/rcupdate.h> > +#include <uapi/linux/livepatch.h> > #include <asm/cacheflush.h> > #include "core.h" > #include "patch.h" > @@ -226,7 +227,7 @@ static int klp_resolve_symbols(Elf_Shdr *sechdrs, > const char *strtab, > > /* Format: .klp.sym.sym_objname.sym_name,sympos */ > cnt = sscanf(strtab + sym->st_name, > - ".klp.sym.%55[^.].%511[^,],%lu", > + KLP_SYM_PREFIX "%55[^.].%511[^,],%lu", > sym_objname, sym_name, &sympos); > if (cnt != 3) { > pr_err("symbol %s has an incorrectly > formatted name\n", > @@ -305,7 +306,7 @@ static int klp_write_section_relocs(struct module > *pmod, Elf_Shdr *sechdrs, > * See comment in klp_resolve_symbols() for an explanation > * of the selected field width value. > */ > - cnt = sscanf(shstrtab + sec->sh_name, ".klp.rela.%55[^.]", > + cnt = sscanf(shstrtab + sec->sh_name, KLP_RELA_PREFIX > "%55[^.]", > sec_objname); > if (cnt != 1) { > pr_err("section %s has an incorrectly formatted > name\n",
diff --git a/MAINTAINERS b/MAINTAINERS index 4cc6bf79fdd8..11a2d84c1277 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -12130,6 +12130,7 @@ F: Documentation/ABI/testing/sysfs-kernel-livepatch F: Documentation/livepatch/ F: arch/powerpc/include/asm/livepatch.h F: include/linux/livepatch.h +F: include/uapi/linux/livepatch.h F: kernel/livepatch/ F: kernel/module/livepatch.c F: lib/livepatch/ diff --git a/include/uapi/linux/livepatch.h b/include/uapi/linux/livepatch.h new file mode 100644 index 000000000000..e19430918a07 --- /dev/null +++ b/include/uapi/linux/livepatch.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ + +/* + * livepatch.h - Kernel Live Patching Core + * + * Copyright (C) 2016 Josh Poimboeuf <jpoimboe@redhat.com> + */ + +#ifndef _UAPI_LIVEPATCH_H +#define _UAPI_LIVEPATCH_H + +#define KLP_RELA_PREFIX ".klp.rela." +#define KLP_SYM_PREFIX ".klp.sym." + +#endif /* _UAPI_LIVEPATCH_H */ diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c index 61328328c474..622f1916a5c8 100644 --- a/kernel/livepatch/core.c +++ b/kernel/livepatch/core.c @@ -20,6 +20,7 @@ #include <linux/completion.h> #include <linux/memory.h> #include <linux/rcupdate.h> +#include <uapi/linux/livepatch.h> #include <asm/cacheflush.h> #include "core.h" #include "patch.h" @@ -226,7 +227,7 @@ static int klp_resolve_symbols(Elf_Shdr *sechdrs, const char *strtab, /* Format: .klp.sym.sym_objname.sym_name,sympos */ cnt = sscanf(strtab + sym->st_name, - ".klp.sym.%55[^.].%511[^,],%lu", + KLP_SYM_PREFIX "%55[^.].%511[^,],%lu", sym_objname, sym_name, &sympos); if (cnt != 3) { pr_err("symbol %s has an incorrectly formatted name\n", @@ -305,7 +306,7 @@ static int klp_write_section_relocs(struct module *pmod, Elf_Shdr *sechdrs, * See comment in klp_resolve_symbols() for an explanation * of the selected field width value. */ - cnt = sscanf(shstrtab + sec->sh_name, ".klp.rela.%55[^.]", + cnt = sscanf(shstrtab + sec->sh_name, KLP_RELA_PREFIX "%55[^.]", sec_objname); if (cnt != 1) { pr_err("section %s has an incorrectly formatted name\n",