* [PATCH 0/2] scsi: zfcp: Enable CONTEXT_ANALYSIS
@ 2026-08-06 13:47 Heiko Carstens
2026-08-06 13:47 ` [PATCH 1/2] scsi: zfcp: Add __must_hold() attribute to zfcp_qdio_sbal_get() Heiko Carstens
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Heiko Carstens @ 2026-08-06 13:47 UTC (permalink / raw)
To: James E . J . Bottomley, Martin K . Petersen, Nihar Panda
Cc: linux-s390, linux-scsi
Enable CONTEXT_ANALYSYS for the zfcp driver.
Static code checking for acquiring and releasing locks used to be done
with sparse. That was removed with [1] and replaced with a clang based
approach [2]. The new approach requires that each subsystem needs to be
explicitly enabled for checking.
Do that for drivers/s390/scsi. Add a __must_hold() attribute to
zfcp_qdio_sbal_get() to address the only valid warning. Then enable
CONTEXT_ANALYSIS, similar to other patches for drivers/s390 I'm currently
working on.
Thanks,
Heiko
[1] 5b63d0ae94cc ("compiler-context-analysis: Remove Sparse support")
[2] 3269701cb256 ("compiler-context-analysis: Add infrastructure for Context Analysis with Clang")
Heiko Carstens (2):
scsi: zfcp: Add __must_hold() attribute to zfcp_qdio_sbal_get()
scsi: zfcp: Enable CONTEXT_ANALYSIS
drivers/s390/scsi/Makefile | 2 ++
drivers/s390/scsi/zfcp_ext.h | 3 ++-
drivers/s390/scsi/zfcp_qdio.c | 1 +
3 files changed, 5 insertions(+), 1 deletion(-)
--
2.53.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] scsi: zfcp: Add __must_hold() attribute to zfcp_qdio_sbal_get()
2026-08-06 13:47 [PATCH 0/2] scsi: zfcp: Enable CONTEXT_ANALYSIS Heiko Carstens
@ 2026-08-06 13:47 ` Heiko Carstens
2026-08-06 13:59 ` sashiko-bot
2026-08-06 13:47 ` [PATCH 2/2] scsi: zfcp: Enable CONTEXT_ANALYSIS Heiko Carstens
` (2 subsequent siblings)
3 siblings, 1 reply; 7+ messages in thread
From: Heiko Carstens @ 2026-08-06 13:47 UTC (permalink / raw)
To: James E . J . Bottomley, Martin K . Petersen, Nihar Panda
Cc: linux-s390, linux-scsi
Add __must_hold() attribute to zfcp_qdio_sbal_get() in order to let
clang's context analysis know that qdio->req_q_wq must be held on
function entry. This is also documented above the function. Without this
annotation this leads to a valid warning when context analysis is
enabled:
drivers/s390/scsi/zfcp_qdio.c:287:8: warning:
expecting spinlock '->req_q_lock' to be held at start of each loop [-Wthread-safety-analysis]
287 | ret = wait_event_interruptible_lock_irq_timeout(qdio->req_q_wq,
| ^
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
---
drivers/s390/scsi/zfcp_ext.h | 3 ++-
drivers/s390/scsi/zfcp_qdio.c | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/s390/scsi/zfcp_ext.h b/drivers/s390/scsi/zfcp_ext.h
index 40bd597fb4cd..0eb9bc9d03e4 100644
--- a/drivers/s390/scsi/zfcp_ext.h
+++ b/drivers/s390/scsi/zfcp_ext.h
@@ -154,7 +154,8 @@ extern ssize_t zfcp_fsf_scnprint_fc_security(char *buf, size_t size,
/* zfcp_qdio.c */
extern int zfcp_qdio_setup(struct zfcp_adapter *);
extern void zfcp_qdio_destroy(struct zfcp_qdio *);
-extern int zfcp_qdio_sbal_get(struct zfcp_qdio *);
+extern int zfcp_qdio_sbal_get(struct zfcp_qdio *qdio)
+ __must_hold(qdio->req_q_lock);
extern int zfcp_qdio_send(struct zfcp_qdio *, struct zfcp_qdio_req *);
extern int zfcp_qdio_sbals_from_sg(struct zfcp_qdio *, struct zfcp_qdio_req *,
struct scatterlist *);
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c
index ce1af72d9b61..bac8385e069f 100644
--- a/drivers/s390/scsi/zfcp_qdio.c
+++ b/drivers/s390/scsi/zfcp_qdio.c
@@ -281,6 +281,7 @@ static int zfcp_qdio_sbal_check(struct zfcp_qdio *qdio)
* Returns: 0 on success, -EIO if there is no free sbal after waiting.
*/
int zfcp_qdio_sbal_get(struct zfcp_qdio *qdio)
+ __must_hold(qdio->req_q_lock)
{
long ret;
--
2.53.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] scsi: zfcp: Enable CONTEXT_ANALYSIS
2026-08-06 13:47 [PATCH 0/2] scsi: zfcp: Enable CONTEXT_ANALYSIS Heiko Carstens
2026-08-06 13:47 ` [PATCH 1/2] scsi: zfcp: Add __must_hold() attribute to zfcp_qdio_sbal_get() Heiko Carstens
@ 2026-08-06 13:47 ` Heiko Carstens
2026-08-06 13:50 ` sashiko-bot
2026-08-06 16:36 ` [PATCH 0/2] " Bart Van Assche
2026-08-07 17:47 ` Martin K. Petersen (Oracle)
3 siblings, 1 reply; 7+ messages in thread
From: Heiko Carstens @ 2026-08-06 13:47 UTC (permalink / raw)
To: James E . J . Bottomley, Martin K . Petersen, Nihar Panda
Cc: linux-s390, linux-scsi
The zfcp driver passes clang's compile time context analysis.
Therefore enable CONTEXT_ANALYSIS.
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
---
drivers/s390/scsi/Makefile | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/s390/scsi/Makefile b/drivers/s390/scsi/Makefile
index 352056eb0dd1..01b41f7c6860 100644
--- a/drivers/s390/scsi/Makefile
+++ b/drivers/s390/scsi/Makefile
@@ -3,6 +3,8 @@
# Makefile for the S/390 specific device drivers
#
+CONTEXT_ANALYSIS := y
+
zfcp-objs := zfcp_aux.o zfcp_ccw.o zfcp_dbf.o zfcp_erp.o \
zfcp_fc.o zfcp_fsf.o zfcp_qdio.o zfcp_scsi.o zfcp_sysfs.o \
zfcp_unit.o zfcp_diag.o
--
2.53.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] scsi: zfcp: Enable CONTEXT_ANALYSIS
2026-08-06 13:47 ` [PATCH 2/2] scsi: zfcp: Enable CONTEXT_ANALYSIS Heiko Carstens
@ 2026-08-06 13:50 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-08-06 13:50 UTC (permalink / raw)
To: Heiko Carstens
Cc: Alexander Gordeev, linux-scsi, Heiko Carstens, Vasily Gorbik,
linux-s390
> The zfcp driver passes clang's compile time context analysis.
> Therefore enable CONTEXT_ANALYSIS.
>
> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260806134759.2122369-1-hca@linux.ibm.com?part=2
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] scsi: zfcp: Add __must_hold() attribute to zfcp_qdio_sbal_get()
2026-08-06 13:47 ` [PATCH 1/2] scsi: zfcp: Add __must_hold() attribute to zfcp_qdio_sbal_get() Heiko Carstens
@ 2026-08-06 13:59 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-08-06 13:59 UTC (permalink / raw)
To: Heiko Carstens
Cc: Alexander Gordeev, linux-s390, linux-scsi, Vasily Gorbik,
Heiko Carstens
> Add __must_hold() attribute to zfcp_qdio_sbal_get() in order to let
> clang's context analysis know that qdio->req_q_wq must be held on
> function entry. This is also documented above the function. Without this
> annotation this leads to a valid warning when context analysis is
> enabled:
>
> drivers/s390/scsi/zfcp_qdio.c:287:8: warning:
> expecting spinlock '->req_q_lock' to be held at start of each loop [-Wthread-safety-analysis]
> 287 | ret = wait_event_interruptible_lock_irq_timeout(qdio->req_q_wq,
> | ^
>
> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260806134759.2122369-1-hca@linux.ibm.com?part=1
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/2] scsi: zfcp: Enable CONTEXT_ANALYSIS
2026-08-06 13:47 [PATCH 0/2] scsi: zfcp: Enable CONTEXT_ANALYSIS Heiko Carstens
2026-08-06 13:47 ` [PATCH 1/2] scsi: zfcp: Add __must_hold() attribute to zfcp_qdio_sbal_get() Heiko Carstens
2026-08-06 13:47 ` [PATCH 2/2] scsi: zfcp: Enable CONTEXT_ANALYSIS Heiko Carstens
@ 2026-08-06 16:36 ` Bart Van Assche
2026-08-07 17:47 ` Martin K. Petersen (Oracle)
3 siblings, 0 replies; 7+ messages in thread
From: Bart Van Assche @ 2026-08-06 16:36 UTC (permalink / raw)
To: Heiko Carstens, James E . J . Bottomley, Martin K . Petersen,
Nihar Panda
Cc: linux-s390, linux-scsi
On 8/6/26 6:47 AM, Heiko Carstens wrote:
> Enable CONTEXT_ANALYSYS for the zfcp driver.
>
> Static code checking for acquiring and releasing locks used to be done
> with sparse. That was removed with [1] and replaced with a clang based
> approach [2]. The new approach requires that each subsystem needs to be
> explicitly enabled for checking.
>
> Do that for drivers/s390/scsi. Add a __must_hold() attribute to
> zfcp_qdio_sbal_get() to address the only valid warning. Then enable
> CONTEXT_ANALYSIS, similar to other patches for drivers/s390 I'm currently
> working on.
These two patches could have been combined into a single patch. Anyway,
both patches look good to me.
Thanks,
Bart.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/2] scsi: zfcp: Enable CONTEXT_ANALYSIS
2026-08-06 13:47 [PATCH 0/2] scsi: zfcp: Enable CONTEXT_ANALYSIS Heiko Carstens
` (2 preceding siblings ...)
2026-08-06 16:36 ` [PATCH 0/2] " Bart Van Assche
@ 2026-08-07 17:47 ` Martin K. Petersen (Oracle)
3 siblings, 0 replies; 7+ messages in thread
From: Martin K. Petersen (Oracle) @ 2026-08-07 17:47 UTC (permalink / raw)
To: Heiko Carstens
Cc: James E . J . Bottomley, Martin K . Petersen, Nihar Panda,
linux-s390, linux-scsi
Heiko,
> Enable CONTEXT_ANALYSYS for the zfcp driver.
Applied to 7.3/scsi-staging, thanks!
--
Martin K. Petersen
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-08-07 17:47 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-06 13:47 [PATCH 0/2] scsi: zfcp: Enable CONTEXT_ANALYSIS Heiko Carstens
2026-08-06 13:47 ` [PATCH 1/2] scsi: zfcp: Add __must_hold() attribute to zfcp_qdio_sbal_get() Heiko Carstens
2026-08-06 13:59 ` sashiko-bot
2026-08-06 13:47 ` [PATCH 2/2] scsi: zfcp: Enable CONTEXT_ANALYSIS Heiko Carstens
2026-08-06 13:50 ` sashiko-bot
2026-08-06 16:36 ` [PATCH 0/2] " Bart Van Assche
2026-08-07 17:47 ` Martin K. Petersen (Oracle)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox