Message ID | 20230306140824.3858543-2-joe.lawrence@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | livepatch: klp-convert tool | expand |
On Mon, Mar 06, 2023 at 09:08:15AM -0500, Joe Lawrence wrote: > Define klp prefixes in include/uapi/linux/livepatch.h, and use them for > replacing hard-coded values in kernel/livepatch/core.c. > > Update MAINTAINERS. > > Note: Add defines to uapi as these are also to be used by a newly > introduced klp-convert script. > > Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> > Signed-off-by: Joao Moreira <jmoreira@suse.de> > Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com> LGTM: Reviewed-by: Marcos Paulo de Souza <mpdesouza@suse.com> > --- > MAINTAINERS | 1 + > include/linux/livepatch.h | 1 + > include/uapi/linux/livepatch.h | 15 +++++++++++++++ > kernel/livepatch/core.c | 4 ++-- > 4 files changed, 19 insertions(+), 2 deletions(-) > create mode 100644 include/uapi/linux/livepatch.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index 135d93368d36..5bdf333fb1f3 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -12069,6 +12069,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/linux/livepatch.h b/include/linux/livepatch.h > index 293e29960c6e..46da4c0df6c1 100644 > --- a/include/linux/livepatch.h > +++ b/include/linux/livepatch.h > @@ -13,6 +13,7 @@ > #include <linux/ftrace.h> > #include <linux/completion.h> > #include <linux/list.h> > +#include <uapi/linux/livepatch.h> > > #if IS_ENABLED(CONFIG_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 201f0c0482fb..c565d33db582 100644 > --- a/kernel/livepatch/core.c > +++ b/kernel/livepatch/core.c > @@ -234,7 +234,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 +305,7 @@ int klp_apply_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", > -- > 2.39.2 >
diff --git a/MAINTAINERS b/MAINTAINERS index 135d93368d36..5bdf333fb1f3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -12069,6 +12069,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/linux/livepatch.h b/include/linux/livepatch.h index 293e29960c6e..46da4c0df6c1 100644 --- a/include/linux/livepatch.h +++ b/include/linux/livepatch.h @@ -13,6 +13,7 @@ #include <linux/ftrace.h> #include <linux/completion.h> #include <linux/list.h> +#include <uapi/linux/livepatch.h> #if IS_ENABLED(CONFIG_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 201f0c0482fb..c565d33db582 100644 --- a/kernel/livepatch/core.c +++ b/kernel/livepatch/core.c @@ -234,7 +234,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 +305,7 @@ int klp_apply_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",