diff options
| author | Martin K. Petersen (Oracle) <mkp@kernel.org> | 2026-08-07 13:45:47 -0400 |
|---|---|---|
| committer | Martin K. Petersen (Oracle) <mkp@kernel.org> | 2026-08-07 13:45:47 -0400 |
| commit | 3ad1010413403ff1a85a7c3527b0cfe815bdada7 (patch) | |
| tree | 1eebc4aaf6435ce6838fce93e09256eaeb398dbd /drivers/s390 | |
| parent | 9639c6324524ea3f934908bd51f02430000954ab (diff) | |
| parent | 32d9a4e296524e51879af0477c5898b933eb51df (diff) | |
| download | linux-3ad1010413403ff1a85a7c3527b0cfe815bdada7.tar.gz linux-3ad1010413403ff1a85a7c3527b0cfe815bdada7.zip | |
Merge patch series "scsi: zfcp: Enable CONTEXT_ANALYSIS"
Heiko Carstens <hca@linux.ibm.com> says:
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.
Link: https://patch.msgid.link/20260806134759.2122369-1-hca@linux.ibm.com
Signed-off-by: Martin K. Petersen (Oracle) <mkp@kernel.org>
Diffstat (limited to 'drivers/s390')
| -rw-r--r-- | drivers/s390/scsi/Makefile | 2 | ||||
| -rw-r--r-- | drivers/s390/scsi/zfcp_ext.h | 3 | ||||
| -rw-r--r-- | drivers/s390/scsi/zfcp_qdio.c | 1 |
3 files changed, 5 insertions, 1 deletions
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 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; |
