On Wed, Jun 26, 2019 at 03:17:47PM +0000, Song Liu wrote: > >> +static struct miscdevice bpf_dev = { > >> + .minor = MISC_DYNAMIC_MINOR, > >> + .name = "bpf", > >> + .fops = &bpf_chardev_ops, > >> + .mode = 0440, > >> + .nodename = "bpf", > > > > Here's what kvm does: > > > > static struct miscdevice kvm_dev = { > > KVM_MINOR, > > "kvm", > > &kvm_chardev_ops, > > }; Ick, I thought we converted all of these to named initializers a long time ago :) > > Is there an actual reason that mode is not 0 by default in bpf case? Why > > we need to define nodename? > > Based on my understanding, mode of 0440 is what we want. If we leave it > as 0, it will use default value of 0600. I guess we can just set it to > 0440, as user space can change it later anyway. Don't rely on userspace changing it, set it to what you want the permissions to be in the kernel here, otherwise you have to create a new udev rule and get it merged into all of the distros. Just do it right the first time and there is no need for it. What is wrong with 0600 for this? Why 0440? thanks, greg k-h