module: Enable dynamic debugging regardless of taint
Dynamic debugging is currently disabled for tainted modules, except for TAINT_CRAP. This prevents use of dynamic debugging for out-of-tree modules once the next patch is applied. This condition was apparently intended to avoid a crash if a force- loaded module has an incompatible definition of dynamic debug structures. However, a administrator that forces us to load a module is claiming that it *is* compatible even though it fails our version checks. If they are mistaken, there are any number of ways the module could crash the system. As a side-effect, proprietary and other tainted modules can now use dynamic_debug. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
		
							parent
							
								
									43672a0784
								
							
						
					
					
						commit
						1cd0d6c302
					
				| @ -2878,8 +2878,7 @@ static struct module *load_module(void __user *umod, | ||||
| 	} | ||||
| 
 | ||||
| 	/* This has to be done once we're sure module name is unique. */ | ||||
| 	if (!mod->taints || mod->taints == (1U<<TAINT_CRAP)) | ||||
| 		dynamic_debug_setup(info.debug, info.num_debug); | ||||
| 	dynamic_debug_setup(info.debug, info.num_debug); | ||||
| 
 | ||||
| 	/* Find duplicate symbols */ | ||||
| 	err = verify_export_symbols(mod); | ||||
| @ -2915,8 +2914,7 @@ static struct module *load_module(void __user *umod, | ||||
| 	module_bug_cleanup(mod); | ||||
| 
 | ||||
|  ddebug: | ||||
| 	if (!mod->taints || mod->taints == (1U<<TAINT_CRAP)) | ||||
| 		dynamic_debug_remove(info.debug); | ||||
| 	dynamic_debug_remove(info.debug); | ||||
|  unlock: | ||||
| 	mutex_unlock(&module_mutex); | ||||
| 	synchronize_sched(); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user