drivers: base: reduce add_memory_section() for boot-time only
authorSeth Jennings <sjenning@linux.vnet.ibm.com>
Tue, 20 Aug 2013 17:13:01 +0000 (12:13 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 21 Aug 2013 18:48:41 +0000 (11:48 -0700)
Now that add_memory_section() is only called from boot time, reduce
the logic and remove the enum.

Signed-off-by: Seth Jennings <sjenning@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/memory.c
include/linux/memory.h

index 2e9a68c..a9e9c09 100644 (file)
@@ -602,40 +602,29 @@ static int init_memory_block(struct memory_block **memory,
        return ret;
 }
 
-static int add_memory_section(int nid, struct mem_section *section,
-                       struct memory_block **mem_p,
-                       unsigned long state, enum mem_add_context context)
+static int add_memory_section(struct mem_section *section,
+                       struct memory_block **mem_p)
 {
        struct memory_block *mem = NULL;
        int scn_nr = __section_nr(section);
        int ret = 0;
 
-       if (context == BOOT) {
-               /* same memory block ? */
-               if (mem_p && *mem_p)
-                       if (scn_nr >= (*mem_p)->start_section_nr &&
-                           scn_nr <= (*mem_p)->end_section_nr) {
-                               mem = *mem_p;
-                               get_device(&mem->dev);
-                       }
-       } else
-               mem = find_memory_block(section);
+       if (mem_p && *mem_p) {
+               if (scn_nr >= (*mem_p)->start_section_nr &&
+                   scn_nr <= (*mem_p)->end_section_nr) {
+                       mem = *mem_p;
+                       get_device(&mem->dev);
+               }
+       }
 
        if (mem) {
                mem->section_count++;
                put_device(&mem->dev);
        } else {
-               ret = init_memory_block(&mem, section, state);
+               ret = init_memory_block(&mem, section, MEM_ONLINE);
                /* store memory_block pointer for next loop */
-               if (!ret && context == BOOT)
-                       if (mem_p)
-                               *mem_p = mem;
-       }
-
-       if (!ret) {
-               if (context == HOTPLUG &&
-                   mem->section_count == sections_per_block)
-                       ret = register_mem_sect_under_node(mem, nid);
+               if (!ret && mem_p)
+                       *mem_p = mem;
        }
 
        return ret;
@@ -764,10 +753,8 @@ int __init memory_dev_init(void)
                if (!present_section_nr(i))
                        continue;
                /* don't need to reuse memory_block if only one per block */
-               err = add_memory_section(0, __nr_to_section(i),
-                                (sections_per_block == 1) ? NULL : &mem,
-                                        MEM_ONLINE,
-                                        BOOT);
+               err = add_memory_section(__nr_to_section(i),
+                                (sections_per_block == 1) ? NULL : &mem);
                if (!ret)
                        ret = err;
        }
index 85c31a8..4c89fb0 100644 (file)
@@ -125,7 +125,6 @@ extern struct memory_block *find_memory_block_hinted(struct mem_section *,
                                                        struct memory_block *);
 extern struct memory_block *find_memory_block(struct mem_section *);
 #define CONFIG_MEM_BLOCK_SIZE  (PAGES_PER_SECTION<<PAGE_SHIFT)
-enum mem_add_context { BOOT, HOTPLUG };
 #endif /* CONFIG_MEMORY_HOTPLUG_SPARSE */
 
 #ifdef CONFIG_MEMORY_HOTPLUG