forked from mirrors/linux
		
	mm/page_poison.c: replace bool variable with static key
Variable 'want_page_poisoning' is a switch deciding if page poisoning should be enabled. This patch changes it to be static key. Signed-off-by: Mateusz Nosek <mateusznosek0@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Cc: Oscar Salvador <OSalvador@suse.com> Link: https://lkml.kernel.org/r/20200921152931.938-1-mateusznosek0@gmail.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									b94e02822d
								
							
						
					
					
						commit
						11c9c7edae
					
				
					 1 changed files with 15 additions and 5 deletions
				
			
		|  | @ -8,13 +8,23 @@ | |||
| #include <linux/ratelimit.h> | ||||
| #include <linux/kasan.h> | ||||
| 
 | ||||
| static bool want_page_poisoning __read_mostly; | ||||
| static DEFINE_STATIC_KEY_FALSE_RO(want_page_poisoning); | ||||
| 
 | ||||
| static int __init early_page_poison_param(char *buf) | ||||
| { | ||||
| 	if (!buf) | ||||
| 		return -EINVAL; | ||||
| 	return strtobool(buf, &want_page_poisoning); | ||||
| 	int ret; | ||||
| 	bool tmp; | ||||
| 
 | ||||
| 	ret = strtobool(buf, &tmp); | ||||
| 	if (ret) | ||||
| 		return ret; | ||||
| 
 | ||||
| 	if (tmp) | ||||
| 		static_branch_enable(&want_page_poisoning); | ||||
| 	else | ||||
| 		static_branch_disable(&want_page_poisoning); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| early_param("page_poison", early_page_poison_param); | ||||
| 
 | ||||
|  | @ -31,7 +41,7 @@ bool page_poisoning_enabled(void) | |||
| 	 * Page poisoning is debug page alloc for some arches. If | ||||
| 	 * either of those options are enabled, enable poisoning. | ||||
| 	 */ | ||||
| 	return (want_page_poisoning || | ||||
| 	return (static_branch_unlikely(&want_page_poisoning) || | ||||
| 		(!IS_ENABLED(CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC) && | ||||
| 		debug_pagealloc_enabled())); | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Mateusz Nosek
						Mateusz Nosek