Commit 970296997869 for kernel

commit 9702969978695d9a699a1f34771580cdbb153b33
Merge: 45a43ac5acc9 27125df9a5d3
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Feb 16 13:41:38 2026 -0800

    Merge tag 'slab-for-7.0-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab

    Pull more slab updates from Vlastimil Babka:

     - Two stable fixes for kmalloc_nolock() usage from NMI context (Harry
       Yoo)

     - Allow kmalloc_nolock() allocations to be freed with kfree() and thus
       also kfree_rcu() and simplify slabobj_ext handling - we no longer
       need to track how it was allocated to use the matching freeing
       function (Harry Yoo)

    * tag 'slab-for-7.0-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
      mm/slab: drop the OBJEXTS_NOSPIN_ALLOC flag from enum objext_flags
      mm/slab: allow freeing kmalloc_nolock()'d objects using kfree[_rcu]()
      mm/slab: use prandom if !allow_spin
      mm/slab: do not access current->mems_allowed_seq if !allow_spin

diff --cc mm/slub.c
index 42df791279d9,18c30872d196..865bc050f654
--- a/mm/slub.c
+++ b/mm/slub.c
@@@ -8334,9 -8373,11 +8377,12 @@@ void __init kmem_cache_init(void

  void __init kmem_cache_init_late(void)
  {
 -	flushwq = alloc_workqueue("slub_flushwq", WQ_MEM_RECLAIM, 0);
 +	flushwq = alloc_workqueue("slub_flushwq", WQ_MEM_RECLAIM | WQ_PERCPU,
 +				  0);
  	WARN_ON(!flushwq);
+ #ifdef CONFIG_SLAB_FREELIST_RANDOM
+ 	prandom_init_once(&slab_rnd_state);
+ #endif
  }

  int do_kmem_cache_create(struct kmem_cache *s, const char *name,