diff options
author | Jason Gunthorpe <jgg@mellanox.com> | 2019-02-13 07:12:55 +0300 |
---|---|---|
committer | Jason Gunthorpe <jgg@mellanox.com> | 2019-02-20 06:52:18 +0300 |
commit | 6cc2c8e535ec19153714cee62e11e4d9ac2ea953 (patch) | |
tree | 0c9f07b2e1b2e1249d6bbafda3d9557a6074ee49 /drivers/infiniband/sw/rxe/rxe_sysfs.c | |
parent | c367074b6c37c2d2d45cb60a15b829eefbcee0f1 (diff) | |
download | linux-6cc2c8e535ec19153714cee62e11e4d9ac2ea953.tar.xz |
RDMA/rxe: Add ib_device_get_by_name() and use it in rxe
rxe has an open coded version of this that is not as safe as the core
version. This lets us eliminate the internal device list entirely from
rxe.
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/infiniband/sw/rxe/rxe_sysfs.c')
-rw-r--r-- | drivers/infiniband/sw/rxe/rxe_sysfs.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/infiniband/sw/rxe/rxe_sysfs.c b/drivers/infiniband/sw/rxe/rxe_sysfs.c index c8630638cd57..d51b55b0a311 100644 --- a/drivers/infiniband/sw/rxe/rxe_sysfs.c +++ b/drivers/infiniband/sw/rxe/rxe_sysfs.c @@ -101,7 +101,7 @@ static int rxe_param_set_remove(const char *val, const struct kernel_param *kp) { int len; char intf[32]; - struct rxe_dev *rxe; + struct ib_device *ib_dev; len = sanitize_arg(val, intf, sizeof(intf)); if (!len) { @@ -115,14 +115,13 @@ static int rxe_param_set_remove(const char *val, const struct kernel_param *kp) return 0; } - rxe = get_rxe_by_name(intf); - - if (!rxe) { + ib_dev = ib_device_get_by_name(intf, RDMA_DRIVER_RXE); + if (!ib_dev) { pr_err("not configured on %s\n", intf); return -EINVAL; } - ib_unregister_device(&rxe->ib_dev); + ib_unregister_device_and_put(ib_dev); return 0; } |