[PATCH v3 08/57] scsi: aacraid: Prepare for enabling lock context analysis
Bart Van Assche <[email protected]> Thu, 30 Jul 2026 15:44:51 -0700
| Newsgroups | org.kernel.vger.linux-scsi |
|---|---|
| Message-ID | <e6fae05fcb62f58bbab103354b0e0fe5138bb30d.1785451174.git.bvanassche@acm.org> |
Document the aac_send_reset_adapter() locking requirements with __must_hold(). Annotate functions that perform conditional locking with __no_context_analysis. Signed-off-by: Bart Van Assche <[email protected]> --- drivers/scsi/aacraid/Makefile | 2 ++ drivers/scsi/aacraid/commctrl.c | 1 + drivers/scsi/aacraid/commsup.c | 3 +++ 3 files changed, 6 insertions(+) diff --git a/drivers/scsi/aacraid/Makefile b/drivers/scsi/aacraid/Makefile index 8f0eec682bb6..415e0ed5ad24 100644 --- a/drivers/scsi/aacraid/Makefile +++ b/drivers/scsi/aacraid/Makefile @@ -1,6 +1,8 @@ # SPDX-License-Identifier: GPL-2.0-only # Adaptec aacraid +CONTEXT_ANALYSIS := y + obj-$(CONFIG_SCSI_AACRAID) := aacraid.o aacraid-objs := linit.o aachba.o commctrl.o comminit.o commsup.o \ diff --git a/drivers/scsi/aacraid/commctrl.c b/drivers/scsi/aacraid/commctrl.c index bd82aeb679ae..ac73c7b6d7be 100644 --- a/drivers/scsi/aacraid/commctrl.c +++ b/drivers/scsi/aacraid/commctrl.c @@ -1043,6 +1043,7 @@ struct aac_reset_iop { }; static int aac_send_reset_adapter(struct aac_dev *dev, void __user *arg) + __must_hold(&dev->ioctl_mutex) { struct aac_reset_iop reset; int retval; diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c index c4485629f792..fb4d78233c6d 100644 --- a/drivers/scsi/aacraid/commsup.c +++ b/drivers/scsi/aacraid/commsup.c @@ -475,6 +475,7 @@ int aac_queue_get(struct aac_dev * dev, u32 * index, u32 qid, struct hw_fib * hw int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, int priority, int wait, int reply, fib_callback callback, void *callback_data) + __context_unsafe(conditional locking) { struct aac_dev * dev = fibptr->dev; struct hw_fib * hw_fib = fibptr->hw_fib_va; @@ -698,6 +699,7 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, int aac_hba_send(u8 command, struct fib *fibptr, fib_callback callback, void *callback_data) + __context_unsafe(conditional locking) { struct aac_dev *dev = fibptr->dev; int wait; @@ -1466,6 +1468,7 @@ static void aac_schedule_bus_scan(struct aac_dev *aac) } static int _aac_reset_adapter(struct aac_dev *aac, int forced, u8 reset_type) + __context_unsafe(conditional locking) { int index, quirks; int retval;