[PATCH] staging: vchiq: convert to use a miscdevice

Greg Kroah-Hartman gregkh at linuxfoundation.org
Fri Sep 10 05:05:19 PDT 2021


On Fri, Sep 10, 2021 at 05:10:04PM +0530, Ojaswin Mujoo wrote:
> On Tue, Sep 07, 2021 at 01:50:45PM +0200, Greg Kroah-Hartman wrote:
> > Using a struct class, a cdev, and another device just for a single minor
> > device is total overkill.  Just use a dynamic misc device instead,
> > saving lots of logic and memory.
> 
> Hello Greg,
> 
> I got some time to test this out at my end. This seems to work correctly
> however there's a small change in permissions applied to /dev/vchiq that
> is causing tests to break.
> 
> * Permissions before the patch *
> $ ls -l /dev/vchiq 
> crw-rw---- 1 root video 235, 0 May  7 17:33 vchiq
> 
> * Permissions after the patch *
> $ ls -l /dev/vchiq 
> crw------- 1 root root 10, 125 May  7 17:30 vchiq
> 
> As seen above, after the patch, the cdev is only accessible by root user,
> which is causing the tests ($ vchiq_test -f 10) to fail when run as
> non-root.

Ah, that's not under the kernel's control, but as you point out, it's a
udev issue.

> I believe assigning the permission and "video" group to /dev/vchiq is
> handled by udev, in the downstream pi OS, as seen in this line in
> /lib/udev/rules.d/10-local-rpi.rules file:
> 
> SUBSYSTEM=="vchiq", GROUP="video", MODE="0660" 
> 
> I'm not completely sure how the SUBSYSTEM part is passed to udev from
> the kernel modules, however seems like the miscdevice is not notifying
> udev correctly (?).

No, the SUBSYSTEM for this device has changed from "vchiq" to "misc".

Having a whole subsystem for just one character device is crazy, which
is why I did the kernel change.

Try changing the line in the udev file to:

	NAME=="vchiq", GROUP="video", MODE="0660"

(SUBSYSTEM changes to NAME) and see if that works both on the newer
kernel, and on the older ones as
well.

thanks,

greg k-h



More information about the linux-arm-kernel mailing list