kmemleak.c (8bd30c1090995ce800ae257fbbabfd6b6899b57c) kmemleak.c (e8b098fc5747a7c871f113c9eb65453cc2d86e6f)
1/*
2 * mm/kmemleak.c
3 *
4 * Copyright (C) 2008 ARM Limited
5 * Written by Catalin Marinas <catalin.marinas@arm.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as

--- 1173 unchanged lines hidden (view full) ---

1182 else if (kmemleak_early_log)
1183 log_early(KMEMLEAK_NO_SCAN, ptr, 0, 0);
1184}
1185EXPORT_SYMBOL(kmemleak_no_scan);
1186
1187/**
1188 * kmemleak_alloc_phys - similar to kmemleak_alloc but taking a physical
1189 * address argument
1/*
2 * mm/kmemleak.c
3 *
4 * Copyright (C) 2008 ARM Limited
5 * Written by Catalin Marinas <catalin.marinas@arm.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as

--- 1173 unchanged lines hidden (view full) ---

1182 else if (kmemleak_early_log)
1183 log_early(KMEMLEAK_NO_SCAN, ptr, 0, 0);
1184}
1185EXPORT_SYMBOL(kmemleak_no_scan);
1186
1187/**
1188 * kmemleak_alloc_phys - similar to kmemleak_alloc but taking a physical
1189 * address argument
1190 * @phys: physical address of the object
1191 * @size: size of the object
1192 * @min_count: minimum number of references to this object.
1193 * See kmemleak_alloc()
1194 * @gfp: kmalloc() flags used for kmemleak internal memory allocations
1190 */
1191void __ref kmemleak_alloc_phys(phys_addr_t phys, size_t size, int min_count,
1192 gfp_t gfp)
1193{
1194 if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn)
1195 kmemleak_alloc(__va(phys), size, min_count, gfp);
1196}
1197EXPORT_SYMBOL(kmemleak_alloc_phys);
1198
1199/**
1200 * kmemleak_free_part_phys - similar to kmemleak_free_part but taking a
1201 * physical address argument
1195 */
1196void __ref kmemleak_alloc_phys(phys_addr_t phys, size_t size, int min_count,
1197 gfp_t gfp)
1198{
1199 if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn)
1200 kmemleak_alloc(__va(phys), size, min_count, gfp);
1201}
1202EXPORT_SYMBOL(kmemleak_alloc_phys);
1203
1204/**
1205 * kmemleak_free_part_phys - similar to kmemleak_free_part but taking a
1206 * physical address argument
1207 * @phys: physical address if the beginning or inside an object. This
1208 * also represents the start of the range to be freed
1209 * @size: size to be unregistered
1202 */
1203void __ref kmemleak_free_part_phys(phys_addr_t phys, size_t size)
1204{
1205 if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn)
1206 kmemleak_free_part(__va(phys), size);
1207}
1208EXPORT_SYMBOL(kmemleak_free_part_phys);
1209
1210/**
1211 * kmemleak_not_leak_phys - similar to kmemleak_not_leak but taking a physical
1212 * address argument
1210 */
1211void __ref kmemleak_free_part_phys(phys_addr_t phys, size_t size)
1212{
1213 if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn)
1214 kmemleak_free_part(__va(phys), size);
1215}
1216EXPORT_SYMBOL(kmemleak_free_part_phys);
1217
1218/**
1219 * kmemleak_not_leak_phys - similar to kmemleak_not_leak but taking a physical
1220 * address argument
1221 * @phys: physical address of the object
1213 */
1214void __ref kmemleak_not_leak_phys(phys_addr_t phys)
1215{
1216 if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn)
1217 kmemleak_not_leak(__va(phys));
1218}
1219EXPORT_SYMBOL(kmemleak_not_leak_phys);
1220
1221/**
1222 * kmemleak_ignore_phys - similar to kmemleak_ignore but taking a physical
1223 * address argument
1222 */
1223void __ref kmemleak_not_leak_phys(phys_addr_t phys)
1224{
1225 if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn)
1226 kmemleak_not_leak(__va(phys));
1227}
1228EXPORT_SYMBOL(kmemleak_not_leak_phys);
1229
1230/**
1231 * kmemleak_ignore_phys - similar to kmemleak_ignore but taking a physical
1232 * address argument
1233 * @phys: physical address of the object
1224 */
1225void __ref kmemleak_ignore_phys(phys_addr_t phys)
1226{
1227 if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn)
1228 kmemleak_ignore(__va(phys));
1229}
1230EXPORT_SYMBOL(kmemleak_ignore_phys);
1231

--- 882 unchanged lines hidden ---
1234 */
1235void __ref kmemleak_ignore_phys(phys_addr_t phys)
1236{
1237 if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn)
1238 kmemleak_ignore(__va(phys));
1239}
1240EXPORT_SYMBOL(kmemleak_ignore_phys);
1241

--- 882 unchanged lines hidden ---