might_alloc() catches invalid blocking allocations in contexts where sleeping is not allowed. However when PF_MEMALLOC is set, the page allocator already skips reclaim and other blocking paths. In such cases, a blocking gfp_mask does not actually lead to blocking, so triggering might_alloc() splats is misleading. Adjust might_alloc() to skip warnings when the current task has PF_MEMALLOC set, matching the allocator's actual blocking behaviour. Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/sched/mm.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h index 2201da0afecc..dc2d3cab32ef 100644 --- a/include/linux/sched/mm.h +++ b/include/linux/sched/mm.h @@ -318,7 +318,8 @@ static inline void might_alloc(gfp_t gfp_mask) fs_reclaim_acquire(gfp_mask); fs_reclaim_release(gfp_mask); - might_sleep_if(gfpflags_allow_blocking(gfp_mask)); + might_sleep_if(gfpflags_allow_blocking(gfp_mask) && + !(current->flags & PF_MEMALLOC)); } /** -- 2.47.3