[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