aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2007-02-20 13:57:48 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-20 17:10:13 -0800
commitb446b60e4eb5e5457120c4728ada871b1209c1d0 (patch)
tree1fcff840a5cfb61399b9eac843d5b74e9e6b45e0 /drivers/base
parent[PATCH] minix v3: fix superblock definition (diff)
downloadlinux-dev-b446b60e4eb5e5457120c4728ada871b1209c1d0.tar.xz
linux-dev-b446b60e4eb5e5457120c4728ada871b1209c1d0.zip
[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;
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.
*/