1473c84d1SAaron Tomlin // SPDX-License-Identifier: GPL-2.0-or-later 2473c84d1SAaron Tomlin /* 3473c84d1SAaron Tomlin * Module kmemleak support 4473c84d1SAaron Tomlin * 5473c84d1SAaron Tomlin * Copyright (C) 2009 Catalin Marinas 6473c84d1SAaron Tomlin */ 7473c84d1SAaron Tomlin 8473c84d1SAaron Tomlin #include <linux/module.h> 9473c84d1SAaron Tomlin #include <linux/kmemleak.h> 10473c84d1SAaron Tomlin #include "internal.h" 11473c84d1SAaron Tomlin kmemleak_load_module(const struct module * mod,const struct load_info * info)12473c84d1SAaron Tomlinvoid kmemleak_load_module(const struct module *mod, 13473c84d1SAaron Tomlin const struct load_info *info) 14473c84d1SAaron Tomlin { 15b319cea8SVincent Donnefort /* only scan writable, non-executable sections */ 16b319cea8SVincent Donnefort for_each_mod_mem_type(type) { 17*0c133b1eSMike Rapoport (Microsoft) if (type != MOD_DATA && type != MOD_INIT_DATA && 18*0c133b1eSMike Rapoport (Microsoft) !mod->mem[type].is_rox) 19b319cea8SVincent Donnefort kmemleak_no_scan(mod->mem[type].base); 20473c84d1SAaron Tomlin } 21473c84d1SAaron Tomlin } 22