On 17.3.2022 16.15, Jason Gunthorpe wrote:
On Thu, Mar 17, 2022 at 08:58:52AM +0200, Mika Penttilä wrote:
@@ -1225,7 +1232,11 @@ static int dmirror_device_init(struct dmirror_device
*mdevice, int id)
cdev_init(&mdevice->cdevice, &dmirror_fops);
mdevice->cdevice.owner = THIS_MODULE;
- ret = cdev_add(&mdevice->cdevice, dev, 1);
+ device_initialize(&mdevice->device);
+ dev_set_name(&mdevice->device, "%s", dmirror_device_names[id]);
+ mdevice->device.devt = dev;
+
+ ret = cdev_device_add(&mdevice->cdevice, &mdevice->device);
if (ret)
return ret;
Right, miscdev isn't that helpful in the end..
Jason
To wrap up, I could send a v3 formal patch with either this cdev way or
the miscdev way.. Both eliminate the user space /proc/devices parsing
and mknod'ing. Jason brought up concerns using miscdevice like this,
although for this case it works correctly. miscdevice also provides a
little more cleanup and simpler code, but the difference is not huge. So
what do people prefer?
Thanks,
Mika