]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: airoha: use int instead of atomic_t for qdma users counter
authorLorenzo Bianconi <lorenzo@kernel.org>
Thu, 11 Jun 2026 21:55:51 +0000 (23:55 +0200)
committerJakub Kicinski <kuba@kernel.org>
Mon, 15 Jun 2026 23:35:41 +0000 (16:35 -0700)
QDMA users counter is always accessed holding RTNL lock so we do not
require atomic_t for it.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/airoha/airoha_eth.c
drivers/net/ethernet/airoha/airoha_eth.h

index 01083e90d7e2deecffd9c5471e6877a165ce1c35..1d1911a4759c91ac5e98cedfffe50b7451f5e3ea 100644 (file)
@@ -1840,7 +1840,7 @@ static int airoha_dev_open(struct net_device *netdev)
        airoha_qdma_set(qdma, REG_QDMA_GLOBAL_CFG,
                        GLOBAL_CFG_TX_DMA_EN_MASK |
                        GLOBAL_CFG_RX_DMA_EN_MASK);
-       atomic_inc(&qdma->users);
+       qdma->users++;
 
        if (!airoha_is_lan_gdm_dev(dev) &&
            airoha_ppe_is_enabled(qdma->eth, 1))
@@ -1894,7 +1894,7 @@ static int airoha_dev_stop(struct net_device *netdev)
                                            REG_GDM_FWD_CFG(port->id),
                                            FE_PSE_PORT_DROP);
 
-       if (atomic_dec_and_test(&qdma->users)) {
+       if (!--qdma->users) {
                airoha_qdma_clear(qdma, REG_QDMA_GLOBAL_CFG,
                                  GLOBAL_CFG_TX_DMA_EN_MASK |
                                  GLOBAL_CFG_RX_DMA_EN_MASK);
index 46b1c31939de522c4b55318737cf64b63a7d2b2e..41d2e7a1f9fb66e275e0461b3f0342242968015f 100644 (file)
@@ -524,7 +524,7 @@ struct airoha_qdma {
        struct airoha_eth *eth;
        void __iomem *regs;
 
-       atomic_t users;
+       int users;
 
        struct airoha_irq_bank irq_banks[AIROHA_MAX_NUM_IRQ_BANKS];