summaryrefslogtreecommitdiff
path: root/drivers/base/core.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2007-02-21 00:57:48 +0300
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-21 04:10:13 +0300
commitb446b60e4eb5e5457120c4728ada871b1209c1d0 (patch)
tree1fcff840a5cfb61399b9eac843d5b74e9e6b45e0 /drivers/base/core.c
parentf4fa27c16ba9b6910c5b815e5c13a7e8249277f0 (diff)
downloadlinux-b446b60e4eb5e5457120c4728ada871b1209c1d0.tar.xz
[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/core.c')
-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;
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.
*/