mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 13:11:40 +00:00
RDMA/core: Fix return code when modify_port isn't supported
Improve return code from ib_modify_port() by doing the following:
- Use "-EOPNOTSUPP" instead "-ENOSYS" which is the proper return code
- Allow only fake IB_PORT_CM_SUP manipulation for RoCE providers that
didn't implement the modify_port callback, otherwise return
"-EOPNOTSUPP"
Fixes: 61e0962d52
("IB: Avoid ib_modify_port() failure for RoCE devices")
Link: https://lore.kernel.org/r/20191028155931.1114-2-kamalheib1@gmail.com
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
b4bc766097
commit
55bfe905fa
@ -2408,8 +2408,12 @@ int ib_modify_port(struct ib_device *device,
|
||||
rc = device->ops.modify_port(device, port_num,
|
||||
port_modify_mask,
|
||||
port_modify);
|
||||
else if (rdma_protocol_roce(device, port_num) &&
|
||||
((port_modify->set_port_cap_mask & ~IB_PORT_CM_SUP) == 0 ||
|
||||
(port_modify->clr_port_cap_mask & ~IB_PORT_CM_SUP) == 0))
|
||||
rc = 0;
|
||||
else
|
||||
rc = rdma_protocol_roce(device, port_num) ? 0 : -ENOSYS;
|
||||
rc = -EOPNOTSUPP;
|
||||
return rc;
|
||||
}
|
||||
EXPORT_SYMBOL(ib_modify_port);
|
||||
|
Loading…
Reference in New Issue
Block a user