[PATCH v3 38/57] scsi: lpfc: Prepare for enabling lock context analysis
Bart Van Assche <[email protected]> Thu, 30 Jul 2026 15:45:21 -0700
| Newsgroups | org.kernel.vger.linux-scsi |
|---|---|
| Message-ID | <d7f69e9511ca5b79b64f48b1e54fb417db4d294f.1785451174.git.bvanassche@acm.org> |
Annotate the functions that perform conditional locking with __context_unsafe(). Signed-off-by: Bart Van Assche <[email protected]> --- drivers/scsi/lpfc/lpfc_els.c | 2 ++ drivers/scsi/lpfc/lpfc_nportdisc.c | 1 + drivers/scsi/lpfc/lpfc_scsi.c | 1 + drivers/scsi/lpfc/lpfc_sli.c | 2 ++ 4 files changed, 6 insertions(+) diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index 52fc5058976d..45e7f147b163 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c @@ -9597,6 +9597,7 @@ lpfc_els_timeout(struct timer_list *t) **/ void lpfc_els_timeout_handler(struct lpfc_vport *vport) + __context_unsafe(conditional locking) { struct lpfc_hba *phba = vport->phba; struct lpfc_sli_ring *pring; @@ -9719,6 +9720,7 @@ lpfc_els_timeout_handler(struct lpfc_vport *vport) **/ void lpfc_els_flush_cmd(struct lpfc_vport *vport) + __context_unsafe(conditional locking) { LIST_HEAD(abort_list); LIST_HEAD(cancel_list); diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c index 9c449055a55e..79e5e876c879 100644 --- a/drivers/scsi/lpfc/lpfc_nportdisc.c +++ b/drivers/scsi/lpfc/lpfc_nportdisc.c @@ -220,6 +220,7 @@ lpfc_check_elscmpl_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, */ void lpfc_els_abort(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp) + __context_unsafe(conditional locking) { LIST_HEAD(abort_list); LIST_HEAD(drv_cmpl_list); diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index f2cab134af7f..6c3fd3c33c53 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c @@ -5520,6 +5520,7 @@ void lpfc_vmid_vport_cleanup(struct lpfc_vport *vport) **/ static int lpfc_abort_handler(struct scsi_cmnd *cmnd) + __context_unsafe(conditional locking) { struct Scsi_Host *shost = cmnd->device->host; struct fc_rport *rport = starget_to_rport(scsi_target(cmnd->device)); diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 62a30a92b792..c76d62e8907c 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -3721,6 +3721,7 @@ lpfc_sli_iocbq_lookup_by_tag(struct lpfc_hba *phba, static int lpfc_sli_process_sol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, struct lpfc_iocbq *saveq) + __context_unsafe(conditional locking) { struct lpfc_iocbq *cmdiocbp; unsigned long iflag; @@ -12871,6 +12872,7 @@ lpfc_sli_abort_iocb(struct lpfc_vport *vport, u16 tgt_id, u64 lun_id, int lpfc_sli_abort_taskmgmt(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, uint16_t tgt_id, uint64_t lun_id, lpfc_ctx_cmd cmd) + __context_unsafe(conditional locking) { struct lpfc_hba *phba = vport->phba; struct lpfc_io_buf *lpfc_cmd;