Thread (64 messages) 64 messages, 14 authors, 2018-04-02

Re: [PATCH] Extract initrd free logic from arch-specific code.

From: Oliver <oohall@gmail.com>
Date: 2018-03-28 22:37:52
Also in: linux-alpha, linux-mips, linux-riscv, linux-um, lkml

On Thu, Mar 29, 2018 at 9:14 AM, Russell King - ARM Linux
[off-list ref] wrote:
On Wed, Mar 28, 2018 at 02:04:22PM -0500, Rob Landley wrote:
quoted

On 03/28/2018 11:48 AM, Russell King - ARM Linux wrote:
quoted
On Wed, Mar 28, 2018 at 10:58:51AM -0500, Rob Landley wrote:
quoted
On 03/28/2018 10:26 AM, Shea Levy wrote:
quoted
Now only those architectures that have custom initrd free requirements
need to define free_initrd_mem.
...
quoted
--- a/arch/arc/mm/init.c
+++ b/arch/arc/mm/init.c
@@ -229,10 +229,3 @@ void __ref free_initmem(void)
 {
  free_initmem_default(-1);
 }
-
-#ifdef CONFIG_BLK_DEV_INITRD
-void __init free_initrd_mem(unsigned long start, unsigned long end)
-{
- free_reserved_area((void *)start, (void *)end, -1, "initrd");
-}
-#endif
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 3f972e83909b..19d1c5594e2d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -47,6 +47,7 @@ config ARM
  select HARDIRQS_SW_RESEND
  select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
  select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
+ select HAVE_ARCH_FREE_INITRD_MEM
  select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
  select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU
  select HAVE_ARCH_MMAP_RND_BITS if MMU
Isn't this why weak symbols were invented?
Weak symbols means that we end up with both the weakly-referenced code
and the arch code in the kernel image.  That's fine if the weak code
is small.
The kernel's been able to build with link time garbage collection since 2016:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b67067f1176d

Wouldn't that remove the unused one?
Probably, if anyone bothered to use that, which they don't.

LD_DEAD_CODE_DATA_ELIMINATION is a symbol without a prompt, and from
what I can see, nothing selects it.  Therefore, the symbol is always
disabled, and so the feature never gets used in mainline kernels.

Brings up the obvious question - why is it there if it's completely
unused?  (Maybe to cause confusion, and allowing a justification
for __weak ?)
IIRC Nick had some patches to do the arch enablement for powerpc, but
I'm not sure what happened to them though. I suspect it just fell down
Nick's ever growing TODO list.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help