All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qian Cai <cai@lca.pw>
To: mpe@ellerman.id.au
Cc: paulus@ozlabs.org, benh@kernel.crashing.org,
	catalin.marinas@arm.com, kvm-ppc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	Qian Cai <cai@lca.pw>
Subject: [PATCH] powerpc/kvm: silence kmemleak false positives
Date: Fri,  8 May 2020 21:55:38 -0400	[thread overview]
Message-ID: <20200509015538.3183-1-cai@lca.pw> (raw)

kvmppc_pmd_alloc() and kvmppc_pte_alloc() allocate some memory but then
pud_populate() and pmd_populate() will use __pa() to reference the newly
allocated memory. The same is in xive_native_provision_pages().

Since kmemleak is unable to track the physical memory resulting in false
positives, silence those by using kmemleak_ignore().

unreferenced object 0xc000201c382a1000 (size 4096):
  comm "qemu-kvm", pid 124828, jiffies 4295733767 (age 341.250s)
  hex dump (first 32 bytes):
    c0 00 20 09 f4 60 03 87 c0 00 20 10 72 a0 03 87  .. ..`.... .r...
    c0 00 20 0e 13 a0 03 87 c0 00 20 1b dc c0 03 87  .. ....... .....
  backtrace:
    [<000000004cc2790f>] kvmppc_create_pte+0x838/0xd20 [kvm_hv]
    kvmppc_pmd_alloc at arch/powerpc/kvm/book3s_64_mmu_radix.c:366
    (inlined by) kvmppc_create_pte at arch/powerpc/kvm/book3s_64_mmu_radix.c:590
    [<00000000d123c49a>] kvmppc_book3s_instantiate_page+0x2e0/0x8c0 [kvm_hv]
    [<00000000bb549087>] kvmppc_book3s_radix_page_fault+0x1b4/0x2b0 [kvm_hv]
    [<0000000086dddc0e>] kvmppc_book3s_hv_page_fault+0x214/0x12a0 [kvm_hv]
    [<000000005ae9ccc2>] kvmppc_vcpu_run_hv+0xc5c/0x15f0 [kvm_hv]
    [<00000000d22162ff>] kvmppc_vcpu_run+0x34/0x48 [kvm]
    [<00000000d6953bc4>] kvm_arch_vcpu_ioctl_run+0x314/0x420 [kvm]
    [<000000002543dd54>] kvm_vcpu_ioctl+0x33c/0x950 [kvm]
    [<0000000048155cd6>] ksys_ioctl+0xd8/0x130
    [<0000000041ffeaa7>] sys_ioctl+0x28/0x40
    [<000000004afc4310>] system_call_exception+0x114/0x1e0
    [<00000000fb70a873>] system_call_common+0xf0/0x278
unreferenced object 0xc0002001f0c03900 (size 256):
  comm "qemu-kvm", pid 124830, jiffies 4295735235 (age 326.570s)
  hex dump (first 32 bytes):
    c0 00 20 10 fa a0 03 87 c0 00 20 10 fa a1 03 87  .. ....... .....
    c0 00 20 10 fa a2 03 87 c0 00 20 10 fa a3 03 87  .. ....... .....
  backtrace:
    [<0000000023f675b8>] kvmppc_create_pte+0x854/0xd20 [kvm_hv]
    kvmppc_pte_alloc at arch/powerpc/kvm/book3s_64_mmu_radix.c:356
    (inlined by) kvmppc_create_pte at arch/powerpc/kvm/book3s_64_mmu_radix.c:593
    [<00000000d123c49a>] kvmppc_book3s_instantiate_page+0x2e0/0x8c0 [kvm_hv]
    [<00000000bb549087>] kvmppc_book3s_radix_page_fault+0x1b4/0x2b0 [kvm_hv]
    [<0000000086dddc0e>] kvmppc_book3s_hv_page_fault+0x214/0x12a0 [kvm_hv]
    [<000000005ae9ccc2>] kvmppc_vcpu_run_hv+0xc5c/0x15f0 [kvm_hv]
    [<00000000d22162ff>] kvmppc_vcpu_run+0x34/0x48 [kvm]
    [<00000000d6953bc4>] kvm_arch_vcpu_ioctl_run+0x314/0x420 [kvm]
    [<000000002543dd54>] kvm_vcpu_ioctl+0x33c/0x950 [kvm]
    [<0000000048155cd6>] ksys_ioctl+0xd8/0x130
    [<0000000041ffeaa7>] sys_ioctl+0x28/0x40
    [<000000004afc4310>] system_call_exception+0x114/0x1e0
    [<00000000fb70a873>] system_call_common+0xf0/0x278
unreferenced object 0xc000201b53e90000 (size 65536):
  comm "qemu-kvm", pid 124557, jiffies 4295650285 (age 364.370s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [<00000000acc2fb77>] xive_native_alloc_vp_block+0x168/0x210
    xive_native_provision_pages at arch/powerpc/sysdev/xive/native.c:645
    (inlined by) xive_native_alloc_vp_block at arch/powerpc/sysdev/xive/native.c:674
    [<000000004d5c7964>] kvmppc_xive_compute_vp_id+0x20c/0x3b0 [kvm]
    [<0000000055317cd2>] kvmppc_xive_connect_vcpu+0xa4/0x4a0 [kvm]
    [<0000000093dfc014>] kvm_arch_vcpu_ioctl+0x388/0x508 [kvm]
    [<00000000d25aea0f>] kvm_vcpu_ioctl+0x15c/0x950 [kvm]
    [<0000000048155cd6>] ksys_ioctl+0xd8/0x130
    [<0000000041ffeaa7>] sys_ioctl+0x28/0x40
    [<000000004afc4310>] system_call_exception+0x114/0x1e0
    [<00000000fb70a873>] system_call_common+0xf0/0x278

Signed-off-by: Qian Cai <cai@lca.pw>
---
 arch/powerpc/kvm/book3s_64_mmu_radix.c | 16 ++++++++++++++--
 arch/powerpc/sysdev/xive/native.c      |  4 ++++
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index aa12cd4078b3..bc6c1aa3d0e9 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -353,7 +353,13 @@ static struct kmem_cache *kvm_pmd_cache;
 
 static pte_t *kvmppc_pte_alloc(void)
 {
-	return kmem_cache_alloc(kvm_pte_cache, GFP_KERNEL);
+	pte_t *pte;
+
+	pte = kmem_cache_alloc(kvm_pte_cache, GFP_KERNEL);
+	/* pmd_populate() will only reference _pa(pte). */
+	kmemleak_ignore(pte);
+
+	return pte;
 }
 
 static void kvmppc_pte_free(pte_t *ptep)
@@ -363,7 +369,13 @@ static void kvmppc_pte_free(pte_t *ptep)
 
 static pmd_t *kvmppc_pmd_alloc(void)
 {
-	return kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
+	pmd_t *pmd;
+
+	pmd = kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
+	/* pud_populate() will only reference _pa(pmd). */
+	kmemleak_ignore(pmd);
+
+	return pmd;
 }
 
 static void kvmppc_pmd_free(pmd_t *pmdp)
diff --git a/arch/powerpc/sysdev/xive/native.c b/arch/powerpc/sysdev/xive/native.c
index 5218fdc4b29a..2d19f28967a6 100644
--- a/arch/powerpc/sysdev/xive/native.c
+++ b/arch/powerpc/sysdev/xive/native.c
@@ -18,6 +18,7 @@
 #include <linux/delay.h>
 #include <linux/cpumask.h>
 #include <linux/mm.h>
+#include <linux/kmemleak.h>
 
 #include <asm/machdep.h>
 #include <asm/prom.h>
@@ -647,6 +648,9 @@ static bool xive_native_provision_pages(void)
 			pr_err("Failed to allocate provisioning page\n");
 			return false;
 		}
+		/* Kmemleak is unable to track the physical address. */
+		kmemleak_ignore(p);
+
 		opal_xive_donate_page(chip, __pa(p));
 	}
 	return true;
-- 
2.21.0 (Apple Git-122.2)


WARNING: multiple messages have this Message-ID (diff)
From: Qian Cai <cai@lca.pw>
To: mpe@ellerman.id.au
Cc: linux-kernel@vger.kernel.org, kvm-ppc@vger.kernel.org,
	Qian Cai <cai@lca.pw>,
	catalin.marinas@arm.com, linuxppc-dev@lists.ozlabs.org
Subject: [PATCH] powerpc/kvm: silence kmemleak false positives
Date: Fri,  8 May 2020 21:55:38 -0400	[thread overview]
Message-ID: <20200509015538.3183-1-cai@lca.pw> (raw)

kvmppc_pmd_alloc() and kvmppc_pte_alloc() allocate some memory but then
pud_populate() and pmd_populate() will use __pa() to reference the newly
allocated memory. The same is in xive_native_provision_pages().

Since kmemleak is unable to track the physical memory resulting in false
positives, silence those by using kmemleak_ignore().

unreferenced object 0xc000201c382a1000 (size 4096):
  comm "qemu-kvm", pid 124828, jiffies 4295733767 (age 341.250s)
  hex dump (first 32 bytes):
    c0 00 20 09 f4 60 03 87 c0 00 20 10 72 a0 03 87  .. ..`.... .r...
    c0 00 20 0e 13 a0 03 87 c0 00 20 1b dc c0 03 87  .. ....... .....
  backtrace:
    [<000000004cc2790f>] kvmppc_create_pte+0x838/0xd20 [kvm_hv]
    kvmppc_pmd_alloc at arch/powerpc/kvm/book3s_64_mmu_radix.c:366
    (inlined by) kvmppc_create_pte at arch/powerpc/kvm/book3s_64_mmu_radix.c:590
    [<00000000d123c49a>] kvmppc_book3s_instantiate_page+0x2e0/0x8c0 [kvm_hv]
    [<00000000bb549087>] kvmppc_book3s_radix_page_fault+0x1b4/0x2b0 [kvm_hv]
    [<0000000086dddc0e>] kvmppc_book3s_hv_page_fault+0x214/0x12a0 [kvm_hv]
    [<000000005ae9ccc2>] kvmppc_vcpu_run_hv+0xc5c/0x15f0 [kvm_hv]
    [<00000000d22162ff>] kvmppc_vcpu_run+0x34/0x48 [kvm]
    [<00000000d6953bc4>] kvm_arch_vcpu_ioctl_run+0x314/0x420 [kvm]
    [<000000002543dd54>] kvm_vcpu_ioctl+0x33c/0x950 [kvm]
    [<0000000048155cd6>] ksys_ioctl+0xd8/0x130
    [<0000000041ffeaa7>] sys_ioctl+0x28/0x40
    [<000000004afc4310>] system_call_exception+0x114/0x1e0
    [<00000000fb70a873>] system_call_common+0xf0/0x278
unreferenced object 0xc0002001f0c03900 (size 256):
  comm "qemu-kvm", pid 124830, jiffies 4295735235 (age 326.570s)
  hex dump (first 32 bytes):
    c0 00 20 10 fa a0 03 87 c0 00 20 10 fa a1 03 87  .. ....... .....
    c0 00 20 10 fa a2 03 87 c0 00 20 10 fa a3 03 87  .. ....... .....
  backtrace:
    [<0000000023f675b8>] kvmppc_create_pte+0x854/0xd20 [kvm_hv]
    kvmppc_pte_alloc at arch/powerpc/kvm/book3s_64_mmu_radix.c:356
    (inlined by) kvmppc_create_pte at arch/powerpc/kvm/book3s_64_mmu_radix.c:593
    [<00000000d123c49a>] kvmppc_book3s_instantiate_page+0x2e0/0x8c0 [kvm_hv]
    [<00000000bb549087>] kvmppc_book3s_radix_page_fault+0x1b4/0x2b0 [kvm_hv]
    [<0000000086dddc0e>] kvmppc_book3s_hv_page_fault+0x214/0x12a0 [kvm_hv]
    [<000000005ae9ccc2>] kvmppc_vcpu_run_hv+0xc5c/0x15f0 [kvm_hv]
    [<00000000d22162ff>] kvmppc_vcpu_run+0x34/0x48 [kvm]
    [<00000000d6953bc4>] kvm_arch_vcpu_ioctl_run+0x314/0x420 [kvm]
    [<000000002543dd54>] kvm_vcpu_ioctl+0x33c/0x950 [kvm]
    [<0000000048155cd6>] ksys_ioctl+0xd8/0x130
    [<0000000041ffeaa7>] sys_ioctl+0x28/0x40
    [<000000004afc4310>] system_call_exception+0x114/0x1e0
    [<00000000fb70a873>] system_call_common+0xf0/0x278
unreferenced object 0xc000201b53e90000 (size 65536):
  comm "qemu-kvm", pid 124557, jiffies 4295650285 (age 364.370s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [<00000000acc2fb77>] xive_native_alloc_vp_block+0x168/0x210
    xive_native_provision_pages at arch/powerpc/sysdev/xive/native.c:645
    (inlined by) xive_native_alloc_vp_block at arch/powerpc/sysdev/xive/native.c:674
    [<000000004d5c7964>] kvmppc_xive_compute_vp_id+0x20c/0x3b0 [kvm]
    [<0000000055317cd2>] kvmppc_xive_connect_vcpu+0xa4/0x4a0 [kvm]
    [<0000000093dfc014>] kvm_arch_vcpu_ioctl+0x388/0x508 [kvm]
    [<00000000d25aea0f>] kvm_vcpu_ioctl+0x15c/0x950 [kvm]
    [<0000000048155cd6>] ksys_ioctl+0xd8/0x130
    [<0000000041ffeaa7>] sys_ioctl+0x28/0x40
    [<000000004afc4310>] system_call_exception+0x114/0x1e0
    [<00000000fb70a873>] system_call_common+0xf0/0x278

Signed-off-by: Qian Cai <cai@lca.pw>
---
 arch/powerpc/kvm/book3s_64_mmu_radix.c | 16 ++++++++++++++--
 arch/powerpc/sysdev/xive/native.c      |  4 ++++
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index aa12cd4078b3..bc6c1aa3d0e9 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -353,7 +353,13 @@ static struct kmem_cache *kvm_pmd_cache;
 
 static pte_t *kvmppc_pte_alloc(void)
 {
-	return kmem_cache_alloc(kvm_pte_cache, GFP_KERNEL);
+	pte_t *pte;
+
+	pte = kmem_cache_alloc(kvm_pte_cache, GFP_KERNEL);
+	/* pmd_populate() will only reference _pa(pte). */
+	kmemleak_ignore(pte);
+
+	return pte;
 }
 
 static void kvmppc_pte_free(pte_t *ptep)
@@ -363,7 +369,13 @@ static void kvmppc_pte_free(pte_t *ptep)
 
 static pmd_t *kvmppc_pmd_alloc(void)
 {
-	return kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
+	pmd_t *pmd;
+
+	pmd = kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
+	/* pud_populate() will only reference _pa(pmd). */
+	kmemleak_ignore(pmd);
+
+	return pmd;
 }
 
 static void kvmppc_pmd_free(pmd_t *pmdp)
diff --git a/arch/powerpc/sysdev/xive/native.c b/arch/powerpc/sysdev/xive/native.c
index 5218fdc4b29a..2d19f28967a6 100644
--- a/arch/powerpc/sysdev/xive/native.c
+++ b/arch/powerpc/sysdev/xive/native.c
@@ -18,6 +18,7 @@
 #include <linux/delay.h>
 #include <linux/cpumask.h>
 #include <linux/mm.h>
+#include <linux/kmemleak.h>
 
 #include <asm/machdep.h>
 #include <asm/prom.h>
@@ -647,6 +648,9 @@ static bool xive_native_provision_pages(void)
 			pr_err("Failed to allocate provisioning page\n");
 			return false;
 		}
+		/* Kmemleak is unable to track the physical address. */
+		kmemleak_ignore(p);
+
 		opal_xive_donate_page(chip, __pa(p));
 	}
 	return true;
-- 
2.21.0 (Apple Git-122.2)


WARNING: multiple messages have this Message-ID (diff)
From: Qian Cai <cai@lca.pw>
To: mpe@ellerman.id.au
Cc: paulus@ozlabs.org, benh@kernel.crashing.org,
	catalin.marinas@arm.com, kvm-ppc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	Qian Cai <cai@lca.pw>
Subject: [PATCH] powerpc/kvm: silence kmemleak false positives
Date: Sat, 09 May 2020 01:55:38 +0000	[thread overview]
Message-ID: <20200509015538.3183-1-cai@lca.pw> (raw)

kvmppc_pmd_alloc() and kvmppc_pte_alloc() allocate some memory but then
pud_populate() and pmd_populate() will use __pa() to reference the newly
allocated memory. The same is in xive_native_provision_pages().

Since kmemleak is unable to track the physical memory resulting in false
positives, silence those by using kmemleak_ignore().

unreferenced object 0xc000201c382a1000 (size 4096):
  comm "qemu-kvm", pid 124828, jiffies 4295733767 (age 341.250s)
  hex dump (first 32 bytes):
    c0 00 20 09 f4 60 03 87 c0 00 20 10 72 a0 03 87  .. ..`.... .r...
    c0 00 20 0e 13 a0 03 87 c0 00 20 1b dc c0 03 87  .. ....... .....
  backtrace:
    [<000000004cc2790f>] kvmppc_create_pte+0x838/0xd20 [kvm_hv]
    kvmppc_pmd_alloc at arch/powerpc/kvm/book3s_64_mmu_radix.c:366
    (inlined by) kvmppc_create_pte at arch/powerpc/kvm/book3s_64_mmu_radix.c:590
    [<00000000d123c49a>] kvmppc_book3s_instantiate_page+0x2e0/0x8c0 [kvm_hv]
    [<00000000bb549087>] kvmppc_book3s_radix_page_fault+0x1b4/0x2b0 [kvm_hv]
    [<0000000086dddc0e>] kvmppc_book3s_hv_page_fault+0x214/0x12a0 [kvm_hv]
    [<000000005ae9ccc2>] kvmppc_vcpu_run_hv+0xc5c/0x15f0 [kvm_hv]
    [<00000000d22162ff>] kvmppc_vcpu_run+0x34/0x48 [kvm]
    [<00000000d6953bc4>] kvm_arch_vcpu_ioctl_run+0x314/0x420 [kvm]
    [<000000002543dd54>] kvm_vcpu_ioctl+0x33c/0x950 [kvm]
    [<0000000048155cd6>] ksys_ioctl+0xd8/0x130
    [<0000000041ffeaa7>] sys_ioctl+0x28/0x40
    [<000000004afc4310>] system_call_exception+0x114/0x1e0
    [<00000000fb70a873>] system_call_common+0xf0/0x278
unreferenced object 0xc0002001f0c03900 (size 256):
  comm "qemu-kvm", pid 124830, jiffies 4295735235 (age 326.570s)
  hex dump (first 32 bytes):
    c0 00 20 10 fa a0 03 87 c0 00 20 10 fa a1 03 87  .. ....... .....
    c0 00 20 10 fa a2 03 87 c0 00 20 10 fa a3 03 87  .. ....... .....
  backtrace:
    [<0000000023f675b8>] kvmppc_create_pte+0x854/0xd20 [kvm_hv]
    kvmppc_pte_alloc at arch/powerpc/kvm/book3s_64_mmu_radix.c:356
    (inlined by) kvmppc_create_pte at arch/powerpc/kvm/book3s_64_mmu_radix.c:593
    [<00000000d123c49a>] kvmppc_book3s_instantiate_page+0x2e0/0x8c0 [kvm_hv]
    [<00000000bb549087>] kvmppc_book3s_radix_page_fault+0x1b4/0x2b0 [kvm_hv]
    [<0000000086dddc0e>] kvmppc_book3s_hv_page_fault+0x214/0x12a0 [kvm_hv]
    [<000000005ae9ccc2>] kvmppc_vcpu_run_hv+0xc5c/0x15f0 [kvm_hv]
    [<00000000d22162ff>] kvmppc_vcpu_run+0x34/0x48 [kvm]
    [<00000000d6953bc4>] kvm_arch_vcpu_ioctl_run+0x314/0x420 [kvm]
    [<000000002543dd54>] kvm_vcpu_ioctl+0x33c/0x950 [kvm]
    [<0000000048155cd6>] ksys_ioctl+0xd8/0x130
    [<0000000041ffeaa7>] sys_ioctl+0x28/0x40
    [<000000004afc4310>] system_call_exception+0x114/0x1e0
    [<00000000fb70a873>] system_call_common+0xf0/0x278
unreferenced object 0xc000201b53e90000 (size 65536):
  comm "qemu-kvm", pid 124557, jiffies 4295650285 (age 364.370s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [<00000000acc2fb77>] xive_native_alloc_vp_block+0x168/0x210
    xive_native_provision_pages at arch/powerpc/sysdev/xive/native.c:645
    (inlined by) xive_native_alloc_vp_block at arch/powerpc/sysdev/xive/native.c:674
    [<000000004d5c7964>] kvmppc_xive_compute_vp_id+0x20c/0x3b0 [kvm]
    [<0000000055317cd2>] kvmppc_xive_connect_vcpu+0xa4/0x4a0 [kvm]
    [<0000000093dfc014>] kvm_arch_vcpu_ioctl+0x388/0x508 [kvm]
    [<00000000d25aea0f>] kvm_vcpu_ioctl+0x15c/0x950 [kvm]
    [<0000000048155cd6>] ksys_ioctl+0xd8/0x130
    [<0000000041ffeaa7>] sys_ioctl+0x28/0x40
    [<000000004afc4310>] system_call_exception+0x114/0x1e0
    [<00000000fb70a873>] system_call_common+0xf0/0x278

Signed-off-by: Qian Cai <cai@lca.pw>
---
 arch/powerpc/kvm/book3s_64_mmu_radix.c | 16 ++++++++++++++--
 arch/powerpc/sysdev/xive/native.c      |  4 ++++
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index aa12cd4078b3..bc6c1aa3d0e9 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -353,7 +353,13 @@ static struct kmem_cache *kvm_pmd_cache;
 
 static pte_t *kvmppc_pte_alloc(void)
 {
-	return kmem_cache_alloc(kvm_pte_cache, GFP_KERNEL);
+	pte_t *pte;
+
+	pte = kmem_cache_alloc(kvm_pte_cache, GFP_KERNEL);
+	/* pmd_populate() will only reference _pa(pte). */
+	kmemleak_ignore(pte);
+
+	return pte;
 }
 
 static void kvmppc_pte_free(pte_t *ptep)
@@ -363,7 +369,13 @@ static void kvmppc_pte_free(pte_t *ptep)
 
 static pmd_t *kvmppc_pmd_alloc(void)
 {
-	return kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
+	pmd_t *pmd;
+
+	pmd = kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
+	/* pud_populate() will only reference _pa(pmd). */
+	kmemleak_ignore(pmd);
+
+	return pmd;
 }
 
 static void kvmppc_pmd_free(pmd_t *pmdp)
diff --git a/arch/powerpc/sysdev/xive/native.c b/arch/powerpc/sysdev/xive/native.c
index 5218fdc4b29a..2d19f28967a6 100644
--- a/arch/powerpc/sysdev/xive/native.c
+++ b/arch/powerpc/sysdev/xive/native.c
@@ -18,6 +18,7 @@
 #include <linux/delay.h>
 #include <linux/cpumask.h>
 #include <linux/mm.h>
+#include <linux/kmemleak.h>
 
 #include <asm/machdep.h>
 #include <asm/prom.h>
@@ -647,6 +648,9 @@ static bool xive_native_provision_pages(void)
 			pr_err("Failed to allocate provisioning page\n");
 			return false;
 		}
+		/* Kmemleak is unable to track the physical address. */
+		kmemleak_ignore(p);
+
 		opal_xive_donate_page(chip, __pa(p));
 	}
 	return true;
-- 
2.21.0 (Apple Git-122.2)

             reply	other threads:[~2020-05-09  1:55 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-09  1:55 Qian Cai [this message]
2020-05-09  1:55 ` [PATCH] powerpc/kvm: silence kmemleak false positives Qian Cai
2020-05-09  1:55 ` Qian Cai
2020-05-11 11:15 ` Michael Ellerman
2020-05-11 11:15   ` Michael Ellerman
2020-05-11 11:15   ` Michael Ellerman
2020-05-11 11:28   ` Catalin Marinas
2020-05-11 11:28     ` Catalin Marinas
2020-05-11 11:28     ` Catalin Marinas
2020-05-13  4:00     ` Michael Ellerman
2020-05-13  4:00       ` Michael Ellerman
2020-05-13  4:00       ` Michael Ellerman
2020-05-11 11:43   ` Qian Cai
2020-05-11 11:43     ` Qian Cai
2020-05-11 11:43     ` Qian Cai
2020-05-12 14:17     ` Catalin Marinas
2020-05-12 14:17       ` Catalin Marinas
2020-05-12 14:17       ` Catalin Marinas
2020-05-13  4:05 ` Michael Ellerman
2020-05-13  4:05   ` Michael Ellerman
2020-05-13  4:05   ` Michael Ellerman
2020-05-13  6:24   ` Qian Cai
2020-05-13  6:24     ` Qian Cai
2020-05-13  6:24     ` Qian Cai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200509015538.3183-1-cai@lca.pw \
    --to=cai@lca.pw \
    --cc=benh@kernel.crashing.org \
    --cc=catalin.marinas@arm.com \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.