[PATCH] powerpc/perf/vpa-dtl: use GFP_ATOMIC for DTL buffer allocation

From: mdshahid03

Date: Mon Nov 02 2026 - 11:48:19 EST


From: Mohammad Shahid <mdshahid03@xxxxxxxxx>

The DTL buffer is allocated while holding dtl_global_lock, which
is spinlock.

GFP_KERNEL allow direct memory reclaim and may sleep. Combining
GFP_KERNEL with GFP_ATOMIC does not remove the direct reclaim.

Use GFP_ATOMIC alone to ensure the allocation does not sleep
while the spinlock is held.

The issue is reported by script coccinelle call_kern.cocci.

Signed-off-by: Mohammad Shahid <mdshahid03@xxxxxxxxx>
---
arch/powerpc/perf/vpa-dtl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/perf/vpa-dtl.c b/arch/powerpc/perf/vpa-dtl.c
index 3e3d65b6c796..3d34417e6aae 100644
--- a/arch/powerpc/perf/vpa-dtl.c
+++ b/arch/powerpc/perf/vpa-dtl.c
@@ -338,7 +338,7 @@ static int vpa_dtl_mem_alloc(int cpu)
if (!dtl_cache)
return -ENOMEM;

- buf = kmem_cache_alloc_node(dtl_cache, GFP_KERNEL | GFP_ATOMIC, cpu_to_node(cpu));
+ buf = kmem_cache_alloc_node(dtl_cache, GFP_ATOMIC, cpu_to_node(cpu));
if (!buf) {
pr_warn("buffer allocation failed for cpu %d\n", cpu);
return -ENOMEM;
--
2.43.0