summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiklas Cassel <cassel@kernel.org>2025-12-04 16:18:04 +0300
committerDamien Le Moal <dlemoal@kernel.org>2025-12-15 10:32:04 +0300
commite8fe098170142416f11a0cae201254cd779f7fe9 (patch)
treee36eefb16d107be7c01741d23e973532bd96363c
parent8f0b4cce4481fb22653697cced8d0d04027cb1e8 (diff)
downloadlinux-e8fe098170142416f11a0cae201254cd779f7fe9.tar.xz
ata: libata-scsi: Remove superfluous local_irq_save()
Commit 28a3fc2295a7 ("libata: implement ZBC IN translation") added ata_scsi_report_zones_complete(). Since the beginning, this function has disabled IRQs on the local CPU using local_irq_save(). qc->complete_fn is always called with ap->lock held, and the ap->lock is always taken using spin_lock_irq*(). Thus, this local_irq_save() is superfluous and can be removed. Signed-off-by: Niklas Cassel <cassel@kernel.org> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
-rw-r--r--drivers/ata/libata-scsi.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 721d3f270c8e..244d10e48472 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -3573,13 +3573,13 @@ static void ata_scsi_report_zones_complete(struct ata_queued_cmd *qc)
{
struct scsi_cmnd *scmd = qc->scsicmd;
struct sg_mapping_iter miter;
- unsigned long flags;
unsigned int bytes = 0;
+ lockdep_assert_held(qc->ap->lock);
+
sg_miter_start(&miter, scsi_sglist(scmd), scsi_sg_count(scmd),
SG_MITER_TO_SG | SG_MITER_ATOMIC);
- local_irq_save(flags);
while (sg_miter_next(&miter)) {
unsigned int offset = 0;
@@ -3627,7 +3627,6 @@ static void ata_scsi_report_zones_complete(struct ata_queued_cmd *qc)
}
}
sg_miter_stop(&miter);
- local_irq_restore(flags);
ata_scsi_qc_complete(qc);
}