]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
x86/mm/64: Rename the register_page_bootmem_memmap() 'size' parameter to 'nr_pages'
authorBaoquan He <bhe@redhat.com>
Sat, 28 Oct 2017 01:30:38 +0000 (09:30 +0800)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Sat, 6 Jan 2018 12:22:44 +0000 (13:22 +0100)
CVE-2017-5754

register_page_bootmem_memmap()'s 3rd 'size' parameter is named
in a somewhat misleading fashion - rename it to 'nr_pages' which
makes the units of it much clearer.

Meanwhile rename the existing local variable 'nr_pages' to
'nr_pmd_pages', a more expressive name, to avoid conflict with
new function parameter 'nr_pages'.

(Also clean up the unnecessary parentheses in which get_order() is called.)

Signed-off-by: Baoquan He <bhe@redhat.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: akpm@linux-foundation.org
Link: http://lkml.kernel.org/r/1509154238-23250-1-git-send-email-bhe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
(cherry picked from commit 15670bfe19905b1dcbb63137f40d718b59d84479)
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
arch/x86/mm/init_64.c
include/linux/mm.h

index 136422d7d53992adb326c419d569ff54e3d715a1..902983c8ea8c99f9f056738032619d8673c34966 100644 (file)
@@ -1418,16 +1418,16 @@ int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node)
 
 #if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HAVE_BOOTMEM_INFO_NODE)
 void register_page_bootmem_memmap(unsigned long section_nr,
-                                 struct page *start_page, unsigned long size)
+                                 struct page *start_page, unsigned long nr_pages)
 {
        unsigned long addr = (unsigned long)start_page;
-       unsigned long end = (unsigned long)(start_page + size);
+       unsigned long end = (unsigned long)(start_page + nr_pages);
        unsigned long next;
        pgd_t *pgd;
        p4d_t *p4d;
        pud_t *pud;
        pmd_t *pmd;
-       unsigned int nr_pages;
+       unsigned int nr_pmd_pages;
        struct page *page;
 
        for (; addr < end; addr = next) {
@@ -1474,9 +1474,9 @@ void register_page_bootmem_memmap(unsigned long section_nr,
                        if (pmd_none(*pmd))
                                continue;
 
-                       nr_pages = 1 << (get_order(PMD_SIZE));
+                       nr_pmd_pages = 1 << get_order(PMD_SIZE);
                        page = pmd_page(*pmd);
-                       while (nr_pages--)
+                       while (nr_pmd_pages--)
                                get_page_bootmem(section_nr, page++,
                                                 SECTION_INFO);
                }
index 07630442bbf2d862b82eddf3364aefab92458b42..97f6ca707010f8eaf62b9b7c8f084a85a7fbff6f 100644 (file)
@@ -2475,7 +2475,7 @@ void vmemmap_populate_print_last(void);
 void vmemmap_free(unsigned long start, unsigned long end);
 #endif
 void register_page_bootmem_memmap(unsigned long section_nr, struct page *map,
-                                 unsigned long size);
+                                 unsigned long nr_pages);
 
 enum mf_flags {
        MF_COUNT_INCREASED = 1 << 0,