RDMA/efa: Align interrupt related fields to same type
authorYonatan Nachum <ynachum@amazon.com>
Sun, 5 Jan 2025 13:14:21 +0000 (13:14 +0000)
committerLeon Romanovsky <leon@kernel.org>
Mon, 6 Jan 2025 13:24:33 +0000 (08:24 -0500)
There is a lot of implicit casting of interrupt related fields. Use
u32 as common type since this is what the device use as type for max
supported EQs and what IB core expects in num_comp_vectors field.

Reviewed-by: Daniel Kranzdorf <dkkranzd@amazon.com>
Reviewed-by: Michael Margolin <mrgolin@amazon.com>
Signed-off-by: Yonatan Nachum <ynachum@amazon.com>
Link: https://patch.msgid.link/20250105131421.29030-1-ynachum@amazon.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/efa/efa.h
drivers/infiniband/hw/efa/efa_com.h
drivers/infiniband/hw/efa/efa_main.c

index d7fc9d5eeefd325675d1f09ed527dc320d71e5d4..838182d0409c205cd2ed4063e83d55c8c6534df5 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
 /*
- * Copyright 2018-2024 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #ifndef _EFA_H_
@@ -57,15 +57,15 @@ struct efa_dev {
        u64 db_bar_addr;
        u64 db_bar_len;
 
-       unsigned int num_irq_vectors;
-       int admin_msix_vector_idx;
+       u32 num_irq_vectors;
+       u32 admin_msix_vector_idx;
        struct efa_irq admin_irq;
 
        struct efa_stats stats;
 
        /* Array of completion EQs */
        struct efa_eq *eqs;
-       unsigned int neqs;
+       u32 neqs;
 
        /* Only stores CQs with interrupts enabled */
        struct xarray cqs_xa;
index 77282234ce6863a70ada9c9bb27405d045aedf25..4d9ca97e42962f43b762ebc2c5d132d37b57e18c 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
 /*
- * Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #ifndef _EFA_COM_H_
@@ -65,7 +65,7 @@ struct efa_com_admin_queue {
        u16 depth;
        struct efa_com_admin_cq cq;
        struct efa_com_admin_sq sq;
-       u16 msix_vector_idx;
+       u32 msix_vector_idx;
 
        unsigned long state;
 
@@ -89,7 +89,7 @@ struct efa_com_aenq {
        struct efa_aenq_handlers *aenq_handlers;
        dma_addr_t dma_addr;
        u32 cc; /* consumer counter */
-       u16 msix_vector_idx;
+       u32 msix_vector_idx;
        u16 depth;
        u8 phase;
 };
index 45a4564c670c01bb70231d652f94e1bf4bf17f39..4f03c0ec819ff37c4da6d058ae5cd5e761f7f8dc 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
 /*
- * Copyright 2018-2024 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #include <linux/module.h>
@@ -141,8 +141,7 @@ static int efa_request_irq(struct efa_dev *dev, struct efa_irq *irq)
        return 0;
 }
 
-static void efa_setup_comp_irq(struct efa_dev *dev, struct efa_eq *eq,
-                              int vector)
+static void efa_setup_comp_irq(struct efa_dev *dev, struct efa_eq *eq, u32 vector)
 {
        u32 cpu;
 
@@ -305,7 +304,7 @@ static void efa_destroy_eq(struct efa_dev *dev, struct efa_eq *eq)
        efa_free_irq(dev, &eq->irq);
 }
 
-static int efa_create_eq(struct efa_dev *dev, struct efa_eq *eq, u8 msix_vec)
+static int efa_create_eq(struct efa_dev *dev, struct efa_eq *eq, u32 msix_vec)
 {
        int err;
 
@@ -328,21 +327,17 @@ err_free_comp_irq:
 
 static int efa_create_eqs(struct efa_dev *dev)
 {
-       unsigned int neqs = dev->dev_attr.max_eq;
-       int err;
-       int i;
-
-       neqs = min_t(unsigned int, neqs,
-                    dev->num_irq_vectors - EFA_COMP_EQS_VEC_BASE);
+       u32 neqs = dev->dev_attr.max_eq;
+       int err, i;
 
+       neqs = min_t(u32, neqs, dev->num_irq_vectors - EFA_COMP_EQS_VEC_BASE);
        dev->neqs = neqs;
        dev->eqs = kcalloc(neqs, sizeof(*dev->eqs), GFP_KERNEL);
        if (!dev->eqs)
                return -ENOMEM;
 
        for (i = 0; i < neqs; i++) {
-               err = efa_create_eq(dev, &dev->eqs[i],
-                                   i + EFA_COMP_EQS_VEC_BASE);
+               err = efa_create_eq(dev, &dev->eqs[i], i + EFA_COMP_EQS_VEC_BASE);
                if (err)
                        goto err_destroy_eqs;
        }