From: Bart Van Assche <bvanassche@acm.org>
To: "Martin K . Petersen" <martin.petersen@oracle.com>
Cc: John Garry <john.g.garry@oracle.com>,
Marco Elver <elver@google.com>,
linux-scsi@vger.kernel.org, Bart Van Assche <bvanassche@acm.org>
Subject: [PATCH v7 0/6] Enable context analysis in the SCSI core and UFS driver
Date: Fri, 7 Aug 2026 15:49:45 -0700 [thread overview]
Message-ID: <cover.1786142946.git.bvanassche@acm.org> (raw)
Hi Martin,
This patch series enables context analysis for the SCSI core and the UFS
driver. The advantages are as follows:
- The compiler (only Clang) verifies whether the lock and unlock calls match
what has been declared via __must_hold(), __acquires() or __releases().
This is useful for catching locking bugs in error paths.
- Support for __guarded_by() is enabled. If a member variable is annotated
with __guarded_by(lock), the compiler will issue a warning if that member
variable is accessed without holding 'lock'.
Additionally, a patch is included that suppresses KCSAN complaints about SCSI
host state changes.
More information about lock context analysis is available in the cover letter of
[PATCH v5 00/36] Compiler-Based Context- and Locking-Analysis
(https://lore.kernel.org/lkml/20251219154418.3592607-1-elver@google.com/).
Please consider this patch series for the next merge window.
Thanks,
Bart.
Changes compared to v6:
- Left out duplicate patch 2/6.
Changes compared to v5:
- In patch 5/6, add __must_hold() to both the definition and the declaration of
scsi_host_set_state(). Use locking in scsi_get_host_state() instead of
READ_ONCE(). Add #include <linux/cleanup.h>. Rename host_state into state.
- In patch 6/6, refer to context analysis instead of compiler warnings.
- Include changes for the leapraid driver.
- Added several Reviewed-by tags.
Changes compared to v4:
- Added Reviewed-by tags to the UFS patches.
- Made the title and the description of patch 3/6 more detailed.
Changes compared to v3:
- Left out all changes except those for the SCSI core and the UFS driver.
Changes compared to v2:
- Added patch "scsi: core: Pass the SCSI host pointer directly".
- Corrected several annotations that had missing or extra ampersands (&).
- Reduced the number of __assume_ctx_lock() statements.
Changes compared to v1:
- Split patch "Enable lock context analysis" into one patch per driver.
Bart Van Assche (6):
ufs: core: Set task state before io_schedule_timeout()
ufs: core: Enable context analysis
scsi: core: Pass the SCSI host pointer directly to scanning functions
scsi: core: Add lock context annotations
scsi: core: Protect host state changes with the host lock
scsi: core: Enable context analysis
drivers/scsi/Makefile | 22 ++++++++++
drivers/scsi/device_handler/Makefile | 3 ++
drivers/scsi/hosts.c | 19 +++++----
drivers/scsi/leapraid/leapraid_func.c | 2 +-
drivers/scsi/leapraid/leapraid_os.c | 2 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 2 +-
drivers/scsi/mpi3mr/mpi3mr_os.c | 2 +-
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 2 +-
drivers/scsi/qla4xxx/ql4_os.c | 6 +--
drivers/scsi/scsi_lib.c | 3 +-
drivers/scsi/scsi_scan.c | 52 ++++++++++++++---------
drivers/scsi/scsi_sysfs.c | 7 +--
drivers/ufs/core/Makefile | 2 +
drivers/ufs/core/ufs-debugfs.c | 8 +++-
drivers/ufs/core/ufshcd.c | 15 +++++++
drivers/ufs/host/Makefile | 2 +
include/scsi/scsi_host.h | 24 ++++++++---
17 files changed, 121 insertions(+), 52 deletions(-)
next reply other threads:[~2026-08-07 22:50 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-07 22:49 Bart Van Assche [this message]
2026-08-07 22:49 ` [PATCH v7 1/6] ufs: core: Set task state before io_schedule_timeout() Bart Van Assche
2026-08-07 22:49 ` [PATCH v7 2/6] ufs: core: Enable context analysis Bart Van Assche
2026-08-07 22:49 ` [PATCH v7 3/6] scsi: core: Pass the SCSI host pointer directly to scanning functions Bart Van Assche
2026-08-07 22:49 ` [PATCH v7 4/6] scsi: core: Add lock context annotations Bart Van Assche
2026-08-07 22:49 ` [PATCH v7 5/6] scsi: core: Protect host state changes with the host lock Bart Van Assche
2026-08-07 22:49 ` [PATCH v7 6/6] scsi: core: Enable context analysis Bart Van Assche
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1786142946.git.bvanassche@acm.org \
--to=bvanassche@acm.org \
--cc=elver@google.com \
--cc=john.g.garry@oracle.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.