[PATCH 00/15] Support Clang context analysis for NVMe host drivers
Nilay Shroff
nilay at linux.ibm.com
Wed Jun 10 07:27:20 PDT 2026
This series adds support for Clang's context analysis to the NVMe host
drivers.
Recent work[1] by Marco Elver introduced infrastructure for lock context
analysis in the kernel, allowing Clang to verify locking requirements at
compile time through various annotations.
This series build on top of that infrastructure by annotating the NVMe
host drivers with the appropriate locking requirements and by addressing
warnings reported by the analyzer.
The series was built and tested with LLVM/Clang 23.x and enables the
NVMe host drivers to build cleanly with CONFIG_CONTEXT_ANALYSIS enabled.
Support for the NVMe target drivers will be addressed separately.
As usual, comments/feedback/suggestions are most welcome!
Thanks!
[1] https://lore.kernel.org/lkml/20251219154418.3592607-1-elver@google.com/
Nilay Shroff (15):
nvme: update nvme_passthru_end() signature
nvme: add Clang context annotations for nvme_passthru_{start|stop}
nvme: add Clang context annotations for nvme_ns_head::srcu
nvme: add Clang context annotations for nvme_ns_head::requeue_list
nvme: add Clang context annotations for nvme_ns_head::current_path
nvme: add Clang context annotations for nvme_dev::shutdown_lock
nvme: add Clang context annotations for nvme_subsystem::lock
nvme: add Clang context annotations for nvme_ctrl::ana_lock
nvme: add Clang context annotations for nvme_subsystems_lock
nvme: add Clang context annotations in fabric.c
nvme: add Clang context annotations for nvme_queue::sq_lock
nvme: add Clang context annotations for nvme_queue::cq_poll_lock
nvme: add Clang context annotations in rdma.c
nvme: add Clang context annotations in tcp.c
nvme: enable Clang context analysis support for nvme host driver
drivers/nvme/host/Makefile | 1 +
drivers/nvme/host/core.c | 23 ++++++++++++++++-----
drivers/nvme/host/fabrics.c | 4 ++--
drivers/nvme/host/ioctl.c | 2 +-
drivers/nvme/host/multipath.c | 26 +++++++++++++++++++++---
drivers/nvme/host/nvme.h | 38 ++++++++++++++++++++++-------------
drivers/nvme/host/pci.c | 35 ++++++++++++++++++++++++--------
drivers/nvme/host/rdma.c | 27 +++++++++++++++----------
drivers/nvme/host/tcp.c | 19 +++++++++++-------
9 files changed, 124 insertions(+), 51 deletions(-)
--
2.53.0
More information about the Linux-nvme
mailing list