summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-02-06 09:56:03 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2026-02-06 09:56:03 -0800
commit5ca98c22b5c4507fad4513a504d7c5ec46cd0386 (patch)
tree52b6e26489d448d86a59570ca616d6418f084064
parentf896d1c03e8dba2178c14d717d188ea43db016e6 (diff)
parente6c53ead2d8fa73206e0a63e9cd9aea6bc929837 (diff)
Merge tag 'slab-for-6.19-rc8-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab
Pull slab fix from Vlastimil Babka: "A stable fix for memory allocation profiling tag not being cleared when aborting an allocation due to memcg charge failure (Hao Ge)" * tag 'slab-for-6.19-rc8-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab: mm/slab: Add alloc_tagging_slab_free_hook for memcg_alloc_abort_single
-rw-r--r--mm/slub.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/mm/slub.c b/mm/slub.c
index f77b7407c51b..cdc1e652ec52 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -6689,8 +6689,12 @@ void slab_free(struct kmem_cache *s, struct slab *slab, void *object,
static noinline
void memcg_alloc_abort_single(struct kmem_cache *s, void *object)
{
+ struct slab *slab = virt_to_slab(object);
+
+ alloc_tagging_slab_free_hook(s, slab, &object, 1);
+
if (likely(slab_free_hook(s, object, slab_want_init_on_free(s), false)))
- do_slab_free(s, virt_to_slab(object), object, object, 1, _RET_IP_);
+ do_slab_free(s, slab, object, object, 1, _RET_IP_);
}
#endif