Re: [PATCH v2] mm/hmm/test: simplify hmm test code: use miscdevice instead of char dev

From: Mika Penttilä
Date: Thu Mar 17 2022 - 22:34:32 EST




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