mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 18:20:25 +02:00 
			
		
		
		
	No functional change. This patch migrates kmemleak code out of core module code into kernel/module/debug_kmemleak.c Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Aaron Tomlin <atomlin@redhat.com> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			785 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			785 B
		
	
	
	
		
			C
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
						|
/*
 | 
						|
 * Module kmemleak support
 | 
						|
 *
 | 
						|
 * Copyright (C) 2009 Catalin Marinas
 | 
						|
 */
 | 
						|
 | 
						|
#include <linux/module.h>
 | 
						|
#include <linux/kmemleak.h>
 | 
						|
#include "internal.h"
 | 
						|
 | 
						|
void kmemleak_load_module(const struct module *mod,
 | 
						|
			  const struct load_info *info)
 | 
						|
{
 | 
						|
	unsigned int i;
 | 
						|
 | 
						|
	/* only scan the sections containing data */
 | 
						|
	kmemleak_scan_area(mod, sizeof(struct module), GFP_KERNEL);
 | 
						|
 | 
						|
	for (i = 1; i < info->hdr->e_shnum; i++) {
 | 
						|
		/* Scan all writable sections that's not executable */
 | 
						|
		if (!(info->sechdrs[i].sh_flags & SHF_ALLOC) ||
 | 
						|
		    !(info->sechdrs[i].sh_flags & SHF_WRITE) ||
 | 
						|
		    (info->sechdrs[i].sh_flags & SHF_EXECINSTR))
 | 
						|
			continue;
 | 
						|
 | 
						|
		kmemleak_scan_area((void *)info->sechdrs[i].sh_addr,
 | 
						|
				   info->sechdrs[i].sh_size, GFP_KERNEL);
 | 
						|
	}
 | 
						|
}
 |