[PATCH v3 0/8] riscv: resolve most warnings from sparse

From: Paul Walmsley
Date: Fri Oct 18 2019 - 04:08:52 EST


Resolve most warnings from the 'sparse' static analysis tool for the
arch/riscv codebase. This makes life easier for us as maintainers,
and makes it easier for developers to use static analysis tools on
their own changes.

This third version drops the patch that adds one of the
__riscv_cmodel* preprocessor definitions, and uses __visible for C
functions called only by assembly code - both based on some guidance
from Luc Van Oostenryck.

This patch series incorporates some changes based on feedback from
Christoph Hellwig <hch@xxxxxx> and Luc Van Oostenryck
<luc.vanoostenryck@xxxxxxxxx>.

Applies on the current riscv fixes branch that is based on v5.4-rc3.

- Paul


Paul Walmsley (8):
riscv: add prototypes for assembly language functions from entry.S
riscv: add prototypes for assembly language functions from head.S
riscv: init: merge split string literals in preprocessor directive
riscv: add missing prototypes
riscv: mark some code and data as file-static
riscv: add missing header file includes
riscv: fp: add missing __user pointer annotations
riscv: for C functions called only from assembly, mark with __visible

Kernel object size difference:
text data bss dec hex filename
6664246 2136664 312608 9113518 8b0fae vmlinux.rv64.orig
6664178 2136632 312608 9113418 8b0f4a vmlinux.rv64.patched
6444536 1797560 255184 8497280 81a880 vmlinux.rv32.orig
6444492 1797536 255184 8497212 81a83c vmlinux.rv32.patched

arch/riscv/include/asm/irq.h | 6 ++++++
arch/riscv/include/asm/pgtable.h | 2 ++
arch/riscv/include/asm/processor.h | 4 ++++
arch/riscv/include/asm/ptrace.h | 2 ++
arch/riscv/include/asm/smp.h | 2 ++
arch/riscv/include/asm/switch_to.h | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
arch/riscv/kernel/entry.h | 29 +++++++++++++++++++++++++++++
arch/riscv/kernel/head.h | 21 +++++++++++++++++++++
arch/riscv/kernel/module-sections.c | 1 +
arch/riscv/kernel/process.c | 2 ++
arch/riscv/kernel/ptrace.c | 4 ++--
arch/riscv/kernel/reset.c | 1 +
arch/riscv/kernel/setup.c | 2 ++
arch/riscv/kernel/signal.c | 6 ++++--
arch/riscv/kernel/smp.c | 2 ++
arch/riscv/kernel/smpboot.c | 3 +++
arch/riscv/kernel/stacktrace.c | 6 ++++--
arch/riscv/kernel/syscall_table.c | 1 +
arch/riscv/kernel/time.c | 1 +
arch/riscv/kernel/traps.c | 2 ++
arch/riscv/kernel/vdso.c | 3 ++-
arch/riscv/mm/context.c | 1 +
arch/riscv/mm/fault.c | 2 ++
arch/riscv/mm/init.c | 17 ++++++++++-------
arch/riscv/mm/sifive_l2_cache.c | 2 +-
26 files changed, 109 insertions(+), 15 deletions(-)
create mode 100644 arch/riscv/kernel/entry.h
create mode 100644 arch/riscv/kernel/head.h

--
2.23.0