diff --git a/[refs] b/[refs] index fecbf21f17e5..71bc20eacc7f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 25f4379b8c79066c4be0e5995f37f5265733b801 +refs/heads/master: 73736e0387ba0e6d2b703407b4d26168d31516a7 diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index 108ed03fb422..5e410a95abaf 100644 --- a/trunk/mm/slub.c +++ b/trunk/mm/slub.c @@ -2169,6 +2169,11 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, goto new_slab; } + /* must check again c->freelist in case of cpu migration or IRQ */ + object = c->freelist; + if (object) + goto load_freelist; + stat(s, ALLOC_SLOWPATH); do {