IB/core: Simplify rdma cgroup registration
authorParav Pandit <parav@mellanox.com>
Thu, 17 Jan 2019 18:14:15 +0000 (20:14 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Fri, 18 Jan 2019 20:43:10 +0000 (13:43 -0700)
RDMA cgroup registration routine always returns success, so simplify
function to be void and run clang formatter over whole CONFIG_CGROUP_RDMA
art of core_priv.h.

This reduces unwinding error path for regular registration and future net
namespace change functionality for rdma device.

Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/cgroup.c
drivers/infiniband/core/core_priv.h
drivers/infiniband/core/device.c
include/linux/cgroup_rdma.h
kernel/cgroup/rdma.c

index 126ac5f99db7adffb7509ca1b0b9a9dff253f919..388fd04e5f636644c9e494eb95f7fbe5963baa0c 100644 (file)
  * Register with the rdma cgroup. Should be called before
  * exposing rdma device to user space applications to avoid
  * resource accounting leak.
- * Returns 0 on success or otherwise failure code.
  */
-int ib_device_register_rdmacg(struct ib_device *device)
+void ib_device_register_rdmacg(struct ib_device *device)
 {
        device->cg_device.name = device->name;
-       return rdmacg_register_device(&device->cg_device);
+       rdmacg_register_device(&device->cg_device);
 }
 
 /**
index aca75c74e451c61ca3a776d13581141809f30468..42a49982f66ec0593fe7203fc25c1add72688728 100644 (file)
@@ -115,7 +115,7 @@ void ib_cache_cleanup_one(struct ib_device *device);
 void ib_cache_release_one(struct ib_device *device);
 
 #ifdef CONFIG_CGROUP_RDMA
-int ib_device_register_rdmacg(struct ib_device *device);
+void ib_device_register_rdmacg(struct ib_device *device);
 void ib_device_unregister_rdmacg(struct ib_device *device);
 
 int ib_rdmacg_try_charge(struct ib_rdmacg_object *cg_obj,
@@ -126,21 +126,26 @@ void ib_rdmacg_uncharge(struct ib_rdmacg_object *cg_obj,
                        struct ib_device *device,
                        enum rdmacg_resource_type resource_index);
 #else
-static inline int ib_device_register_rdmacg(struct ib_device *device)
-{ return 0; }
+static inline void ib_device_register_rdmacg(struct ib_device *device)
+{
+}
 
 static inline void ib_device_unregister_rdmacg(struct ib_device *device)
-{ }
+{
+}
 
 static inline int ib_rdmacg_try_charge(struct ib_rdmacg_object *cg_obj,
                                       struct ib_device *device,
                                       enum rdmacg_resource_type resource_index)
-{ return 0; }
+{
+       return 0;
+}
 
 static inline void ib_rdmacg_uncharge(struct ib_rdmacg_object *cg_obj,
                                      struct ib_device *device,
                                      enum rdmacg_resource_type resource_index)
-{ }
+{
+}
 #endif
 
 static inline bool rdma_is_upper_dev_rcu(struct net_device *dev,
index 4a9aa6d10c5e304c35e96d6b34c8743e0f46d83d..200431c540f22a784b8a37b5b98895d1c75d49a9 100644 (file)
@@ -599,12 +599,7 @@ int ib_register_device(struct ib_device *device, const char *name)
 
        device->index = __dev_new_index();
 
-       ret = ib_device_register_rdmacg(device);
-       if (ret) {
-               dev_warn(&device->dev,
-                        "Couldn't register device with rdma cgroup\n");
-               goto dev_cleanup;
-       }
+       ib_device_register_rdmacg(device);
 
        ret = ib_device_register_sysfs(device);
        if (ret) {
@@ -627,7 +622,6 @@ int ib_register_device(struct ib_device *device, const char *name)
 
 cg_cleanup:
        ib_device_unregister_rdmacg(device);
-dev_cleanup:
        cleanup_device(device);
 out:
        mutex_unlock(&device_mutex);
index e94290b29e99ffb97d7bd0bc57c54f4a88783612..ef1bae2983f3c8ec2498c6abcf8e17d6cde5467f 100644 (file)
@@ -39,7 +39,7 @@ struct rdmacg_device {
  * APIs for RDMA/IB stack to publish when a device wants to
  * participate in resource accounting
  */
-int rdmacg_register_device(struct rdmacg_device *device);
+void rdmacg_register_device(struct rdmacg_device *device);
 void rdmacg_unregister_device(struct rdmacg_device *device);
 
 /* APIs for RDMA/IB stack to charge/uncharge pool specific resources */
index d3bbb757ee49ce070c934a67dbc5ab86cbb121a7..1d75ae7f1cb71a0ae5281fe2874600c0fef95e3c 100644 (file)
@@ -313,10 +313,8 @@ EXPORT_SYMBOL(rdmacg_try_charge);
  * If IB stack wish a device to participate in rdma cgroup resource
  * tracking, it must invoke this API to register with rdma cgroup before
  * any user space application can start using the RDMA resources.
- * Returns 0 on success or EINVAL when table length given is beyond
- * supported size.
  */
-int rdmacg_register_device(struct rdmacg_device *device)
+void rdmacg_register_device(struct rdmacg_device *device)
 {
        INIT_LIST_HEAD(&device->dev_node);
        INIT_LIST_HEAD(&device->rpools);
@@ -324,7 +322,6 @@ int rdmacg_register_device(struct rdmacg_device *device)
        mutex_lock(&rdmacg_mutex);
        list_add_tail(&device->dev_node, &rdmacg_devices);
        mutex_unlock(&rdmacg_mutex);
-       return 0;
 }
 EXPORT_SYMBOL(rdmacg_register_device);