From 833c70be1fa838ee976942dfdb70571116a371a0 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 7 Jan 2008 23:20:28 -0800 Subject: [PATCH] --- yaml --- r: 82922 b: refs/heads/master c: ba84c73c7ae21fc891a3c2576fa3be42752fce53 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/slub.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 27a25741c1a5..b448246075e4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 064287807c9dd64688084d34c6748a326b5f3ec8 +refs/heads/master: ba84c73c7ae21fc891a3c2576fa3be42752fce53 diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index a660834416ac..3f056677fa8f 100644 --- a/trunk/mm/slub.c +++ b/trunk/mm/slub.c @@ -1999,6 +1999,7 @@ static struct kmem_cache_node *early_kmem_cache_node_alloc(gfp_t gfpflags, { struct page *page; struct kmem_cache_node *n; + unsigned long flags; BUG_ON(kmalloc_caches->size < sizeof(struct kmem_cache_node)); @@ -2023,7 +2024,14 @@ static struct kmem_cache_node *early_kmem_cache_node_alloc(gfp_t gfpflags, #endif init_kmem_cache_node(n); atomic_long_inc(&n->nr_slabs); + /* + * lockdep requires consistent irq usage for each lock + * so even though there cannot be a race this early in + * the boot sequence, we still disable irqs. + */ + local_irq_save(flags); add_partial(n, page, 0); + local_irq_restore(flags); return n; }