aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2007-02-20 16:57:48 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-20 20:10:13 -0500
commitb446b60e4eb5e5457120c4728ada871b1209c1d0 (patch)
tree1fcff840a5cfb61399b9eac843d5b74e9e6b45e0 /drivers/base
parentf4fa27c16ba9b6910c5b815e5c13a7e8249277f0 (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.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c
index a8ac34ba6107..d04fd33dcd91 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -28,6 +28,20 @@ int (*platform_notify)(struct device * dev) = NULL;
28int (*platform_notify_remove)(struct device * dev) = NULL; 28int (*platform_notify_remove)(struct device * dev) = NULL;
29 29
30/* 30/*
31 * Detect the LANANA-assigned LOCAL/EXPERIMENTAL majors
32 */
33bool is_lanana_major(unsigned int major)
34{
35 if (major >= 60 && major <= 63)
36 return 1;
37 if (major >= 120 && major <= 127)
38 return 1;
39 if (major >= 240 && major <= 254)
40 return 1;
41 return 0;
42}
43
44/*
31 * sysfs bindings for devices. 45 * sysfs bindings for devices.
32 */ 46 */
33 47