Message ID | 20230516160642.523862-1-arnd@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | arm64: address -Wmissing-prototype warnings | expand |
On Tue, 16 May 2023 at 18:06, Arnd Bergmann <arnd@kernel.org> wrote: > > From: Arnd Bergmann <arnd@arndb.de> > > This addresses all arm64 specific protype warnings. As with the arm32 > patches, the majority of them should be straightforward, either adding > an #include statement to get the right header, or ensuring that an unused > global function is left out of the build when the prototype is hidden. > > The ones that are a bit awkward are those that just add a prototype to > shut up the warning, but the prototypes are never used for calling the > function because the only caller is in assembler code. I tried to come > up with other ways to shut up the compiler, and ideally this would be > triggered by the 'asmlinkage' keyword as Ard suggested in the past, but > I could not come up with a way to do this. > > All of the warnings have to be addressed in some form before the > warning can be enabled by default. > > Arnd > > Link: https://people.kernel.org/arnd/missing-prototype-warnings-in-the-kernel > For the record, as I mentioned a while ago, I think it is a bit disappointing that we cannot teach the compiler that 'asmlinkage' functions don't need a prototype. But I don't have any objections to these changes, so Acked-by: Ard Biesheuvel <ardb@kernel.org> > > Arnd Bergmann (15): > arm64: xor-neon: mark xor_arm64_neon_*() static > arm64: add scs_patch_vmlinux prototype > arm64: avoid prototype warnings for syscalls > arm64: move cpu_suspend_set_dbg_restorer() prototype to header > arm64: spectre: provide prototypes for internal functions > arm64: kvm: add prototypes for functions called in asm > arm64: cpuidle: fix #ifdef for acpi functions > arm64: efi: add efi_handle_corrupted_x18 prototype > arm64: hide unused is_valid_bugaddr() > arm64: module-plts: inline linux/moduleloader.h > arm64: flush: include linux/libnvdimm.h > arm64: kaslr: add kaslr_early_init() declaration > arm64: signal: include asm/exception.h > arm64: move early_brk64 prototype to header > arm64: add alt_cb_patch_nops prototype > > arch/arm64/include/asm/alternative.h | 3 +++ > arch/arm64/include/asm/archrandom.h | 2 ++ > arch/arm64/include/asm/compat.h | 2 ++ > arch/arm64/include/asm/efi.h | 2 ++ > arch/arm64/include/asm/hw_breakpoint.h | 8 ++++++++ > arch/arm64/include/asm/kvm_asm.h | 18 ++++++++++++++++++ > arch/arm64/include/asm/scs.h | 1 + > arch/arm64/include/asm/spectre.h | 16 ++++++++++++++++ > arch/arm64/include/asm/syscall_wrapper.h | 4 ++++ > arch/arm64/include/asm/traps.h | 2 ++ > arch/arm64/kernel/cpuidle.c | 2 +- > arch/arm64/kernel/hw_breakpoint.c | 8 -------- > arch/arm64/kernel/module-plts.c | 1 + > arch/arm64/kernel/signal.c | 1 + > arch/arm64/kernel/traps.c | 3 ++- > arch/arm64/lib/xor-neon.c | 8 ++++---- > arch/arm64/mm/fault.c | 3 --- > arch/arm64/mm/flush.c | 1 + > 18 files changed, 68 insertions(+), 17 deletions(-) > > -- > 2.39.2 > > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Will Deacon <will@kernel.org> > Cc: Ard Biesheuvel <ardb@kernel.org> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Marc Zyngier <maz@kernel.org> > Cc: Oliver Upton <oliver.upton@linux.dev> > Cc: James Morse <james.morse@arm.com> > Cc: Suzuki K Poulose <suzuki.poulose@arm.com> > Cc: Zenghui Yu <yuzenghui@huawei.com> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: Anshuman Khandual <anshuman.khandual@arm.com> > Cc: Kees Cook <keescook@chromium.org> > Cc: Suren Baghdasaryan <surenb@google.com> > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > Cc: linux-efi@vger.kernel.org > Cc: kvmarm@lists.linux.dev >
On Tue, May 16, 2023 at 06:06:27PM +0200, Arnd Bergmann wrote: > This addresses all arm64 specific protype warnings. As with the arm32 > patches, the majority of them should be straightforward, either adding > an #include statement to get the right header, or ensuring that an unused > global function is left out of the build when the prototype is hidden. These look good; thanks for tracking these all down! For the series: Reviewed-by: Kees Cook <keescook@chromium.org>
On Tue, 16 May 2023 18:06:27 +0200, Arnd Bergmann wrote: > This addresses all arm64 specific protype warnings. As with the arm32 > patches, the majority of them should be straightforward, either adding > an #include statement to get the right header, or ensuring that an unused > global function is left out of the build when the prototype is hidden. > > The ones that are a bit awkward are those that just add a prototype to > shut up the warning, but the prototypes are never used for calling the > function because the only caller is in assembler code. I tried to come > up with other ways to shut up the compiler, and ideally this would be > triggered by the 'asmlinkage' keyword as Ard suggested in the past, but > I could not come up with a way to do this. > > [...] Applied to arm64 (for-next/missing-proto-warn), thanks! [01/15] arm64: xor-neon: mark xor_arm64_neon_*() static https://git.kernel.org/arm64/c/320a93d4df48 [02/15] arm64: add scs_patch_vmlinux prototype https://git.kernel.org/arm64/c/aea197160d74 [03/15] arm64: avoid prototype warnings for syscalls https://git.kernel.org/arm64/c/6ac19f96515e [04/15] arm64: move cpu_suspend_set_dbg_restorer() prototype to header https://git.kernel.org/arm64/c/ec3a3db7100d [05/15] arm64: spectre: provide prototypes for internal functions https://git.kernel.org/arm64/c/010089e9d3fe [06/15] arm64: kvm: add prototypes for functions called in asm https://git.kernel.org/arm64/c/05d557a5cf59 [07/15] arm64: cpuidle: fix #ifdef for acpi functions https://git.kernel.org/arm64/c/68a879b55346 [08/15] arm64: efi: add efi_handle_corrupted_x18 prototype https://git.kernel.org/arm64/c/fbc0cd6f6044 [09/15] arm64: hide unused is_valid_bugaddr() https://git.kernel.org/arm64/c/b925b4314c91 [10/15] arm64: module-plts: inline linux/moduleloader.h https://git.kernel.org/arm64/c/60a0aab7463e [11/15] arm64: flush: include linux/libnvdimm.h https://git.kernel.org/arm64/c/1a1183938946 [12/15] arm64: kaslr: add kaslr_early_init() declaration https://git.kernel.org/arm64/c/a7f5cb606e99 [13/15] arm64: signal: include asm/exception.h https://git.kernel.org/arm64/c/8ada7aab02ee [14/15] arm64: move early_brk64 prototype to header https://git.kernel.org/arm64/c/e13d32e99264 [15/15] arm64: add alt_cb_patch_nops prototype https://git.kernel.org/arm64/c/c152aed4dcc2
From: Arnd Bergmann <arnd@arndb.de> This addresses all arm64 specific protype warnings. As with the arm32 patches, the majority of them should be straightforward, either adding an #include statement to get the right header, or ensuring that an unused global function is left out of the build when the prototype is hidden. The ones that are a bit awkward are those that just add a prototype to shut up the warning, but the prototypes are never used for calling the function because the only caller is in assembler code. I tried to come up with other ways to shut up the compiler, and ideally this would be triggered by the 'asmlinkage' keyword as Ard suggested in the past, but I could not come up with a way to do this. All of the warnings have to be addressed in some form before the warning can be enabled by default. Arnd Link: https://people.kernel.org/arnd/missing-prototype-warnings-in-the-kernel Arnd Bergmann (15): arm64: xor-neon: mark xor_arm64_neon_*() static arm64: add scs_patch_vmlinux prototype arm64: avoid prototype warnings for syscalls arm64: move cpu_suspend_set_dbg_restorer() prototype to header arm64: spectre: provide prototypes for internal functions arm64: kvm: add prototypes for functions called in asm arm64: cpuidle: fix #ifdef for acpi functions arm64: efi: add efi_handle_corrupted_x18 prototype arm64: hide unused is_valid_bugaddr() arm64: module-plts: inline linux/moduleloader.h arm64: flush: include linux/libnvdimm.h arm64: kaslr: add kaslr_early_init() declaration arm64: signal: include asm/exception.h arm64: move early_brk64 prototype to header arm64: add alt_cb_patch_nops prototype arch/arm64/include/asm/alternative.h | 3 +++ arch/arm64/include/asm/archrandom.h | 2 ++ arch/arm64/include/asm/compat.h | 2 ++ arch/arm64/include/asm/efi.h | 2 ++ arch/arm64/include/asm/hw_breakpoint.h | 8 ++++++++ arch/arm64/include/asm/kvm_asm.h | 18 ++++++++++++++++++ arch/arm64/include/asm/scs.h | 1 + arch/arm64/include/asm/spectre.h | 16 ++++++++++++++++ arch/arm64/include/asm/syscall_wrapper.h | 4 ++++ arch/arm64/include/asm/traps.h | 2 ++ arch/arm64/kernel/cpuidle.c | 2 +- arch/arm64/kernel/hw_breakpoint.c | 8 -------- arch/arm64/kernel/module-plts.c | 1 + arch/arm64/kernel/signal.c | 1 + arch/arm64/kernel/traps.c | 3 ++- arch/arm64/lib/xor-neon.c | 8 ++++---- arch/arm64/mm/fault.c | 3 --- arch/arm64/mm/flush.c | 1 + 18 files changed, 68 insertions(+), 17 deletions(-)