diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2007-02-20 13:57:48 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-20 17:10:13 -0800 |
commit | b446b60e4eb5e5457120c4728ada871b1209c1d0 (patch) | |
tree | 1fcff840a5cfb61399b9eac843d5b74e9e6b45e0 /drivers/base | |
parent | f4fa27c16ba9b6910c5b815e5c13a7e8249277f0 (diff) |
[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 <eike-kernel@sf-tec.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/core.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index a8ac34ba610..d04fd33dcd9 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -28,6 +28,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. */ |