|
@@ -77,7 +77,6 @@ static struct mem_section noinline __init_refok *sparse_index_alloc(int nid)
|
|
|
|
|
|
static int __meminit sparse_index_init(unsigned long section_nr, int nid)
|
|
|
{
|
|
|
- static DEFINE_SPINLOCK(index_init_lock);
|
|
|
unsigned long root = SECTION_NR_TO_ROOT(section_nr);
|
|
|
struct mem_section *section;
|
|
|
int ret = 0;
|
|
@@ -88,20 +87,9 @@ static int __meminit sparse_index_init(unsigned long section_nr, int nid)
|
|
|
section = sparse_index_alloc(nid);
|
|
|
if (!section)
|
|
|
return -ENOMEM;
|
|
|
- /*
|
|
|
- * This lock keeps two different sections from
|
|
|
- * reallocating for the same index
|
|
|
- */
|
|
|
- spin_lock(&index_init_lock);
|
|
|
-
|
|
|
- if (mem_section[root]) {
|
|
|
- ret = -EEXIST;
|
|
|
- goto out;
|
|
|
- }
|
|
|
|
|
|
mem_section[root] = section;
|
|
|
-out:
|
|
|
- spin_unlock(&index_init_lock);
|
|
|
+
|
|
|
return ret;
|
|
|
}
|
|
|
#else /* !SPARSEMEM_EXTREME */
|