Commit 2da11d42 authored by Sebastian Andrzej Siewior's avatar Sebastian Andrzej Siewior Committed by Martin K. Petersen

scsi: libsas: remove irq save in sas_ata_qc_issue()

Since commit 312d3e56 ("[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: 312d3e56 ("[SCSI] libsas: remove ata_port.lock management duties from lldds")
Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: default avatarDan Williams <dan.j.williams@intel.com>
Reviewed-by: default avatarJohn Garry <john.garry@huawei.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 15c5a5e0
...@@ -176,7 +176,6 @@ static void sas_ata_task_done(struct sas_task *task) ...@@ -176,7 +176,6 @@ static void sas_ata_task_done(struct sas_task *task)
static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc)
{ {
unsigned long flags;
struct sas_task *task; struct sas_task *task;
struct scatterlist *sg; struct scatterlist *sg;
int ret = AC_ERR_SYSTEM; int ret = AC_ERR_SYSTEM;
...@@ -187,10 +186,7 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) ...@@ -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 Scsi_Host *host = sas_ha->core.shost;
struct sas_internal *i = to_sas_internal(host->transportt); struct sas_internal *i = to_sas_internal(host->transportt);
/* TODO: audit callers to ensure they are ready for qc_issue to /* TODO: we should try to remove that unlock */
* unconditionally re-enable interrupts
*/
local_irq_save(flags);
spin_unlock(ap->lock); spin_unlock(ap->lock);
/* If the device fell off, no sense in issuing commands */ /* 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) ...@@ -252,7 +248,6 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc)
out: out:
spin_lock(ap->lock); spin_lock(ap->lock);
local_irq_restore(flags);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment