ia64: remove generated/nr-irqs.h generation to fix build warning
authorMasahiro Yamada <masahiroy@kernel.org>
Sat, 29 Aug 2020 05:15:24 +0000 (14:15 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Thu, 11 Feb 2021 20:11:19 +0000 (05:11 +0900)
commitfa1e160b08e8ceabecbd5b42d8268278197c3e67
tree79af41dbe85dd1ad2c3fad9c850bbbd30852438e
parenta5b7c61ee6ad475e2d7dd1e374f45329bd38e687
ia64: remove generated/nr-irqs.h generation to fix build warning

Randy reports the following warning when building ARCH=ia64 with
CONFIG_IA64_PALINFO=m:

../scripts/Makefile.build:68: 'arch/ia64/kernel/palinfo.ko' will not be built even though obj-m is specified.
../scripts/Makefile.build:69: You cannot use subdir-y/m to visit a module Makefile. Use obj-y/m instead.

This message is actually false-positive, and you can get palinfo.ko
correctly built. It is emitted in the archprepare stage, where Kbuild
descends into arch/ia64/kernel to generate include/generated/nr-irqs.h
instead of any kind of kernel objects.

arch/ia64/kernel/nr-irqs.c was introduced by commit 213060a4d699
("[IA64] pvops: paravirtualize NR_IRQS") to pre-calculate:

   NR_IRQS = max(IA64_NATIVE_NR_IRQS, XEN_NR_IRQS, FOO_NR_IRQS...)

Since commit d52eefb47d4e ("ia64/xen: Remove Xen support for ia64"), this
union contains just one field, making NR_IRQS and IA64_NATIVE_NR_IRQS
always match.

So, the following hard-coding now works:

  #define NR_IRQS                IA64_NATIVE_NR_IRQS

If you need to re-introduce NR_IRQS = max(...) gimmick in the future,
please try to implement it in asm-offsets.c instead of a separate file.
It will be possible because the header inclusion has been consolidated
to make asm-offsets.c independent of <asm/irqs.h>.

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
arch/ia64/Makefile
arch/ia64/include/asm/irq.h
arch/ia64/kernel/Makefile
arch/ia64/kernel/nr-irqs.c [deleted file]