Re: [PATCH] misc: use a proper range for minor number dynamicallocation

From: Thadeu Lima de Souza Cascardo
Date: Mon Nov 09 2009 - 18:29:50 EST


On Mon, Nov 09, 2009 at 08:02:57PM -0200, Thadeu Lima de Souza Cascardo wrote:
> >
> > Is that a bugfix for the existing code?
> >
> > If so, please split that out into a separate patch which we can review
> > and apply promptly while we consider the broader problem which you've
> > identified.
>
> We could consider buggy the caller which asks for the same device name
> more than once, without unregistering the first device. But better safe
> than sorry: we should protect the correct drivers from the buggy ones
> and avoid a depletion of the minor numbers. And, in case the driver core
> returns another error for another reason (from device_create), we do the
> right thing.
>
> I will send it right now.
>
> Regards,
> Cascardo.

I've just tried to create a single and separate patch, but that would
let lots of related bugs around.

First of all, the current code does not use the bitmap idiom. Should I
use it on my fix and let all the other bitmap manipulations as is, or
should I use the current and less readable style?

Second, this single fix would match the same test currently in
misc_deregister, which is broken, since it does not test for the 0
minor.

Thus, I am sending a patch which fixes those two issues using the
current style, a fix for the style itself, and a change from the current
range to something that could have its range easily fixed. However,
regarding that last change, it will still use bitmaps, which may not be
appropriate for large ranges.

Perhaps, using a idr instead of the list and bitmap couple, may be
sensible. What do you think about it?

Attachment: signature.asc
Description: Digital signature