net: allwinner: remove redundant irqsave and irqrestore in hardIRQ
authorBarry Song <song.bao.hua@hisilicon.com>
Tue, 22 Sep 2020 01:56:15 +0000 (13:56 +1200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 24 Sep 2020 00:33:52 +0000 (17:33 -0700)
The comment "holders of db->lock must always block IRQs" and related
code to do irqsave and irqrestore don't make sense since we are in a
IRQ-disabled hardIRQ context.

Cc: Maxime Ripard <mripard@kernel.org>
Cc: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Barry Song <song.bao.hua@hisilicon.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/allwinner/sun4i-emac.c

index b3b8a80..862ea44 100644 (file)
@@ -640,13 +640,11 @@ static irqreturn_t emac_interrupt(int irq, void *dev_id)
        struct net_device *dev = dev_id;
        struct emac_board_info *db = netdev_priv(dev);
        int int_status;
-       unsigned long flags;
        unsigned int reg_val;
 
        /* A real interrupt coming */
 
-       /* holders of db->lock must always block IRQs */
-       spin_lock_irqsave(&db->lock, flags);
+       spin_lock(&db->lock);
 
        /* Disable all interrupts */
        writel(0, db->membase + EMAC_INT_CTL_REG);
@@ -680,7 +678,7 @@ static irqreturn_t emac_interrupt(int irq, void *dev_id)
                reg_val |= (0xf << 0) | (0x01 << 8);
                writel(reg_val, db->membase + EMAC_INT_CTL_REG);
        }
-       spin_unlock_irqrestore(&db->lock, flags);
+       spin_unlock(&db->lock);
 
        return IRQ_HANDLED;
 }