[v4,0/8] riscv: resolve most warnings from sparse
mbox series

Message ID 20191024225838.27743-1-paul.walmsley@sifive.com
Headers show
Series
  • riscv: resolve most warnings from sparse
Related show

Message

Paul Walmsley Oct. 24, 2019, 10:58 p.m. UTC
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 fourth version drops some patches that were in the previous
versions, and restructures some of what was left.  Much of this was
based on feedback from Christoph Hellwig <hch@lst.de>, Luc Van
Oostenryck <luc.vanoostenryck@gmail.com>, and Greentime Hu
<greentime.hu@sifive.com>.

Applies on the current riscv fixes branch, which itself is based on
v5.4-rc5.  Tested on RV32 QEMU, RV64 QEMU, and the SiFive HiFive
Unleashed board.


- Paul


Paul Walmsley (6):
  riscv: add prototypes for assembly language functions from head.S
  riscv: init: merge split string literals in preprocessor directive
  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
6662533	2136168	 312608	9111309	 8b070d	vmlinux.rv64.orig
6662537	2136160	 312608	9111305	 8b0709	vmlinux.rv64.patched
6443041	1792976	 255184	8491201	 8190c1	vmlinux.rv32.orig
6443021	1792968	 255184	8491173	 8190a5	vmlinux.rv32.patched

 arch/riscv/include/asm/irq.h        |  3 +++
 arch/riscv/include/asm/switch_to.h  |  1 +
 arch/riscv/kernel/cpufeature.c      |  1 +
 arch/riscv/kernel/head.h            | 21 +++++++++++++++++++++
 arch/riscv/kernel/irq.c             |  2 +-
 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          |  8 ++++----
 arch/riscv/kernel/smp.c             |  2 ++
 arch/riscv/kernel/smpboot.c         |  5 ++++-
 arch/riscv/kernel/syscall_table.c   |  1 +
 arch/riscv/kernel/time.c            |  1 +
 arch/riscv/kernel/traps.c           |  5 +++--
 arch/riscv/kernel/vdso.c            |  3 ++-
 arch/riscv/mm/context.c             |  1 +
 arch/riscv/mm/fault.c               |  2 ++
 arch/riscv/mm/init.c                |  5 +++--
 arch/riscv/mm/sifive_l2_cache.c     |  2 +-
 21 files changed, 59 insertions(+), 14 deletions(-)
 create mode 100644 arch/riscv/kernel/head.h