mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
RDMA: Use ib_no_udata_io() in query_device callbacks
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. Link: https://patch.msgid.link/20260714-convert-to-noio-udata-v1-1-f1f6b6c7c988@nvidia.com Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
This commit is contained in:
parent
126c757e4c
commit
fbf03a0867
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user