lkml.org 
[lkml]   [2017]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[v6 06/15] sparc64: simplify vmemmap_populate
    Date
    Remove duplicating code by using common functions
    vmemmap_pud_populate and vmemmap_pgd_populate.

    Signed-off-by: Pavel Tatashin <pasha.tatashin@oracle.com>
    Reviewed-by: Steven Sistare <steven.sistare@oracle.com>
    Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
    Reviewed-by: Bob Picco <bob.picco@oracle.com>
    ---
    arch/sparc/mm/init_64.c | 23 ++++++-----------------
    1 file changed, 6 insertions(+), 17 deletions(-)

    diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
    index 25ded711ab6c..ffb25be19389 100644
    --- a/arch/sparc/mm/init_64.c
    +++ b/arch/sparc/mm/init_64.c
    @@ -2590,30 +2590,19 @@ int __meminit vmemmap_populate(unsigned long vstart, unsigned long vend,
    vstart = vstart & PMD_MASK;
    vend = ALIGN(vend, PMD_SIZE);
    for (; vstart < vend; vstart += PMD_SIZE) {
    - pgd_t *pgd = pgd_offset_k(vstart);
    + pgd_t *pgd = vmemmap_pgd_populate(vstart, node);
    unsigned long pte;
    pud_t *pud;
    pmd_t *pmd;

    - if (pgd_none(*pgd)) {
    - pud_t *new = vmemmap_alloc_block(PAGE_SIZE, node);
    + if (!pgd)
    + return -ENOMEM;

    - if (!new)
    - return -ENOMEM;
    - pgd_populate(&init_mm, pgd, new);
    - }
    -
    - pud = pud_offset(pgd, vstart);
    - if (pud_none(*pud)) {
    - pmd_t *new = vmemmap_alloc_block(PAGE_SIZE, node);
    -
    - if (!new)
    - return -ENOMEM;
    - pud_populate(&init_mm, pud, new);
    - }
    + pud = vmemmap_pud_populate(pgd, vstart, node);
    + if (!pud)
    + return -ENOMEM;

    pmd = pmd_offset(pud, vstart);
    -
    pte = pmd_val(*pmd);
    if (!(pte & _PAGE_VALID)) {
    void *block = vmemmap_alloc_block(PMD_SIZE, node);
    --
    2.14.0
    \
     
     \ /
      Last update: 2017-08-07 22:44    [W:4.071 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site