From 68ebdd1201f494f75698d8c2e01d769a6f691d4e Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Fri, 8 Jan 2010 14:42:39 -0800 Subject: [PATCH] --- yaml --- r: 178931 b: refs/heads/master c: 129182e5626972ac0df85d43a36dd46ad61c64e1 h: refs/heads/master i: 178929: 0d1a62b6cad5a00818e26c3cf1f8809bb415d660 178927: ec8c0f9026b6861fff893eb727eb5bd1eb5cfef4 v: v3 --- [refs] | 2 +- trunk/mm/percpu.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 609f50ca3262..7bf6d355d1c0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8767ba2796a1c894e6d9524584a26a8224f0543d +refs/heads/master: 129182e5626972ac0df85d43a36dd46ad61c64e1 diff --git a/trunk/mm/percpu.c b/trunk/mm/percpu.c index 442010cc91c6..083e7c91e5f6 100644 --- a/trunk/mm/percpu.c +++ b/trunk/mm/percpu.c @@ -1271,7 +1271,7 @@ static void pcpu_reclaim(struct work_struct *work) */ void free_percpu(void *ptr) { - void *addr = __pcpu_ptr_to_addr(ptr); + void *addr; struct pcpu_chunk *chunk; unsigned long flags; int off; @@ -1279,6 +1279,8 @@ void free_percpu(void *ptr) if (!ptr) return; + addr = __pcpu_ptr_to_addr(ptr); + spin_lock_irqsave(&pcpu_lock, flags); chunk = pcpu_chunk_addr_search(addr);