dmaengine: k3dma: remove redundant irqsave and irqrestore in hardIRQ
authorBarry Song <song.bao.hua@hisilicon.com>
Tue, 27 Oct 2020 21:52:48 +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>
Link: https://lore.kernel.org/r/20201027215252.25820-7-song.bao.hua@hisilicon.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/k3dma.c

index f609a84..d0b2e60 100644 (file)
@@ -223,24 +223,23 @@ static irqreturn_t k3_dma_int_handler(int irq, void *dev_id)
                i = __ffs(stat);
                stat &= ~BIT(i);
                if (likely(tc1 & BIT(i)) || (tc2 & BIT(i))) {
-                       unsigned long flags;
 
                        p = &d->phy[i];
                        c = p->vchan;
                        if (c && (tc1 & BIT(i))) {
-                               spin_lock_irqsave(&c->vc.lock, flags);
+                               spin_lock(&c->vc.lock);
                                if (p->ds_run != NULL) {
                                        vchan_cookie_complete(&p->ds_run->vd);
                                        p->ds_done = p->ds_run;
                                        p->ds_run = NULL;
                                }
-                               spin_unlock_irqrestore(&c->vc.lock, flags);
+                               spin_unlock(&c->vc.lock);
                        }
                        if (c && (tc2 & BIT(i))) {
-                               spin_lock_irqsave(&c->vc.lock, flags);
+                               spin_lock(&c->vc.lock);
                                if (p->ds_run != NULL)
                                        vchan_cyclic_callback(&p->ds_run->vd);
-                               spin_unlock_irqrestore(&c->vc.lock, flags);
+                               spin_unlock(&c->vc.lock);
                        }
                        irq_chan |= BIT(i);
                }