int ib_resolve_eth_l2_attrs(struct ib_qp *qp,
struct ib_qp_attr *qp_attr, int *qp_attr_mask);
+
+struct ib_qp *ib_create_qp_ex(struct ib_pd *pd,
+ struct ib_qp_init_attr *qp_init_attr,
+ struct ib_udata *udata);
+
#endif /* _CORE_PRIV_H */
INIT_LIST_HEAD(&obj->mcast_list);
if (cmd.qp_type == IB_QPT_XRC_TGT)
- qp = ib_create_qp(pd, &attr);
+ qp = ib_create_qp_ex(pd, &attr, &udata);
else
qp = device->create_qp(pd, &attr, &udata);
}
EXPORT_SYMBOL(ib_open_qp);
-struct ib_qp *ib_create_qp(struct ib_pd *pd,
- struct ib_qp_init_attr *qp_init_attr)
+struct ib_qp *ib_create_qp_ex(struct ib_pd *pd,
+ struct ib_qp_init_attr *qp_init_attr,
+ struct ib_udata *udata)
{
struct ib_qp *qp, *real_qp;
struct ib_device *device;
device = pd ? pd->device : qp_init_attr->xrcd->device;
- qp = device->create_qp(pd, qp_init_attr, NULL);
+ qp = device->create_qp(pd, qp_init_attr, udata);
if (!IS_ERR(qp)) {
qp->device = device;
return qp;
}
+EXPORT_SYMBOL(ib_create_qp_ex);
+
+
+struct ib_qp *ib_create_qp(struct ib_pd *pd,
+ struct ib_qp_init_attr *qp_init_attr)
+{
+ return ib_create_qp_ex(pd, qp_init_attr,NULL);
+}
EXPORT_SYMBOL(ib_create_qp);
static const struct {