diff options
| author | Thierry Reding <treding@nvidia.com> | 2026-04-30 09:32:13 +0200 |
|---|---|---|
| committer | Thierry Reding <treding@nvidia.com> | 2026-04-30 09:32:13 +0200 |
| commit | c8c09a8db2e42e0b2bbd04b86c7c62c5246de1bd (patch) | |
| tree | f9fbd9da9f77c0e2883b5348d02666e02434dd77 | |
| parent | ebc59fb706a4e408ef0c7822fbd2e4b6ec80a524 (diff) | |
| parent | 5b31044e649e3e54c2caef135c09b371c2fbcd08 (diff) | |
| download | linux-next-c8c09a8db2e42e0b2bbd04b86c7c62c5246de1bd.tar.gz | |
Merge branch 'slab/for-next-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git
| -rw-r--r-- | mm/page_alloc.c | 5 | ||||
| -rw-r--r-- | mm/slub.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 71859993dd54d..23c7298d3be29 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7737,6 +7737,11 @@ struct page *alloc_frozen_pages_nolock_noprof(gfp_t gfp_flags, int nid, unsigned */ if (IS_ENABLED(CONFIG_PREEMPT_RT) && (in_nmi() || in_hardirq())) return NULL; + + /* On UP, spin_trylock() always succeeds even when it is locked */ + if (!IS_ENABLED(CONFIG_SMP) && in_nmi()) + return NULL; + if (!pcp_allowed_order(order)) return NULL; diff --git a/mm/slub.c b/mm/slub.c index 161079ac5ba12..0baa906f39ab8 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -5339,6 +5339,10 @@ void *kmalloc_nolock_noprof(size_t size, gfp_t gfp_flags, int node) if (IS_ENABLED(CONFIG_PREEMPT_RT) && (in_nmi() || in_hardirq())) return NULL; + /* On UP, spin_trylock() always succeeds even when it is locked */ + if (!IS_ENABLED(CONFIG_SMP) && in_nmi()) + return NULL; + retry: if (unlikely(size > KMALLOC_MAX_CACHE_SIZE)) return NULL; |
