From: Leon Romanovsky <[email protected]>

The query_device callbacks that neither accept driver-specific input nor
return a driver-specific response open-code the empty udata handling as
ib_is_udata_in_empty() on entry and ib_respond_empty_udata() on exit.

ib_no_udata_io() already combines both steps, so replace the entry check
with it and simply return 0 on success.

Unlike the create and destroy flows, query_device owns no uobject or HW
resource - the extended path fills a stack ib_device_attr that the core
discards on error - so clearing the empty response buffer on entry rather
than on exit is a mechanical change with no functional difference.

Signed-off-by: Leon Romanovsky <[email protected]>
---
 drivers/infiniband/hw/cxgb4/provider.c          | 4 ++--
 drivers/infiniband/hw/erdma/erdma_verbs.c       | 4 ++--
 drivers/infiniband/hw/hns/hns_roce_main.c       | 4 ++--
 drivers/infiniband/hw/ionic/ionic_ibdev.c       | 4 ++--
 drivers/infiniband/hw/irdma/verbs.c             | 4 ++--
 drivers/infiniband/hw/mana/main.c               | 4 ++--
 drivers/infiniband/hw/mthca/mthca_provider.c    | 3 +--
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c     | 4 ++--
 drivers/infiniband/hw/qedr/verbs.c              | 4 ++--
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c    | 4 ++--
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c | 4 ++--
 drivers/infiniband/sw/rdmavt/vt.c               | 4 ++--
 drivers/infiniband/sw/rxe/rxe_verbs.c           | 4 ++--
 drivers/infiniband/sw/siw/siw_verbs.c           | 4 ++--
 14 files changed, 27 insertions(+), 28 deletions(-)

diff --git a/drivers/infiniband/hw/cxgb4/provider.c 
b/drivers/infiniband/hw/cxgb4/provider.c
index e1eec37ee822..ebe3170a641c 100644
--- a/drivers/infiniband/hw/cxgb4/provider.c
+++ b/drivers/infiniband/hw/cxgb4/provider.c
@@ -263,7 +263,7 @@ static int c4iw_query_device(struct ib_device *ibdev, 
struct ib_device_attr *pro
 
        pr_debug("ibdev %p\n", ibdev);
 
-       err = ib_is_udata_in_empty(uhw);
+       err = ib_no_udata_io(uhw);
        if (err)
                return err;
 
@@ -300,7 +300,7 @@ static int c4iw_query_device(struct ib_device *ibdev, 
struct ib_device_attr *pro
        props->max_fast_reg_page_list_len =
                t4_max_fr_depth(dev->rdev.lldi.ulptx_memwrite_dsgl && use_dsgl);
 
-       return ib_respond_empty_udata(uhw);
+       return 0;
 }
 
 static int c4iw_query_port(struct ib_device *ibdev, u32 port,
diff --git a/drivers/infiniband/hw/erdma/erdma_verbs.c 
b/drivers/infiniband/hw/erdma/erdma_verbs.c
index 9491cbab69b3..71e3e8618a61 100644
--- a/drivers/infiniband/hw/erdma/erdma_verbs.c
+++ b/drivers/infiniband/hw/erdma/erdma_verbs.c
@@ -320,7 +320,7 @@ int erdma_query_device(struct ib_device *ibdev, struct 
ib_device_attr *attr,
        struct erdma_dev *dev = to_edev(ibdev);
        int err;
 
-       err = ib_is_udata_in_empty(udata);
+       err = ib_no_udata_io(udata);
        if (err)
                return err;
 
@@ -361,7 +361,7 @@ int erdma_query_device(struct ib_device *ibdev, struct 
ib_device_attr *attr,
                addrconf_addr_eui48((u8 *)&attr->sys_image_guid,
                                    dev->netdev->dev_addr);
 
-       return ib_respond_empty_udata(udata);
+       return 0;
 }
 
 int erdma_query_gid(struct ib_device *ibdev, u32 port, int idx,
diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c 
b/drivers/infiniband/hw/hns/hns_roce_main.c
index 09c07de5f022..662959efcf31 100644
--- a/drivers/infiniband/hw/hns/hns_roce_main.c
+++ b/drivers/infiniband/hw/hns/hns_roce_main.c
@@ -223,7 +223,7 @@ static int hns_roce_query_device(struct ib_device *ib_dev,
        struct hns_roce_dev *hr_dev = to_hr_dev(ib_dev);
        int ret;
 
-       ret = ib_is_udata_in_empty(uhw);
+       ret = ib_no_udata_io(uhw);
        if (ret)
                return ret;
 
@@ -277,7 +277,7 @@ static int hns_roce_query_device(struct ib_device *ib_dev,
        if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_XRC)
                props->device_cap_flags |= IB_DEVICE_XRC;
 
-       return ib_respond_empty_udata(uhw);
+       return 0;
 }
 
 static int hns_roce_query_port(struct ib_device *ib_dev, u32 port_num,
diff --git a/drivers/infiniband/hw/ionic/ionic_ibdev.c 
b/drivers/infiniband/hw/ionic/ionic_ibdev.c
index b0449c75f893..2b91bd03c73e 100644
--- a/drivers/infiniband/hw/ionic/ionic_ibdev.c
+++ b/drivers/infiniband/hw/ionic/ionic_ibdev.c
@@ -27,7 +27,7 @@ static int ionic_query_device(struct ib_device *ibdev,
        struct net_device *ndev;
        int err;
 
-       err = ib_is_udata_in_empty(udata);
+       err = ib_no_udata_io(udata);
        if (err)
                return err;
 
@@ -74,7 +74,7 @@ static int ionic_query_device(struct ib_device *ibdev,
        attr->max_fast_reg_page_list_len = dev->lif_cfg.npts_per_lif / 2;
        attr->max_pkeys = IONIC_PKEY_TBL_LEN;
 
-       return ib_respond_empty_udata(udata);
+       return 0;
 }
 
 static int ionic_query_port(struct ib_device *ibdev, u32 port,
diff --git a/drivers/infiniband/hw/irdma/verbs.c 
b/drivers/infiniband/hw/irdma/verbs.c
index c9b606cc67d4..f48cc8b5299b 100644
--- a/drivers/infiniband/hw/irdma/verbs.c
+++ b/drivers/infiniband/hw/irdma/verbs.c
@@ -18,7 +18,7 @@ static int irdma_query_device(struct ib_device *ibdev,
        struct irdma_hw_attrs *hw_attrs = &rf->sc_dev.hw_attrs;
        int err;
 
-       err = ib_is_udata_in_empty(udata);
+       err = ib_no_udata_io(udata);
        if (err)
                return err;
 
@@ -75,7 +75,7 @@ static int irdma_query_device(struct ib_device *ibdev,
        if (hw_attrs->uk_attrs.hw_rev >= IRDMA_GEN_3)
                props->device_cap_flags |= IB_DEVICE_MEM_WINDOW_TYPE_2B;
 
-       return ib_respond_empty_udata(udata);
+       return 0;
 }
 
 /**
diff --git a/drivers/infiniband/hw/mana/main.c 
b/drivers/infiniband/hw/mana/main.c
index a5b3606a1dd5..73f4bfb22b5e 100644
--- a/drivers/infiniband/hw/mana/main.c
+++ b/drivers/infiniband/hw/mana/main.c
@@ -575,7 +575,7 @@ int mana_ib_query_device(struct ib_device *ibdev, struct 
ib_device_attr *props,
        struct pci_dev *pdev = to_pci_dev(mdev_to_gc(dev)->dev);
        int err;
 
-       err = ib_is_udata_in_empty(uhw);
+       err = ib_no_udata_io(uhw);
        if (err)
                return err;
 
@@ -604,7 +604,7 @@ int mana_ib_query_device(struct ib_device *ibdev, struct 
ib_device_attr *props,
        if (!mana_ib_is_rnic(dev))
                props->raw_packet_caps = IB_RAW_PACKET_CAP_IP_CSUM;
 
-       return ib_respond_empty_udata(uhw);
+       return 0;
 }
 
 int mana_ib_query_port(struct ib_device *ibdev, u32 port,
diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c 
b/drivers/infiniband/hw/mthca/mthca_provider.c
index e933a53779a4..6575493f4eab 100644
--- a/drivers/infiniband/hw/mthca/mthca_provider.c
+++ b/drivers/infiniband/hw/mthca/mthca_provider.c
@@ -58,7 +58,7 @@ static int mthca_query_device(struct ib_device *ibdev, struct 
ib_device_attr *pr
        int err;
        struct mthca_dev *mdev = to_mdev(ibdev);
 
-       err = ib_is_udata_in_empty(uhw);
+       err = ib_no_udata_io(uhw);
        if (err)
                return err;
 
@@ -112,7 +112,6 @@ static int mthca_query_device(struct ib_device *ibdev, 
struct ib_device_attr *pr
        props->max_total_mcast_qp_attach = props->max_mcast_qp_attach *
                                           props->max_mcast_grp;
 
-       err = ib_respond_empty_udata(uhw);
  out:
        kfree(in_mad);
        kfree(out_mad);
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c 
b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
index de83dc0ea79c..cfe3d19b73b3 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
@@ -70,7 +70,7 @@ int ocrdma_query_device(struct ib_device *ibdev, struct 
ib_device_attr *attr,
        struct ocrdma_dev *dev = get_ocrdma_dev(ibdev);
        int err;
 
-       err = ib_is_udata_in_empty(uhw);
+       err = ib_no_udata_io(uhw);
        if (err)
                return err;
 
@@ -111,7 +111,7 @@ int ocrdma_query_device(struct ib_device *ibdev, struct 
ib_device_attr *attr,
        attr->local_ca_ack_delay = dev->attr.local_ca_ack_delay;
        attr->max_fast_reg_page_list_len = dev->attr.max_pages_per_frmr;
        attr->max_pkeys = 1;
-       return ib_respond_empty_udata(uhw);
+       return 0;
 }
 
 static inline void get_link_speed_and_width(struct ocrdma_dev *dev,
diff --git a/drivers/infiniband/hw/qedr/verbs.c 
b/drivers/infiniband/hw/qedr/verbs.c
index 1cf502579ad1..012a0ab98d6b 100644
--- a/drivers/infiniband/hw/qedr/verbs.c
+++ b/drivers/infiniband/hw/qedr/verbs.c
@@ -114,7 +114,7 @@ int qedr_query_device(struct ib_device *ibdev,
                return -EINVAL;
        }
 
-       rc = ib_is_udata_in_empty(udata);
+       rc = ib_no_udata_io(udata);
        if (rc)
                return rc;
 
@@ -158,7 +158,7 @@ int qedr_query_device(struct ib_device *ibdev,
        attr->max_pkeys = qattr->max_pkey;
        attr->max_ah = qattr->max_ah;
 
-       return ib_respond_empty_udata(udata);
+       return 0;
 }
 
 static inline void get_link_speed_and_width(int speed, u16 *ib_speed,
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c 
b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
index 3402c84eb904..1a1647d0e345 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
@@ -278,7 +278,7 @@ int usnic_ib_query_device(struct ib_device *ibdev,
        int err;
 
        usnic_dbg("\n");
-       err = ib_is_udata_in_empty(uhw);
+       err = ib_no_udata_io(uhw);
        if (err)
                return err;
 
@@ -323,7 +323,7 @@ int usnic_ib_query_device(struct ib_device *ibdev,
         * max_qp_wr, max_sge, max_sge_rd, max_cqe */
        mutex_unlock(&us_ibdev->usdev_lock);
 
-       return ib_respond_empty_udata(uhw);
+       return 0;
 }
 
 int usnic_ib_query_port(struct ib_device *ibdev, u32 port,
diff --git a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c 
b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
index 1d29a535f76a..59c2a88c158a 100644
--- a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
+++ b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
@@ -69,7 +69,7 @@ int pvrdma_query_device(struct ib_device *ibdev,
        struct pvrdma_dev *dev = to_vdev(ibdev);
        int err;
 
-       err = ib_is_udata_in_empty(uhw);
+       err = ib_no_udata_io(uhw);
        if (err)
                return err;
 
@@ -116,7 +116,7 @@ int pvrdma_query_device(struct ib_device *ibdev,
        props->device_cap_flags |= IB_DEVICE_PORT_ACTIVE_EVENT |
                                   IB_DEVICE_RC_RNR_NAK_GEN;
 
-       return ib_respond_empty_udata(uhw);
+       return 0;
 }
 
 /**
diff --git a/drivers/infiniband/sw/rdmavt/vt.c 
b/drivers/infiniband/sw/rdmavt/vt.c
index f37d6d64adb9..1c112f4dc994 100644
--- a/drivers/infiniband/sw/rdmavt/vt.c
+++ b/drivers/infiniband/sw/rdmavt/vt.c
@@ -84,14 +84,14 @@ static int rvt_query_device(struct ib_device *ibdev,
        struct rvt_dev_info *rdi = ib_to_rvt(ibdev);
        int err;
 
-       err = ib_is_udata_in_empty(uhw);
+       err = ib_no_udata_io(uhw);
        if (err)
                return err;
        /*
         * Return rvt_dev_info.dparms.props contents
         */
        *props = rdi->dparms.props;
-       return ib_respond_empty_udata(uhw);
+       return 0;
 }
 
 static int rvt_get_numa_node(struct ib_device *ibdev)
diff --git a/drivers/infiniband/sw/rxe/rxe_verbs.c 
b/drivers/infiniband/sw/rxe/rxe_verbs.c
index 1ec130fee8ea..c8562866e21f 100644
--- a/drivers/infiniband/sw/rxe/rxe_verbs.c
+++ b/drivers/infiniband/sw/rxe/rxe_verbs.c
@@ -22,13 +22,13 @@ static int rxe_query_device(struct ib_device *ibdev,
        struct rxe_dev *rxe = to_rdev(ibdev);
        int err;
 
-       err = ib_is_udata_in_empty(udata);
+       err = ib_no_udata_io(udata);
        if (err)
                return err;
 
        memcpy(attr, &rxe->attr, sizeof(*attr));
 
-       return ib_respond_empty_udata(udata);
+       return 0;
 }
 
 static int rxe_query_port(struct ib_device *ibdev,
diff --git a/drivers/infiniband/sw/siw/siw_verbs.c 
b/drivers/infiniband/sw/siw/siw_verbs.c
index e281517fc6f9..4ba6d6d5afe9 100644
--- a/drivers/infiniband/sw/siw/siw_verbs.c
+++ b/drivers/infiniband/sw/siw/siw_verbs.c
@@ -132,7 +132,7 @@ int siw_query_device(struct ib_device *base_dev, struct 
ib_device_attr *attr,
        struct siw_device *sdev = to_siw_dev(base_dev);
        int rv;
 
-       rv = ib_is_udata_in_empty(udata);
+       rv = ib_no_udata_io(udata);
        if (rv)
                return rv;
 
@@ -165,7 +165,7 @@ int siw_query_device(struct ib_device *base_dev, struct 
ib_device_attr *attr,
        addrconf_addr_eui48((u8 *)&attr->sys_image_guid,
                            sdev->raw_gid);
 
-       return ib_respond_empty_udata(udata);
+       return 0;
 }
 
 int siw_query_port(struct ib_device *base_dev, u32 port,

---
base-commit: eeb9697db6c16d9bb2ce7b7ddf95aa20305aa9f2
change-id: 20260714-convert-to-noio-udata-28749ec5a250

Best regards,
--  
Leon Romanovsky <[email protected]>


Reply via email to