diff options
| author | Brian Gerst <brgerst@gmail.com> | 2023-01-24 13:40:19 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2023-01-25 12:33:40 +0100 |
| commit | 4c382d723edce1b3c72b55b1b505cf5526a56afc (patch) | |
| tree | 1b69faa1f65d9b5ef37a073b898251d35ccdc5a7 /arch/x86/entry/vdso/vdso2c.h | |
| parent | 2241ab53cbb5cdb08a6b2d4688feb13971058f65 (diff) | |
| download | linux-4c382d723edce1b3c72b55b1b505cf5526a56afc.tar.gz linux-4c382d723edce1b3c72b55b1b505cf5526a56afc.tar.bz2 linux-4c382d723edce1b3c72b55b1b505cf5526a56afc.zip | |
x86/vdso: Move VDSO image init to vdso2c generated code
Generate an init function for each VDSO image, replacing init_vdso() and
sysenter_setup().
Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20230124184019.26850-1-brgerst@gmail.com
Diffstat (limited to 'arch/x86/entry/vdso/vdso2c.h')
| -rw-r--r-- | arch/x86/entry/vdso/vdso2c.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/entry/vdso/vdso2c.h b/arch/x86/entry/vdso/vdso2c.h index 5264daa8859f..67b3e37576a6 100644 --- a/arch/x86/entry/vdso/vdso2c.h +++ b/arch/x86/entry/vdso/vdso2c.h @@ -179,6 +179,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len, fprintf(outfile, "/* AUTOMATICALLY GENERATED -- DO NOT EDIT */\n\n"); fprintf(outfile, "#include <linux/linkage.h>\n"); + fprintf(outfile, "#include <linux/init.h>\n"); fprintf(outfile, "#include <asm/page_types.h>\n"); fprintf(outfile, "#include <asm/vdso.h>\n"); fprintf(outfile, "\n"); @@ -218,5 +219,10 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len, fprintf(outfile, "\t.sym_%s = %" PRIi64 ",\n", required_syms[i].name, (int64_t)syms[i]); } + fprintf(outfile, "};\n\n"); + fprintf(outfile, "static __init int init_%s(void) {\n", image_name); + fprintf(outfile, "\treturn init_vdso_image(&%s);\n", image_name); fprintf(outfile, "};\n"); + fprintf(outfile, "subsys_initcall(init_%s);\n", image_name); + } |
