From: Damien Le Moal Date: Wed, 18 Feb 2026 23:49:17 +0000 (+0900) Subject: ata: libata-scsi: simplify ata_scsi_requeue_deferred_qc() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9a5eb2adb1ec90f854d9b45c75f0fcb3ae981356;p=thirdparty%2Fkernel%2Flinux.git ata: libata-scsi: simplify ata_scsi_requeue_deferred_qc() In ata_scsi_requeue_deferred_qc(), use ata_qc_done() instead of calling ata_qc_free() and scsi_done() directly. Signed-off-by: Damien Le Moal Reviewed-by: Hannes Reinecke --- diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index c0dd75a0287c6..41918e21d0f83 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -1685,7 +1685,6 @@ void ata_scsi_deferred_qc_work(struct work_struct *work) void ata_scsi_requeue_deferred_qc(struct ata_port *ap) { struct ata_queued_cmd *qc = ap->deferred_qc; - struct scsi_cmnd *scmd; lockdep_assert_held(ap->lock); @@ -1697,11 +1696,9 @@ void ata_scsi_requeue_deferred_qc(struct ata_port *ap) if (!qc) return; - scmd = qc->scsicmd; ap->deferred_qc = NULL; - ata_qc_free(qc); - scmd->result = (DID_SOFT_ERROR << 16); - scsi_done(scmd); + qc->scsicmd->result = (DID_SOFT_ERROR << 16); + ata_qc_done(qc); } static void ata_scsi_schedule_deferred_qc(struct ata_port *ap)