mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/drivers/bcma/main.c
 | |
| +++ b/drivers/bcma/main.c
 | |
| @@ -668,11 +668,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;
 | |
|  
 | |
| @@ -691,7 +716,7 @@ static int __init bcma_modinit(void)
 | |
|  
 | |
|  	return err;
 | |
|  }
 | |
| -fs_initcall(bcma_modinit);
 | |
| +module_init(bcma_modinit);
 | |
|  
 | |
|  static void __exit bcma_modexit(void)
 | |
|  {
 |