Messages in this thread | | | Subject | Re: [PATCH 2/2] chardev: showing minor range for chardev in the output of /proc/devices | From | cgxu519 <> | Date | Tue, 12 Feb 2019 23:41:35 +0800 |
| |
On 2/12/19 11:20 PM, Greg KH wrote: > On Tue, Feb 12, 2019 at 11:18:22PM +0800, cgxu519 wrote: >> On 2/12/19 5:02 PM, Greg KH wrote: >>> On Tue, Feb 12, 2019 at 04:47:39PM +0800, Chengguang Xu wrote: >>>> Currently chardev allows to share major, showing >>>> major with minor range for chardev will be more >>>> helpful. >>>> >>>> Signed-off-by: Chengguang Xu <cgxu519@gmx.com> >>>> --- >>>> fs/char_dev.c | 4 +++- >>>> 1 file changed, 3 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/fs/char_dev.c b/fs/char_dev.c >>>> index b25b1da097d5..6f00acdeb308 100644 >>>> --- a/fs/char_dev.c >>>> +++ b/fs/char_dev.c >>>> @@ -55,7 +55,9 @@ void chrdev_show(struct seq_file *f, off_t offset) >>>> mutex_lock(&chrdevs_lock); >>>> for (cd = chrdevs[major_to_index(offset)]; cd; cd = cd->next) { >>>> if (cd->major == offset) >>>> - seq_printf(f, "%3d %s\n", cd->major, cd->name); >>>> + seq_printf(f, "%3d %s (%u-%u)\n", cd->major, cd->name, >>>> + cd->baseminor, >>>> + cd->baseminor + cd->minorct - 1); >>> You are changing the format of a userspace file, what tools are going to >>> break when you do this? >> I'll remove this part in V2. Do you have any idea how to get the minor >> range info for particular major? Or adding a similar file to somewhere >> under /sys is acceptable? > Why do you need to know the minor range? What can userspace do with > this that actually matters?
Assume that when we try to load a driver module and fail with -EBUSY because of minor range overlapping, then what can we do for this case? we even don't know what range has occupied and what range is available.
Also, I think we can obviously notice range overlapping bugs by showing all registered minor ranges.
Thanks, Chengguang.
| |