[PATCH] rework reserved major handling

Several people have reported failures in dynamic major device number handling
due to the recent changes in there to avoid handing out the local/experimental
majors.

Rolf reports that this is due to a gcc-4.1.0 bug.

The patch refactors that code a lot in an attempt to provoke the compiler into
behaving.

Cc: Rolf Eike Beer <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
Andrew Morton 2007-02-20 13:57:48 -08:00 • committed by Linus Torvalds
commit b446b60e4e
4 changed files with 19 additions and 13 deletions

View file

@ -27,6 +27,20 @@
int (*platform_notify)(struct device * dev) = NULL;
int (*platform_notify_remove)(struct device * dev) = NULL;
/*
* Detect the LANANA-assigned LOCAL/EXPERIMENTAL majors
*/
bool is_lanana_major(unsigned int major)
{
if (major >= 60 && major <= 63)
return 1;
if (major >= 120 && major <= 127)
return 1;
if (major >= 240 && major <= 254)
return 1;
return 0;
}
/*
* sysfs bindings for devices.
*/