]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] module device table restoration
authorRusty Russell <rusty@rustcorp.com.au>
Wed, 20 Nov 2002 01:31:18 +0000 (17:31 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Wed, 20 Nov 2002 01:31:18 +0000 (17:31 -0800)
Patch from Adam Richter.  I have a nicer solution based on aliases, but
it requires coordination with USB, PCI and PCMCIA maintainers, which is
taking time.

This restores the old code in the meantime: one week without this is too
long for people who need it.

include/linux/module.h

index 47ff2bc63e335aef063c0e4095f978e76e1b8d96..927341a26c0eb8f3bc2cc0fed844a73561d1224e 100644 (file)
@@ -28,8 +28,6 @@
 #define MODULE_AUTHOR(name)
 #define MODULE_DESCRIPTION(desc)
 #define MODULE_SUPPORTED_DEVICE(name)
-#define MODULE_GENERIC_TABLE(gtype,name)
-#define MODULE_DEVICE_TABLE(type,name)
 #define MODULE_PARM_DESC(var,desc)
 #define print_modules()
 
@@ -41,14 +39,28 @@ struct kernel_symbol
 };
 
 #ifdef MODULE
+
+#define MODULE_GENERIC_TABLE(gtype,name)       \
+static const unsigned long __module_##gtype##_size \
+  __attribute__ ((unused)) = sizeof(struct gtype##_id); \
+static const struct gtype##_id * __module_##gtype##_table \
+  __attribute__ ((unused)) = name
+
 /* This is magically filled in by the linker, but THIS_MODULE must be
    a constant so it works in initializers. */
 extern struct module __this_module;
 #define THIS_MODULE (&__this_module)
-#else
+
+#else  /* !MODULE */
+
+#define MODULE_GENERIC_TABLE(gtype,name)
 #define THIS_MODULE ((struct module *)0)
+
 #endif
 
+#define MODULE_DEVICE_TABLE(type,name)         \
+  MODULE_GENERIC_TABLE(type##_device,name)
+
 struct kernel_symbol_group
 {
        /* Links us into the global symbol list */