From: Leon Romanovsky <leonro@xxxxxxxxxxxx> Changelog v1->v2: - Dropped horizontal white spaces - Use c99 flex array syntax for ports - Changed code for dev_release() to do ib_umad_dev_put() - Use struct_size() - Changed the patch order to use umad_class.name that reduced one patch v0->v1: - Address Jason's comment to reuse class name during char device creation time - Changed subject from RDMA/umad to IB/umad to be consistent with rest patches - Removed extra space after comment in patch-2 ---------------------------------------------- >From Parav, Refactor ib_umad class and device registration code for following items. 1. To make use of more static definitions and utilize class_groups and dev_groups to register class and device specific attributes This is similar to commits b53b1c08a23e and c5c4d92e70f3 for ib_uverbs module. 2. Use kref instead of kobject as its lighter for ib_umad_device reference counting. 3. Avoid accessing undefined dev->name during ioctl() operation for device under destruction. 4. Refactor for minor cosmetics for alignments. 5. Return more appropriate error code instead of -1. Thanks Parav Pandit (5): IB/umad: Simplify and avoid dynamic allocation of class IB/umad: Avoid destroying device while it is accessed IB/umad: Refactor code to use cdev_device_add() IB/umad: Use class_groups and let core create class file IB/umad: Start using dev_groups of class drivers/infiniband/core/user_mad.c | 241 +++++++++++++++-------------- 1 file changed, 124 insertions(+), 117 deletions(-) -- 2.19.1