From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 024802EA168 for ; Wed, 25 Feb 2026 18:10:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772043038; cv=none; b=eQObsXtQDBLTb70p9U0X4bfbfmSSF+eTJppzRvj3NsGHIXft1VHhgsCLwSYWVRYH++0a5adorNAMJDOaYGlbTHgshE4GkxbuqWk9s2sCRl2O2pGVGhkE/q9XDg98idXHpQUvT+hSzgSY2jBu/xJVC/3a0e6+nnRuGegj57lTThA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772043038; c=relaxed/simple; bh=WlsoTQ4jsuNxB9ZRVFthdDepZ2Hoda5UMV2qPN+xiFs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XoSAVD2YfEwJ0IaQVsou2unYyUYX6wGEMHwm5qn8FHz2rMHbv4Ymf1VYCbQ45bp5EhbldnDRItalntTDx4rRcBFiNBscJao3QrO0VA46aOGv6xJkV7D5xi6Gna8WETybmmV04HCc7/plL4ITBcoxzMDg8pkn3sE/JdZ/YnVebi0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=n9uDys4x; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="n9uDys4x" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17311C116D0; Wed, 25 Feb 2026 18:10:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772043037; bh=WlsoTQ4jsuNxB9ZRVFthdDepZ2Hoda5UMV2qPN+xiFs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n9uDys4xsxE9BrouoIL+hXpfsPxs81jcI5gGFEaHibKcBU/mvDhq74t79Im7NttcJ zyb6dHEB6IbWXNQlM0Z9M4PmipFTW1MLLXLHK2LzrtZF2Cd/g6nODozyzXjAW8Wvhh d00ZUEdZ+o+Il1l+rJ2QYkVM++aq1fvlSvDzdI+sJhsGfe/1LSKpBlB8DFufgQ11Ya huLrd57ipPwKrpROXdQjKeQtD5FhKRTW+S6ojbtmdanrAAQeYeyuzPGUqHENwr7drv TPI77KrqcABZd9sROps9KkM1nRGVwATncL2JEjgCdmwb03Sh2u6n1BuOmgpOTqfY7X PPAvXqTMeHVXQ== From: Sasha Levin To: stable@vger.kernel.org Cc: Bart Van Assche , Damien Le Moal , "Martin K. Petersen" , Sasha Levin Subject: [PATCH 5.15.y 1/4] scsi: ata: Call scsi_done() directly Date: Wed, 25 Feb 2026 13:10:31 -0500 Message-ID: <20260225181034.910635-1-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <2026022431-await-dinginess-62b0@gregkh> References: <2026022431-await-dinginess-62b0@gregkh> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Bart Van Assche [ Upstream commit 58bf201dfc032eadbb31eaf817b467bed17f753d ] Conditional statements are faster than indirect calls. Hence call scsi_done() directly. Link: https://lore.kernel.org/r/20211007202923.2174984-4-bvanassche@acm.org Acked-by: Damien Le Moal Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen Stable-dep-of: bb3a8154b1a1 ("ata: libata-scsi: refactor ata_scsi_translate()") Signed-off-by: Sasha Levin --- drivers/ata/libata-sata.c | 2 +- drivers/ata/libata-scsi.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/ata/libata-sata.c b/drivers/ata/libata-sata.c index 7cacb2bfc3608..bac569736c937 100644 --- a/drivers/ata/libata-sata.c +++ b/drivers/ata/libata-sata.c @@ -1276,7 +1276,7 @@ int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap) rc = __ata_scsi_queuecmd(cmd, ap->link.device); else { cmd->result = (DID_BAD_TARGET << 16); - cmd->scsi_done(cmd); + scsi_done(cmd); } return rc; } diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index f91b88073232d..b57027206ae1e 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -634,7 +634,7 @@ static struct ata_queued_cmd *ata_scsi_qc_new(struct ata_device *dev, qc = ata_qc_new_init(dev, scsi_cmd_to_rq(cmd)->tag); if (qc) { qc->scsicmd = cmd; - qc->scsidone = cmd->scsi_done; + qc->scsidone = scsi_done; qc->sg = scsi_sglist(cmd); qc->n_elem = scsi_sg_count(cmd); @@ -643,7 +643,7 @@ static struct ata_queued_cmd *ata_scsi_qc_new(struct ata_device *dev, qc->flags |= ATA_QCFLAG_QUIET; } else { cmd->result = (DID_OK << 16) | SAM_STAT_TASK_SET_FULL; - cmd->scsi_done(cmd); + scsi_done(cmd); } return qc; @@ -1750,14 +1750,14 @@ static int ata_scsi_translate(struct ata_device *dev, struct scsi_cmnd *cmd, early_finish: ata_qc_free(qc); - cmd->scsi_done(cmd); + scsi_done(cmd); DPRINTK("EXIT - early finish (good or error)\n"); return 0; err_did: ata_qc_free(qc); cmd->result = (DID_ERROR << 16); - cmd->scsi_done(cmd); + scsi_done(cmd); err_mem: DPRINTK("EXIT - internal\n"); return 0; @@ -4068,7 +4068,7 @@ int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, struct ata_device *dev) DPRINTK("bad CDB len=%u, scsi_op=0x%02x, max=%u\n", scmd->cmd_len, scsi_op, dev->cdb_len); scmd->result = DID_ERROR << 16; - scmd->scsi_done(scmd); + scsi_done(scmd); return 0; } @@ -4110,7 +4110,7 @@ int ata_scsi_queuecmd(struct Scsi_Host *shost, struct scsi_cmnd *cmd) rc = __ata_scsi_queuecmd(cmd, dev); else { cmd->result = (DID_BAD_TARGET << 16); - cmd->scsi_done(cmd); + scsi_done(cmd); } spin_unlock_irqrestore(ap->lock, irq_flags); @@ -4239,7 +4239,7 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd) break; } - cmd->scsi_done(cmd); + scsi_done(cmd); } int ata_scsi_add_hosts(struct ata_host *host, struct scsi_host_template *sht) -- 2.51.0