RDMA: modify_device improvements
Subsystems (3)
cover RDMA: modify_device improvements
This series includes three patches which fix the return values from modify_device() callbacks when they aren't supported.
Kamal Heib (3):
RDMA/core: Fix return code when modify_device isn't supported RDMA/bnxt_re: Remove unsupported modify_device callback RDMA/rxe: Verify modify_device mask
drivers/infiniband/core/device.c | 2 +- drivers/infiniband/core/sysfs.c | 2 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 18 ------------------ drivers/infiniband/hw/bnxt_re/ib_verbs.h | 3 --- drivers/infiniband/hw/bnxt_re/main.c | 1 - drivers/infiniband/sw/rxe/rxe_verbs.c | 4 ++++ 6 files changed, 6 insertions(+), 24 deletions(-)
Signature · 1 line
2.20.1
PATCH 1/3 RDMA/core: Fix return code when modify_device isn't supported
The proper return code is "-EOPNOTSUPP" when modify_device callback is not supported.
--- drivers/infiniband/core/device.c | 2 +- drivers/infiniband/core/sysfs.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/infiniband/core/device.c +1 -1
@@ -2365,7 +2365,7 @@ int ib_modify_device(struct ib_device *device, struct ib_device_modify *device_modify) {if (!device->ops.modify_device) -return -ENOSYS ; +return -EOPNOTSUPP ;return device->ops.modify_device (device, device_modify_mask, device_modify);
drivers/infiniband/core/sysfs.c +1 -1
@@ -1268,7 +1268,7 @@ static ssize_t node_desc_store(struct device *device,int ret;if (!dev->ops.modify_device) -return -EIO ; +return -EOPNOTSUPP ;memcpy (desc.node_desc, buf,min_t (int, count,IB_DEVICE_NODE_DESC_MAX )); ret =ib_modify_device (dev,IB_DEVICE_MODIFY_NODE_DESC , &desc);
Signature · 1 line
2.20.1
PATCH 2/3 RDMA/bnxt_re: Remove unsupported modify_device callback
In reply to Kamal HeibThere is no need to return always zero for function which is not supported.
--- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 18 ------------------ drivers/infiniband/hw/bnxt_re/ib_verbs.h | 3 --- drivers/infiniband/hw/bnxt_re/main.c | 1 - 3 files changed, 22 deletions(-)
drivers/infiniband/hw/bnxt_re/ib_verbs.c +0 -18
@@ -191,24 +191,6 @@ int bnxt_re_query_device(struct ib_device *ibdev,return 0 ; } -int bnxt_re_modify_device (struct ib_device *ibdev, -int device_modify_mask, -struct ib_device_modify *device_modify) -{ -switch (device_modify_mask) { -case IB_DEVICE_MODIFY_SYS_IMAGE_GUID : -/* Modify the GUID requires the modification of the GID table */ -/* GUID should be made as READ-ONLY */ -break ; -case IB_DEVICE_MODIFY_NODE_DESC : -/* Node Desc should be made as READ-ONLY */ -break ; -default : -break ; - } -return 0 ; -} -/* Port */ int bnxt_re_query_port (struct ib_device *ibdev,u8 port_num,struct ib_port_attr *port_attr)
drivers/infiniband/hw/bnxt_re/ib_verbs.h +0 -3
@@ -145,9 +145,6 @@ struct bnxt_re_ucontext {int bnxt_re_query_device (struct ib_device *ibdev,struct ib_device_attr *ib_attr,struct ib_udata *udata); -int bnxt_re_modify_device (struct ib_device *ibdev, -int device_modify_mask, -struct ib_device_modify *device_modify);int bnxt_re_query_port (struct ib_device *ibdev,u8 port_num,struct ib_port_attr *port_attr); int bnxt_re_get_port_immutable(struct ib_device *ibdev, u8 port_num,
drivers/infiniband/hw/bnxt_re/main.c +0 -1
@@ -625,7 +625,6 @@ static const struct ib_device_ops bnxt_re_dev_ops = { .map_mr_sg = bnxt_re_map_mr_sg, .mmap = bnxt_re_mmap, .modify_ah = bnxt_re_modify_ah, - .modify_device = bnxt_re_modify_device, .modify_qp = bnxt_re_modify_qp, .modify_srq = bnxt_re_modify_srq, .poll_cq = bnxt_re_poll_cq,
Signature · 1 line
2.20.1
PATCH 3/3 RDMA/rxe: Verify modify_device mask
In reply to Kamal HeibVerify that the passed mask to rxe_modify_device() is supported.
--- drivers/infiniband/sw/rxe/rxe_verbs.c | 4 ++++ 1 file changed, 4 insertions(+)
drivers/infiniband/sw/rxe/rxe_verbs.c +4 -0
@@ -106,6 +106,10 @@ static int rxe_modify_device(struct ib_device *dev, {struct rxe_dev *rxe =to_rdev (dev); +if (mask & ~(IB_DEVICE_MODIFY_SYS_IMAGE_GUID | +IB_DEVICE_MODIFY_NODE_DESC )) +return -EOPNOTSUPP ; +if (mask &IB_DEVICE_MODIFY_SYS_IMAGE_GUID ) rxe->attr.sys_image_guid =cpu_to_be64 (attr->sys_image_guid);
Signature · 1 line
2.20.1
Jason Gunthorpe
AppliedQuoted 7 lines · Kamal Heib
This series includes three patches which fix the return values from
modify_device()callbacks when they aren't supported.Kamal Heib (3):
RDMA/core: Fix return code whenmodify_deviceisn't supported RDMA/bnxt_re: Remove unsupportedmodify_devicecallback RDMA/rxe: Verifymodify_devicemask
Applied to for-next, thanks
Jason