On 9/27/2023 1:33 AM, Greg KH wrote:
On Wed, Sep 27, 2023 at 08:04:42AM +0000, Wei Liu wrote:
So, the driver is supposed to stash a pointer to struct device in
private_data. That's what I alluded to in my previous reply. The core
driver framework or the VFS doesn't give us a reference to struct
device. We have to do it ourselves.
Please read Linux Device Drivers, 3rd edition, chapter 3, for how to do
this properly. The book is free online.
Thanks, the issue that confused us was how to get the miscdevice.
I eventually found the answer in the misc_register() documentation:
"By default, an open() syscall to the device sets file->private_data to
point to the structure."
That's good - when we create a guest, we will have the miscdevice
in private_data already. Then we can just put it in our per-guest data
structure. That will let us retrieve the device in the other ioctls so
we can call dev_*().
Thanks,
Nuno