scsi: libsas: remove irq save in sas_ata_qc_issue()
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Thu, 14 Jun 2018 16:18:09 +0000 (18:18 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 20 Jun 2018 02:02:25 +0000 (22:02 -0400)
Since commit 312d3e56119a ("[SCSI] libsas: remove ata_port.lock management
duties from lldds") the sas_ata_qc_issue() function unlocks the
ata_port.lock and disables interrupts before doing so.  That lock is always
taken with disabled interrupts so at this point, the interrupts are already
disabled. There is no need to disable the interrupts before the unlock
operation because they are already disabled.  Restoring the interrupt state
later does not change anything because they were disabled and remain
disabled. Therefore remove the operations which do not change the
behaviour.

Fixes: 312d3e56119a ("[SCSI] libsas: remove ata_port.lock management duties from lldds")
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libsas/sas_ata.c

index ff1d612f6fb97a2d95cd3e27569af89968d63c8c..2ac7395112b4dd35de3f407177cb494838022a03 100644 (file)
@@ -176,7 +176,6 @@ qc_already_gone:
 
 static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc)
 {
-       unsigned long flags;
        struct sas_task *task;
        struct scatterlist *sg;
        int ret = AC_ERR_SYSTEM;
@@ -187,10 +186,7 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc)
        struct Scsi_Host *host = sas_ha->core.shost;
        struct sas_internal *i = to_sas_internal(host->transportt);
 
-       /* TODO: audit callers to ensure they are ready for qc_issue to
-        * unconditionally re-enable interrupts
-        */
-       local_irq_save(flags);
+       /* TODO: we should try to remove that unlock */
        spin_unlock(ap->lock);
 
        /* If the device fell off, no sense in issuing commands */
@@ -252,7 +248,6 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc)
 
  out:
        spin_lock(ap->lock);
-       local_irq_restore(flags);
        return ret;
 }