From b446b60e4eb5e5457120c4728ada871b1209c1d0 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Tue, 20 Feb 2007 13:57:48 -0800 Subject: [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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/base/core.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'drivers') 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 @@ -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. */ -- cgit v1.2.3