2019-02-12 06:04:46

by Chengguang Xu

[permalink] [raw]
Subject: [PATCH] mei: expand minor range when registering chrdev region

Actually, total amount of available minor number
for a single major is MINORMARK + 1. So expand
minor range when registering chrdev region.

Signed-off-by: Chengguang Xu <[email protected]>
---
drivers/misc/mei/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c
index 87281b3695e6..3df54f1e1a8b 100644
--- a/drivers/misc/mei/main.c
+++ b/drivers/misc/mei/main.c
@@ -869,7 +869,7 @@ static const struct file_operations mei_fops = {

static struct class *mei_class;
static dev_t mei_devt;
-#define MEI_MAX_DEVS MINORMASK
+#define MEI_MAX_DEVS (MINORMASK + 1)
static DEFINE_MUTEX(mei_minor_lock);
static DEFINE_IDR(mei_idr);

--
2.20.1



2019-02-12 09:30:40

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] mei: expand minor range when registering chrdev region

On Tue, Feb 12, 2019 at 02:02:52PM +0800, Chengguang Xu wrote:
> Actually, total amount of available minor number
> for a single major is MINORMARK + 1. So expand
> minor range when registering chrdev region.
>
> Signed-off-by: Chengguang Xu <[email protected]>
> ---
> drivers/misc/mei/main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c
> index 87281b3695e6..3df54f1e1a8b 100644
> --- a/drivers/misc/mei/main.c
> +++ b/drivers/misc/mei/main.c
> @@ -869,7 +869,7 @@ static const struct file_operations mei_fops = {
>
> static struct class *mei_class;
> static dev_t mei_devt;
> -#define MEI_MAX_DEVS MINORMASK
> +#define MEI_MAX_DEVS (MINORMASK + 1)

Why is this needed? Have you really run out of that many minor nodes
for this driver?

thanks,

greg k-h

2019-02-12 15:05:44

by Chengguang Xu

[permalink] [raw]
Subject: Re: [PATCH] mei: expand minor range when registering chrdev region

On 2/12/19 5:29 PM, Greg KH wrote:
> On Tue, Feb 12, 2019 at 02:02:52PM +0800, Chengguang Xu wrote:
>> Actually, total amount of available minor number
>> for a single major is MINORMARK + 1. So expand
>> minor range when registering chrdev region.
>>
>> Signed-off-by: Chengguang Xu <[email protected]>
>> ---
>> drivers/misc/mei/main.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c
>> index 87281b3695e6..3df54f1e1a8b 100644
>> --- a/drivers/misc/mei/main.c
>> +++ b/drivers/misc/mei/main.c
>> @@ -869,7 +869,7 @@ static const struct file_operations mei_fops = {
>>
>> static struct class *mei_class;
>> static dev_t mei_devt;
>> -#define MEI_MAX_DEVS MINORMASK
>> +#define MEI_MAX_DEVS (MINORMASK + 1)
> Why is this needed? Have you really run out of that many minor nodes
> for this driver?

Not really, practically maybe we cannot reach to the limit.
I was just curious why only one minor number left there and assumed
that was from a mistake(since I've seen similar mistake in other driver).
However, if it explicitly sets to MINORMASK for some reasons, then it's
better to keep as is.

Thanks





2019-02-12 15:24:30

by Tomas Winkler

[permalink] [raw]
Subject: RE: [PATCH] mei: expand minor range when registering chrdev region


>
> On 2/12/19 5:29 PM, Greg KH wrote:
> > On Tue, Feb 12, 2019 at 02:02:52PM +0800, Chengguang Xu wrote:
> >> Actually, total amount of available minor number for a single major
> >> is MINORMARK + 1. So expand minor range when registering chrdev
> >> region.
> >>
> >> Signed-off-by: Chengguang Xu <[email protected]>
> >> ---
> >> drivers/misc/mei/main.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c index
> >> 87281b3695e6..3df54f1e1a8b 100644
> >> --- a/drivers/misc/mei/main.c
> >> +++ b/drivers/misc/mei/main.c
> >> @@ -869,7 +869,7 @@ static const struct file_operations mei_fops = {
> >>
> >> static struct class *mei_class;
> >> static dev_t mei_devt;
> >> -#define MEI_MAX_DEVS MINORMASK
> >> +#define MEI_MAX_DEVS (MINORMASK + 1)
> > Why is this needed? Have you really run out of that many minor nodes
> > for this driver?
>
> Not really, practically maybe we cannot reach to the limit.
> I was just curious why only one minor number left there and assumed that was
> from a mistake(since I've seen similar mistake in other driver).
> However, if it explicitly sets to MINORMASK for some reasons, then it's better
> to keep as is.

I guess this was a boilerplate code, but I'm sure we don't need so many devices.

Thanks
Tomas