mm/slub.c: remove validation on cpu_slab in __flush_cpu_slab()
authorWei Yang <[email protected]>
Fri, 28 Dec 2018 08:33:06 +0000 (00:33 -0800)
committerLinus Torvalds <[email protected]>
Fri, 28 Dec 2018 20:11:46 +0000 (12:11 -0800)
cpu_slab is a per cpu variable which is allocated in all or none.  If a
cpu_slab failed to be allocated, the slub is not usable.

We could use cpu_slab without validation in __flush_cpu_slab().

Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Wei Yang <[email protected]>
Reviewed-by: Andrew Morton <[email protected]>
Cc: Christoph Lameter <[email protected]>
Cc: Pekka Enberg <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: Joonsoo Kim <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/slub.c

index 08740c3f374513c28d2963207791be22744f4e18..3fd791c0dae57241e99a0723f3b90b6e1fa513fe 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2317,12 +2317,10 @@ static inline void __flush_cpu_slab(struct kmem_cache *s, int cpu)
 {
        struct kmem_cache_cpu *c = per_cpu_ptr(s->cpu_slab, cpu);
 
-       if (likely(c)) {
-               if (c->page)
-                       flush_slab(s, c);
+       if (c->page)
+               flush_slab(s, c);
 
-               unfreeze_partials(s, c);
-       }
+       unfreeze_partials(s, c);
 }
 
 static void flush_cpu_slab(void *d)