diff options
author | Aaron Sierra <asierra@xes-inc.com> | 2013-12-09 09:54:42 -0600 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-12-17 17:06:19 -0800 |
commit | c326cc023e40ef741751a084b72796947bd37a66 (patch) | |
tree | e3a744b70fc06f323369033ae7014eb3476188d1 /drivers/vme | |
parent | e56b1401056288a725d50942ef300dcbed5e519a (diff) |
vme: Convert VME core to register as a subsystem
Previously, VME bridge support was treated as any other driver (using
module_init() macro), but if VME bridge and vme_user (staging) drivers
were compiled into the kernel, then vme_user would attempt to register
itself before the VME core support had been loaded. This would result
in a kernel panic.
The load order of these built-in drivers is based on the order in which
drivers/staging/vme and driver/vme are compiled.
This patch changes the VME core driver to use the subsys_initcall()
macro which ensures that it is loaded before all other VME drivers
regardless of the order in which they are compiled.
Tested-by: Aaron Sierra <asierra@xes-inc.com>
Signed-off-by: Martyn Welch <martyn.welch@ge.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/vme')
-rw-r--r-- | drivers/vme/Kconfig | 2 | ||||
-rw-r--r-- | drivers/vme/vme.c | 6 |
2 files changed, 2 insertions, 6 deletions
diff --git a/drivers/vme/Kconfig b/drivers/vme/Kconfig index c5c22465a80..a6a6f955911 100644 --- a/drivers/vme/Kconfig +++ b/drivers/vme/Kconfig @@ -3,7 +3,7 @@ # menuconfig VME_BUS - tristate "VME bridge support" + bool "VME bridge support" depends on PCI ---help--- If you say Y here you get support for the VME bridge Framework. diff --git a/drivers/vme/vme.c b/drivers/vme/vme.c index 96562c9a8b1..7516030037a 100644 --- a/drivers/vme/vme.c +++ b/drivers/vme/vme.c @@ -1525,9 +1525,5 @@ static void __exit vme_exit(void) bus_unregister(&vme_bus_type); } -MODULE_DESCRIPTION("VME bridge driver framework"); -MODULE_AUTHOR("Martyn Welch <martyn.welch@ge.com"); -MODULE_LICENSE("GPL"); - -module_init(vme_init); +subsys_initcall(vme_init); module_exit(vme_exit); |