]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
RDMA/hfi1: Open-code rvt_set_ibdev_name()
authorArnd Bergmann <arnd@arndb.de>
Tue, 2 Jun 2026 14:04:34 +0000 (16:04 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 5 Jun 2026 15:38:42 +0000 (12:38 -0300)
clang warns about a function missing a printf attribute:

include/rdma/rdma_vt.h:457:47: error: diagnostic behavior may be improved by adding the 'format(printf, 2, 3)' attribute to the declaration of 'rvt_set_ibdev_name' [-Werror,-Wmissing-format-attribute]
  447 | static inline void rvt_set_ibdev_name(struct rvt_dev_info *rdi,
      | __attribute__((format(printf, 2, 3)))
  448 |                                       const char *fmt, const char *name,
  449 |                                       const int unit)

The helper was originally added as an abstraction for the hfi1 and
qib drivers needing the same thing, but now qib is gone, and hfi1
is the only remaining user of rdma_vt.

Avoid the warning and allow the compiler to check the format string by
open-coding the helper and directly assigning the device name.

Fixes: 5084c8ff21f2 ("IB/{rdmavt, hfi1, qib}: Self determine driver name")
Link: https://patch.msgid.link/r/20260602140453.3542427-1-arnd@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Kees Cook <kees@kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/hfi1/init.c
include/rdma/rdma_vt.h

index 8b5a5b32b0fa2660ee208215d2aad66ccde74a81..b7fd8b1fbbbde7bc796f19a2f3a74c2c638a3635 100644 (file)
@@ -1206,6 +1206,7 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev,
                                               size_t extra)
 {
        struct hfi1_devdata *dd;
+       struct ib_device *ibdev;
        int ret, nports;
 
        /* extra is * number of ports */
@@ -1227,7 +1228,17 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev,
                        "Could not allocate unit ID: error %d\n", -ret);
                goto bail;
        }
-       rvt_set_ibdev_name(&dd->verbs_dev.rdi, "%s_%d", class_name(), dd->unit);
+
+       /*
+        * FIXME: rvt and its users want to touch the ibdev before
+        * registration and have things like the name work. We don't have the
+        * infrastructure in the core to support this directly today, hack it
+        * to work by setting the name manually here.
+        */
+       ibdev = &dd->verbs_dev.rdi.ibdev;
+       dev_set_name(&ibdev->dev, "%s_%d", class_name(), dd->unit);
+       strscpy(ibdev->name, dev_name(&ibdev->dev), IB_DEVICE_NAME_MAX);
+
        /*
         * If the BIOS does not have the NUMA node information set, select
         * NUMA 0 so we get consistent performance.
index 7d8de561f71b5b6db4fbfdec01f0cc1e017d79a2..7ffc83262a0166d6cede5309dd1b52d0348cc657 100644 (file)
@@ -438,26 +438,6 @@ struct rvt_dev_info {
        struct rvt_wss *wss;
 };
 
-/**
- * rvt_set_ibdev_name - Craft an IB device name from client info
- * @rdi: pointer to the client rvt_dev_info structure
- * @name: client specific name
- * @unit: client specific unit number.
- */
-static inline void rvt_set_ibdev_name(struct rvt_dev_info *rdi,
-                                     const char *fmt, const char *name,
-                                     const int unit)
-{
-       /*
-        * FIXME: rvt and its users want to touch the ibdev before
-        * registration and have things like the name work. We don't have the
-        * infrastructure in the core to support this directly today, hack it
-        * to work by setting the name manually here.
-        */
-       dev_set_name(&rdi->ibdev.dev, fmt, name, unit);
-       strscpy(rdi->ibdev.name, dev_name(&rdi->ibdev.dev), IB_DEVICE_NAME_MAX);
-}
-
 /**
  * rvt_get_ibdev_name - return the IB name
  * @rdi: rdmavt device