On Wed, May 01, 2019 at 08:46:19AM +0300, Leon Romanovsky wrote: > From: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > When the refcount is 0 the device is invisible to netlink. However > in the patch below the refcount = 1 was moved to after the device_add(). > This creates a race where userspace can issue a netlink query after the > device_add() event and not see the device as visible. > > Ensure that no uevent is fired before device is fully registered. > > Fixes: d79af7242bb2 ("RDMA/device: Expose ib_device_try_get(()") > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> > drivers/infiniband/core/device.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c > index 8ae4906a60e7..4cdc8588df7f 100644 > +++ b/drivers/infiniband/core/device.c > @@ -808,6 +808,7 @@ static int add_one_compat_dev(struct ib_device *device, > cdev->dev.release = compatdev_release; > dev_set_name(&cdev->dev, "%s", dev_name(&device->dev)); > > + dev_set_uevent_suppress(&device->dev, true); > ret = device_add(&cdev->dev); > if (ret) > goto add_err; compat devices definitely should not be doing this.. Jason