]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bnxt_en: Remove BNXT_FLAG_USING_MSIX flag
authorMichael Chan <michael.chan@broadcom.com>
Wed, 28 Aug 2024 18:32:31 +0000 (11:32 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 29 Aug 2024 22:33:24 +0000 (15:33 -0700)
Now that we only support MSIX, the BNXT_FLAG_USING_MSIX is always true.
Remove it and any if conditions checking for it.  Remove the INTX
handler and associated logic.

Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Hongguang Gao <hongguang.gao@broadcom.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20240828183235.128948-6-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c

index b5a5c491114359a892aeedf3b6a9ded6f628dd33..67f09e22a25c5974fc034abf0aa3dfbd378d9812 100644 (file)
@@ -2854,34 +2854,6 @@ static inline int bnxt_has_work(struct bnxt *bp, struct bnxt_cp_ring_info *cpr)
        return TX_CMP_VALID(txcmp, raw_cons);
 }
 
-static irqreturn_t bnxt_inta(int irq, void *dev_instance)
-{
-       struct bnxt_napi *bnapi = dev_instance;
-       struct bnxt *bp = bnapi->bp;
-       struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
-       u32 cons = RING_CMP(cpr->cp_raw_cons);
-       u32 int_status;
-
-       prefetch(&cpr->cp_desc_ring[CP_RING(cons)][CP_IDX(cons)]);
-
-       if (!bnxt_has_work(bp, cpr)) {
-               int_status = readl(bp->bar0 + BNXT_CAG_REG_LEGACY_INT_STATUS);
-               /* return if erroneous interrupt */
-               if (!(int_status & (0x10000 << cpr->cp_ring_struct.fw_ring_id)))
-                       return IRQ_NONE;
-       }
-
-       /* disable ring IRQ */
-       BNXT_CP_DB_IRQ_DIS(cpr->cp_db.doorbell);
-
-       /* Return here if interrupt is shared and is disabled. */
-       if (unlikely(atomic_read(&bp->intr_sem) != 0))
-               return IRQ_HANDLED;
-
-       napi_schedule(&bnapi->napi);
-       return IRQ_HANDLED;
-}
-
 static int __bnxt_poll_work(struct bnxt *bp, struct bnxt_cp_ring_info *cpr,
                            int budget)
 {
@@ -6876,15 +6848,14 @@ static int hwrm_ring_alloc_send_msg(struct bnxt *bp,
                        req->cq_handle = cpu_to_le64(ring->handle);
                        req->enables |= cpu_to_le32(
                                RING_ALLOC_REQ_ENABLES_NQ_RING_ID_VALID);
-               } else if (bp->flags & BNXT_FLAG_USING_MSIX) {
+               } else {
                        req->int_mode = RING_ALLOC_REQ_INT_MODE_MSIX;
                }
                break;
        case HWRM_RING_ALLOC_NQ:
                req->ring_type = RING_ALLOC_REQ_RING_TYPE_NQ;
                req->length = cpu_to_le32(bp->cp_ring_mask + 1);
-               if (bp->flags & BNXT_FLAG_USING_MSIX)
-                       req->int_mode = RING_ALLOC_REQ_INT_MODE_MSIX;
+               req->int_mode = RING_ALLOC_REQ_INT_MODE_MSIX;
                break;
        default:
                netdev_err(bp->dev, "hwrm alloc invalid ring type %d\n",
@@ -10653,20 +10624,6 @@ static void bnxt_setup_msix(struct bnxt *bp)
        }
 }
 
-static void bnxt_setup_inta(struct bnxt *bp)
-{
-       const int len = sizeof(bp->irq_tbl[0].name);
-
-       if (bp->num_tc) {
-               netdev_reset_tc(bp->dev);
-               bp->num_tc = 0;
-       }
-
-       snprintf(bp->irq_tbl[0].name, len, "%s-%s-%d", bp->dev->name, "TxRx",
-                0);
-       bp->irq_tbl[0].handler = bnxt_inta;
-}
-
 static int bnxt_init_int_mode(struct bnxt *bp);
 
 static int bnxt_setup_int_mode(struct bnxt *bp)
@@ -10679,10 +10636,7 @@ static int bnxt_setup_int_mode(struct bnxt *bp)
                        return rc ?: -ENODEV;
        }
 
-       if (bp->flags & BNXT_FLAG_USING_MSIX)
-               bnxt_setup_msix(bp);
-       else
-               bnxt_setup_inta(bp);
+       bnxt_setup_msix(bp);
 
        rc = bnxt_set_real_num_queues(bp);
        return rc;
@@ -10823,7 +10777,6 @@ static int bnxt_init_int_mode(struct bnxt *bp)
                rc = -ENOMEM;
                goto msix_setup_exit;
        }
-       bp->flags |= BNXT_FLAG_USING_MSIX;
        kfree(msix_ent);
        return 0;
 
@@ -10838,12 +10791,10 @@ msix_setup_exit:
 
 static void bnxt_clear_int_mode(struct bnxt *bp)
 {
-       if (bp->flags & BNXT_FLAG_USING_MSIX)
-               pci_disable_msix(bp->pdev);
+       pci_disable_msix(bp->pdev);
 
        kfree(bp->irq_tbl);
        bp->irq_tbl = NULL;
-       bp->flags &= ~BNXT_FLAG_USING_MSIX;
 }
 
 int bnxt_reserve_rings(struct bnxt *bp, bool irq_re_init)
@@ -10941,9 +10892,6 @@ static int bnxt_request_irq(struct bnxt *bp)
 #ifdef CONFIG_RFS_ACCEL
        rmap = bp->dev->rx_cpu_rmap;
 #endif
-       if (!(bp->flags & BNXT_FLAG_USING_MSIX))
-               flags = IRQF_SHARED;
-
        for (i = 0, j = 0; i < bp->cp_nr_rings; i++) {
                int map_idx = bnxt_cp_num_to_irq_num(bp, i);
                struct bnxt_irq *irq = &bp->irq_tbl[map_idx];
@@ -11008,29 +10956,22 @@ static void bnxt_del_napi(struct bnxt *bp)
 
 static void bnxt_init_napi(struct bnxt *bp)
 {
-       int i;
+       int (*poll_fn)(struct napi_struct *, int) = bnxt_poll;
        unsigned int cp_nr_rings = bp->cp_nr_rings;
        struct bnxt_napi *bnapi;
+       int i;
 
-       if (bp->flags & BNXT_FLAG_USING_MSIX) {
-               int (*poll_fn)(struct napi_struct *, int) = bnxt_poll;
-
-               if (bp->flags & BNXT_FLAG_CHIP_P5_PLUS)
-                       poll_fn = bnxt_poll_p5;
-               else if (BNXT_CHIP_TYPE_NITRO_A0(bp))
-                       cp_nr_rings--;
-               for (i = 0; i < cp_nr_rings; i++) {
-                       bnapi = bp->bnapi[i];
-                       netif_napi_add(bp->dev, &bnapi->napi, poll_fn);
-               }
-               if (BNXT_CHIP_TYPE_NITRO_A0(bp)) {
-                       bnapi = bp->bnapi[cp_nr_rings];
-                       netif_napi_add(bp->dev, &bnapi->napi,
-                                      bnxt_poll_nitroa0);
-               }
-       } else {
-               bnapi = bp->bnapi[0];
-               netif_napi_add(bp->dev, &bnapi->napi, bnxt_poll);
+       if (bp->flags & BNXT_FLAG_CHIP_P5_PLUS)
+               poll_fn = bnxt_poll_p5;
+       else if (BNXT_CHIP_TYPE_NITRO_A0(bp))
+               cp_nr_rings--;
+       for (i = 0; i < cp_nr_rings; i++) {
+               bnapi = bp->bnapi[i];
+               netif_napi_add(bp->dev, &bnapi->napi, poll_fn);
+       }
+       if (BNXT_CHIP_TYPE_NITRO_A0(bp)) {
+               bnapi = bp->bnapi[cp_nr_rings];
+               netif_napi_add(bp->dev, &bnapi->napi, bnxt_poll_nitroa0);
        }
 }
 
@@ -12149,12 +12090,6 @@ static int __bnxt_open_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init)
        rc = bnxt_reserve_rings(bp, irq_re_init);
        if (rc)
                return rc;
-       if ((bp->flags & BNXT_FLAG_RFS) &&
-           !(bp->flags & BNXT_FLAG_USING_MSIX)) {
-               /* disable RFS if falling back to INTA */
-               bp->dev->hw_features &= ~NETIF_F_NTUPLE;
-               bp->flags &= ~BNXT_FLAG_RFS;
-       }
 
        rc = bnxt_alloc_mem(bp, irq_re_init);
        if (rc) {
index 9192cf26c871b94397589d5c756c7c05b19ed20f..b1903a1617f1b32e86df52e12ddbddd7b851d8e0 100644 (file)
@@ -2199,7 +2199,6 @@ struct bnxt {
        #define BNXT_FLAG_STRIP_VLAN    0x20
        #define BNXT_FLAG_AGG_RINGS     (BNXT_FLAG_JUMBO | BNXT_FLAG_GRO | \
                                         BNXT_FLAG_LRO)
-       #define BNXT_FLAG_USING_MSIX    0x40
        #define BNXT_FLAG_RFS           0x100
        #define BNXT_FLAG_SHARED_RINGS  0x200
        #define BNXT_FLAG_PORT_STATS    0x400
index 58bd84b59f0ef036bb59f6be9b033bf708d5e4d7..7bb8a5d744308ae74b6a517ddd7fa16817e16da3 100644 (file)
@@ -902,11 +902,6 @@ int bnxt_sriov_configure(struct pci_dev *pdev, int num_vfs)
        struct net_device *dev = pci_get_drvdata(pdev);
        struct bnxt *bp = netdev_priv(dev);
 
-       if (!(bp->flags & BNXT_FLAG_USING_MSIX)) {
-               netdev_warn(dev, "Not allow SRIOV if the irq mode is not MSIX\n");
-               return 0;
-       }
-
        rtnl_lock();
        if (!netif_running(dev)) {
                netdev_warn(dev, "Reject SRIOV config request since if is down!\n");