Re: [PATCH 01/16] initrd: Add generic code path for common initrd unloading logic.
On Wed, Mar 28, 2018 at 2:04 PM, Christoph Hellwig wrote: >> +#ifdef CONFIG_INITRAMFS_GENERIC_UNLOAD >> +void free_initrd_mem(unsigned long start, unsigned long end) >> +{ >> + free_reserved_area((void *)start, (void *)end, -1, "initrd"); >> +} >> +#endif > > Given how trivial this is and how many architectures can use it I'd > reverse the polarity and add a CONFIG_HAVE_ARCH_FREE_INITRD_MEM > instead. And while adding "special" functionality to the generic version, more and more users of CONFIG_HAVE_ARCH_FREE_INITRD_MEM will be removed. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Re: [PATCH 01/16] initrd: Add generic code path for common initrd unloading logic.
> +#ifdef CONFIG_INITRAMFS_GENERIC_UNLOAD > +void free_initrd_mem(unsigned long start, unsigned long end) > +{ > + free_reserved_area((void *)start, (void *)end, -1, "initrd"); > +} > +#endif Given how trivial this is and how many architectures can use it I'd reverse the polarity and add a CONFIG_HAVE_ARCH_FREE_INITRD_MEM instead.
Re: [PATCH 01/16] initrd: Add generic code path for common initrd unloading logic.
Hi Christophe, LEROY Christophe writes: > Shea Levy a écrit : > >> Signed-off-by: Shea Levy >> --- >> init/initramfs.c | 7 +++ >> usr/Kconfig | 4 >> 2 files changed, 11 insertions(+) >> >> diff --git a/init/initramfs.c b/init/initramfs.c >> index 7e99a0038942..de5ce873eb5a 100644 >> --- a/init/initramfs.c >> +++ b/init/initramfs.c >> @@ -526,6 +526,13 @@ extern unsigned long __initramfs_size; >> #include >> #include >> >> +#ifdef CONFIG_INITRAMFS_GENERIC_UNLOAD >> +void free_initrd_mem(unsigned long start, unsigned long end) >> +{ >> + free_reserved_area((void *)start, (void *)end, -1, "initrd"); >> +} >> +#endif > > In powerpc this was an __init function. Why not also put the generic > one in __init section ? > v2 series sent, thanks! > > Christophe > > >> + >> static void __init free_initrd(void) >> { >> #ifdef CONFIG_KEXEC_CORE >> diff --git a/usr/Kconfig b/usr/Kconfig >> index 43658b8a975e..fd79d4d6fa26 100644 >> --- a/usr/Kconfig >> +++ b/usr/Kconfig >> @@ -233,3 +233,7 @@ config INITRAMFS_COMPRESSION >> default ".lzma" if RD_LZMA >> default ".bz2" if RD_BZIP2 >> default "" >> + >> +# Arches can select this for a generic initrd unloading codepath >> +config INITRAMFS_GENERIC_UNLOAD >> +bool >> -- >> 2.16.2 signature.asc Description: PGP signature
Re: [PATCH 01/16] initrd: Add generic code path for common initrd unloading logic.
Shea Levy a écrit : Signed-off-by: Shea Levy --- init/initramfs.c | 7 +++ usr/Kconfig | 4 2 files changed, 11 insertions(+) diff --git a/init/initramfs.c b/init/initramfs.c index 7e99a0038942..de5ce873eb5a 100644 --- a/init/initramfs.c +++ b/init/initramfs.c @@ -526,6 +526,13 @@ extern unsigned long __initramfs_size; #include #include +#ifdef CONFIG_INITRAMFS_GENERIC_UNLOAD +void free_initrd_mem(unsigned long start, unsigned long end) +{ + free_reserved_area((void *)start, (void *)end, -1, "initrd"); +} +#endif In powerpc this was an __init function. Why not also put the generic one in __init section ? Christophe + static void __init free_initrd(void) { #ifdef CONFIG_KEXEC_CORE diff --git a/usr/Kconfig b/usr/Kconfig index 43658b8a975e..fd79d4d6fa26 100644 --- a/usr/Kconfig +++ b/usr/Kconfig @@ -233,3 +233,7 @@ config INITRAMFS_COMPRESSION default ".lzma" if RD_LZMA default ".bz2" if RD_BZIP2 default "" + +# Arches can select this for a generic initrd unloading codepath +config INITRAMFS_GENERIC_UNLOAD + bool -- 2.16.2
[PATCH 01/16] initrd: Add generic code path for common initrd unloading logic.
Signed-off-by: Shea Levy --- init/initramfs.c | 7 +++ usr/Kconfig | 4 2 files changed, 11 insertions(+) diff --git a/init/initramfs.c b/init/initramfs.c index 7e99a0038942..de5ce873eb5a 100644 --- a/init/initramfs.c +++ b/init/initramfs.c @@ -526,6 +526,13 @@ extern unsigned long __initramfs_size; #include #include +#ifdef CONFIG_INITRAMFS_GENERIC_UNLOAD +void free_initrd_mem(unsigned long start, unsigned long end) +{ + free_reserved_area((void *)start, (void *)end, -1, "initrd"); +} +#endif + static void __init free_initrd(void) { #ifdef CONFIG_KEXEC_CORE diff --git a/usr/Kconfig b/usr/Kconfig index 43658b8a975e..fd79d4d6fa26 100644 --- a/usr/Kconfig +++ b/usr/Kconfig @@ -233,3 +233,7 @@ config INITRAMFS_COMPRESSION default ".lzma" if RD_LZMA default ".bz2" if RD_BZIP2 default "" + +# Arches can select this for a generic initrd unloading codepath +config INITRAMFS_GENERIC_UNLOAD + bool -- 2.16.2