[PATCH v3 30/57] scsi: ibmvscsi_tgt: Enable lock context analysis
Bart Van Assche <[email protected]> Thu, 30 Jul 2026 15:45:13 -0700
| Newsgroups | org.kernel.vger.linux-scsi |
|---|---|
| Message-ID | <d617580106d7de41548cbbae6d98ce6985b5461b.1785451174.git.bvanassche@acm.org> |
Document locking requirements with __must_hold(). Signed-off-by: Bart Van Assche <[email protected]> --- drivers/scsi/ibmvscsi_tgt/Makefile | 3 +++ drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/drivers/scsi/ibmvscsi_tgt/Makefile b/drivers/scsi/ibmvscsi_tgt/Makefile index cc7a8256dcf8..7ae12ee9a347 100644 --- a/drivers/scsi/ibmvscsi_tgt/Makefile +++ b/drivers/scsi/ibmvscsi_tgt/Makefile @@ -1,4 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only + +CONTEXT_ANALYSIS := y + obj-$(CONFIG_SCSI_IBMVSCSIS) += ibmvscsis.o ibmvscsis-y := libsrp.o ibmvscsi_tgt.o diff --git a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c index 61f682800765..8e532a195bf9 100644 --- a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +++ b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c @@ -251,6 +251,7 @@ static void ibmvscsis_delete_client_info(struct scsi_info *vscsi, * Process level, interrupt lock is held */ static long ibmvscsis_free_command_q(struct scsi_info *vscsi) + __must_hold(&vscsi->intr_lock) { int bytes; u32 flags_under_lock; @@ -874,6 +875,7 @@ static long ibmvscsis_establish_new_q(struct scsi_info *vscsi) * Process environment, called with interrupt lock held */ static void ibmvscsis_reset_queue(struct scsi_info *vscsi) + __must_hold(&vscsi->intr_lock) { int bytes; long rc = ADAPT_SUCCESS; @@ -974,6 +976,7 @@ static void ibmvscsis_free_cmd_resources(struct scsi_info *vscsi, * Process or interrupt environment called with interrupt lock held */ static long ibmvscsis_ready_for_suspend(struct scsi_info *vscsi, bool idle) + __must_hold(&vscsi->intr_lock) { long rc = 0; struct viosrp_crq *crq; @@ -1030,6 +1033,7 @@ static long ibmvscsis_ready_for_suspend(struct scsi_info *vscsi, bool idle) */ static long ibmvscsis_trans_event(struct scsi_info *vscsi, struct viosrp_crq *crq) + __must_hold(&vscsi->intr_lock) { long rc = ADAPT_SUCCESS; @@ -1166,6 +1170,7 @@ static long ibmvscsis_trans_event(struct scsi_info *vscsi, * intr_lock must be held */ static void ibmvscsis_poll_cmd_q(struct scsi_info *vscsi) + __must_hold(&vscsi->intr_lock) { struct viosrp_crq *crq; long rc; @@ -1310,6 +1315,7 @@ static struct ibmvscsis_cmd *ibmvscsis_get_free_cmd(struct scsi_info *vscsi) * Process environment called with interrupt lock held */ static void ibmvscsis_adapter_idle(struct scsi_info *vscsi) + __must_hold(&vscsi->intr_lock) { int free_qs = false; long rc = 0; @@ -2520,6 +2526,7 @@ static long ibmvscsis_ping_response(struct scsi_info *vscsi) */ static long ibmvscsis_parse_command(struct scsi_info *vscsi, struct viosrp_crq *crq) + __must_hold(&vscsi->intr_lock) { long rc = ADAPT_SUCCESS;