initramfs: fix clang build failure
authorArnd Bergmann <arnd@arndb.de>
Fri, 11 Dec 2020 21:36:42 +0000 (13:36 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 11 Dec 2020 22:02:14 +0000 (14:02 -0800)
commit55d5b7dd6451b58489ce384282ca5a4a289eb8d5
tree7f4834a9ef3a5db25eb9a409d7ab8c171353e0fe
parent14dc3983b5dff513a90bd5a8cc90acaf7867c3d0
initramfs: fix clang build failure

There is only one function in init/initramfs.c that is in the .text
section, and it is marked __weak.  When building with clang-12 and the
integrated assembler, this leads to a bug with recordmcount:

  ./scripts/recordmcount  "init/initramfs.o"
  Cannot find symbol for section 2: .text.
  init/initramfs.o: failed

I'm not quite sure what exactly goes wrong, but I notice that this
function is only ever called from an __init function, and normally
inlined.  Marking it __init as well is clearly correct and it leads to
recordmcount no longer complaining.

Link: https://lkml.kernel.org/r/20201204165742.3815221-1-arnd@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Nathan Chancellor <natechancellor@gmail.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Barret Rhoden <brho@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
init/initramfs.c