dmaengine: sf-pdma: remove redundant irqsave and irqrestore in hardIRQ
authorBarry Song <song.bao.hua@hisilicon.com>
Tue, 27 Oct 2020 21:52:45 +0000 (10:52 +1300)
committerVinod Koul <vkoul@kernel.org>
Mon, 9 Nov 2020 11:55:54 +0000 (17:25 +0530)
Running in hardIRQ, disabling IRQ is redundant since hardIRQ has disabled
IRQ. This patch removes the irqsave and irqstore to save some instruction
cycles.

Signed-off-by: Barry Song <song.bao.hua@hisilicon.com>
Cc: Green Wan <green.wan@sifive.com>
Link: https://lore.kernel.org/r/20201027215252.25820-4-song.bao.hua@hisilicon.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/sf-pdma/sf-pdma.c

index 528deb5..981ddcc 100644 (file)
@@ -326,10 +326,9 @@ static irqreturn_t sf_pdma_done_isr(int irq, void *dev_id)
 {
        struct sf_pdma_chan *chan = dev_id;
        struct pdma_regs *regs = &chan->regs;
-       unsigned long flags;
        u64 residue;
 
-       spin_lock_irqsave(&chan->vchan.lock, flags);
+       spin_lock(&chan->vchan.lock);
        writel((readl(regs->ctrl)) & ~PDMA_DONE_STATUS_MASK, regs->ctrl);
        residue = readq(regs->residue);
 
@@ -346,7 +345,7 @@ static irqreturn_t sf_pdma_done_isr(int irq, void *dev_id)
                sf_pdma_xfer_desc(chan);
        }
 
-       spin_unlock_irqrestore(&chan->vchan.lock, flags);
+       spin_unlock(&chan->vchan.lock);
 
        return IRQ_HANDLED;
 }
@@ -355,11 +354,10 @@ static irqreturn_t sf_pdma_err_isr(int irq, void *dev_id)
 {
        struct sf_pdma_chan *chan = dev_id;
        struct pdma_regs *regs = &chan->regs;
-       unsigned long flags;
 
-       spin_lock_irqsave(&chan->lock, flags);
+       spin_lock(&chan->lock);
        writel((readl(regs->ctrl)) & ~PDMA_ERR_STATUS_MASK, regs->ctrl);
-       spin_unlock_irqrestore(&chan->lock, flags);
+       spin_unlock(&chan->lock);
 
        tasklet_schedule(&chan->err_tasklet);