From: Dave Hansen Date: Fri, 24 Jan 2014 15:20:23 +0000 (-0800) Subject: mm: slub: work around unneeded lockdep warning X-Git-Tag: v3.14-rc1~5^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=67b6c900dc6dce65478d6fe37b60cd1e65bb80c2;p=platform%2Fkernel%2Flinux-stable.git mm: slub: work around unneeded lockdep warning The slub code does some setup during early boot in early_kmem_cache_node_alloc() with some local data. There is no possible way that another CPU can see this data, so the slub code doesn't unnecessarily lock it. However, some new lockdep asserts check to make sure that add_partial() _always_ has the list_lock held. Just add the locking, even though it is technically unnecessary. Cc: Peter Zijlstra Cc: Russell King Acked-by: David Rientjes Signed-off-by: Dave Hansen Signed-off-by: Pekka Enberg --- diff --git a/mm/slub.c b/mm/slub.c index a99e9e6..432bddf 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2890,7 +2890,13 @@ static void early_kmem_cache_node_alloc(int node) init_kmem_cache_node(n); inc_slabs_node(kmem_cache_node, node, page->objects); + /* + * the lock is for lockdep's sake, not for any actual + * race protection + */ + spin_lock(&n->list_lock); add_partial(n, page, DEACTIVATE_TO_HEAD); + spin_unlock(&n->list_lock); } static void free_kmem_cache_nodes(struct kmem_cache *s)