Searched hist:"7 afdb863" (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/drivers/scsi/aacraid/ |
H A D | aachba.c | 7afdb863 Thu Oct 07 15:28:11 CDT 2021 Bart Van Assche <bvanassche@acm.org> scsi: aacraid: Call scsi_done() directly
The aacraid driver invokes scmd->scsi_done(scmd) for two types of SCSI commands:
- SCSI commands initialized by the SCSI mid-layer.
- SCSI commands initialized by aac_probe_container().
The processing sequence for SCSI commands allocated by aac_probe_container() is as follows:
aac_probe_container() -> _aac_probe_container(scmd, aac_probe_container_callback1) -> scmd->SCp.ptr = aac_probe_container_callback1 -> aac_fib_send(..., _aac_probe_container1, scmd) -> fibptr->callback = _aac_probe_container1 -> fibptr->callback_data = scmd
fibptr->callback(scmd) -> _aac_probe_container1(scmd, fibptr) [ ... ] -> _aac_probe_container2(scmd, fibptr) -> Call scmd->SCp.ptr == aac_probe_container_callback1 -> scmd->device = NULL;
The processing sequence for SCSI commands allocated by the SCSI mid-layer if _aac_probe_container() is called is as follows:
aac_queuecommand() -> aac_scsi_cmd() -> _aac_probe_container(scmd, aac_probe_container_callback2) -> scmd->SCp.ptr = aac_probe_container_callback2 -> aac_fib_send(..., _aac_probe_container1, scmd)
fibptr->callback(scmd) -> _aac_probe_container1(scmd, fibptr) [ ... ] -> _aac_probe_container2(scmd, fibptr) -> Call scmd->SCp.ptr == aac_probe_container_callback2
Preserve the existing call sequences by calling scsi_done() for commands submitted by the mid-layer or aac_probe_container_scsi_done() for commands submitted by aac_probe_container().
Link: https://lore.kernel.org/r/20211007202923.2174984-17-bvanassche@acm.org Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|