mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	init: move THIS_MODULE from <linux/export.h> to <linux/init.h>
Commit f50169324d ("module.h: split out the EXPORT_SYMBOL into
export.h") appropriately separated EXPORT_SYMBOL into <linux/export.h>
because modules and EXPORT_SYMBOL are orthogonal; modules are symbol
consumers, while EXPORT_SYMBOL are used by symbol providers, which
may not be necessarily a module.
However, that commit also relocated THIS_MODULE. As explained in the
commit description, the intention was to define THIS_MODULE in a
lightweight header, but I do not believe <linux/export.h> was the
best location because EXPORT_SYMBOL and THIS_MODULE are unrelated.
Move it to another lightweight header, <linux/init.h>. The reason for
choosing <linux/init.h> is to make <linux/moduleparam.h> self-contained
without relying on <linux/linkage.h> incorrectly including
<linux/export.h>.
With this adjustment, the role of <linux/export.h> becomes clearer as
it only defines EXPORT_SYMBOL.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
			
			
This commit is contained in:
		
							parent
							
								
									6262afa10e
								
							
						
					
					
						commit
						5b20755b77
					
				
					 2 changed files with 7 additions and 18 deletions
				
			
		|  | @ -6,15 +6,6 @@ | |||
| #include <linux/linkage.h> | ||||
| #include <linux/stringify.h> | ||||
| 
 | ||||
| /*
 | ||||
|  * Export symbols from the kernel to modules.  Forked from module.h | ||||
|  * to reduce the amount of pointless cruft we feed to gcc when only | ||||
|  * exporting a simple symbol or two. | ||||
|  * | ||||
|  * Try not to add #includes here.  It slows compilation and makes kernel | ||||
|  * hackers place grumpy comments in header files. | ||||
|  */ | ||||
| 
 | ||||
| /*
 | ||||
|  * This comment block is used by fixdep. Please do not remove. | ||||
|  * | ||||
|  | @ -23,15 +14,6 @@ | |||
|  * side effect of the *.o build rule. | ||||
|  */ | ||||
| 
 | ||||
| #ifndef __ASSEMBLY__ | ||||
| #ifdef MODULE | ||||
| extern struct module __this_module; | ||||
| #define THIS_MODULE (&__this_module) | ||||
| #else | ||||
| #define THIS_MODULE ((struct module *)0) | ||||
| #endif | ||||
| #endif /* __ASSEMBLY__ */ | ||||
| 
 | ||||
| #ifdef CONFIG_64BIT | ||||
| #define __EXPORT_SYMBOL_REF(sym)			\ | ||||
| 	.balign 8				ASM_NL	\ | ||||
|  |  | |||
|  | @ -179,6 +179,13 @@ extern void (*late_time_init)(void); | |||
| 
 | ||||
| extern bool initcall_debug; | ||||
| 
 | ||||
| #ifdef MODULE | ||||
| extern struct module __this_module; | ||||
| #define THIS_MODULE (&__this_module) | ||||
| #else | ||||
| #define THIS_MODULE ((struct module *)0) | ||||
| #endif | ||||
| 
 | ||||
| #endif | ||||
|    | ||||
| #ifndef MODULE | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Masahiro Yamada
						Masahiro Yamada