diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c index 646a57eaf093593ed4afd2a105e132ab375c31ba..8824040a482ebfe0cabcddbd1c7089a6fb961850 100644 --- a/drivers/infiniband/core/device.c +++ b/drivers/infiniband/core/device.c @@ -1441,8 +1441,10 @@ int ib_register_device(struct ib_device *device, const char *name, return ret; } dev_set_uevent_suppress(&device->dev, false); + down_read(&devices_rwsem); /* Mark for userspace that device is ready */ kobject_uevent(&device->dev.kobj, KOBJ_ADD); + up_read(&devices_rwsem); ib_device_put(device); return 0;