mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	* properly format/comment all patches * merge debloat patches * merge Kconfig patches * merge swconfig patches * merge hotplug patches * drop 200-fix_localversion.patch - upstream * drop 222-arm_zimage_none.patch - unused * drop 252-mv_cesa_depends.patch - no longer required * drop 410-mtd-move-forward-declaration-of-struct-mtd_info.patch - unused * drop 661-fq_codel_keep_dropped_stats.patch - outdated * drop 702-phy_add_aneg_done_function.patch - upstream * drop 840-rtc7301.patch - unused * drop 841-rtc_pt7c4338.patch - upstream * drop 921-use_preinit_as_init.patch - unused * drop spio-gpio-old and gpio-mmc - unused Signed-off-by: John Crispin <john@phrozen.org>
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/drivers/bcma/main.c
 | 
						|
+++ b/drivers/bcma/main.c
 | 
						|
@@ -672,11 +672,36 @@ static int bcma_device_uevent(struct dev
 | 
						|
 			      core->id.rev, core->id.class);
 | 
						|
 }
 | 
						|
 
 | 
						|
-static int __init bcma_modinit(void)
 | 
						|
+static unsigned int bcma_bus_registered;
 | 
						|
+
 | 
						|
+/*
 | 
						|
+ * If built-in, bus has to be registered early, before any driver calls
 | 
						|
+ * bcma_driver_register.
 | 
						|
+ * Otherwise registering driver would trigger BUG in driver_register.
 | 
						|
+ */
 | 
						|
+static int __init bcma_init_bus_register(void)
 | 
						|
 {
 | 
						|
 	int err;
 | 
						|
 
 | 
						|
+	if (bcma_bus_registered)
 | 
						|
+		return 0;
 | 
						|
+
 | 
						|
 	err = bus_register(&bcma_bus_type);
 | 
						|
+	if (!err)
 | 
						|
+		bcma_bus_registered = 1;
 | 
						|
+
 | 
						|
+	return err;
 | 
						|
+}
 | 
						|
+#ifndef MODULE
 | 
						|
+fs_initcall(bcma_init_bus_register);
 | 
						|
+#endif
 | 
						|
+
 | 
						|
+/* Main initialization has to be done with SPI/mtd/NAND/SPROM available */
 | 
						|
+static int __init bcma_modinit(void)
 | 
						|
+{
 | 
						|
+	int err;
 | 
						|
+
 | 
						|
+	err = bcma_init_bus_register();
 | 
						|
 	if (err)
 | 
						|
 		return err;
 | 
						|
 
 | 
						|
@@ -695,7 +720,7 @@ static int __init bcma_modinit(void)
 | 
						|
 
 | 
						|
 	return err;
 | 
						|
 }
 | 
						|
-fs_initcall(bcma_modinit);
 | 
						|
+module_init(bcma_modinit);
 | 
						|
 
 | 
						|
 static void __exit bcma_modexit(void)
 | 
						|
 {
 |