diff options
Diffstat (limited to 'arch/powerpc/mm/mem.c')
-rw-r--r-- | arch/powerpc/mm/mem.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index c781bbcf7338..5db316cad47b 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -123,7 +123,8 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
123 | pgdata = NODE_DATA(nid); | 123 | pgdata = NODE_DATA(nid); |
124 | 124 | ||
125 | start = (unsigned long)__va(start); | 125 | start = (unsigned long)__va(start); |
126 | create_section_mapping(start, start + size); | 126 | if (create_section_mapping(start, start + size)) |
127 | return -EINVAL; | ||
127 | 128 | ||
128 | /* this should work for most non-highmem platforms */ | 129 | /* this should work for most non-highmem platforms */ |
129 | zone = pgdata->node_zones; | 130 | zone = pgdata->node_zones; |
@@ -548,4 +549,9 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, | |||
548 | return; | 549 | return; |
549 | hash_preload(vma->vm_mm, address, access, trap); | 550 | hash_preload(vma->vm_mm, address, access, trap); |
550 | #endif /* CONFIG_PPC_STD_MMU */ | 551 | #endif /* CONFIG_PPC_STD_MMU */ |
552 | #if (defined(CONFIG_PPC_BOOK3E_64) || defined(CONFIG_PPC_FSL_BOOK3E)) \ | ||
553 | && defined(CONFIG_HUGETLB_PAGE) | ||
554 | if (is_vm_hugetlb_page(vma)) | ||
555 | book3e_hugetlb_preload(vma->vm_mm, address, *ptep); | ||
556 | #endif | ||
551 | } | 557 | } |