projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
percpu: fix pcpu_alloc_pages() failure path
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
mm
/
huge_memory.c
diff --git
a/mm/huge_memory.c
b/mm/huge_memory.c
index
4df39b1
..
1c42d0c
100644
(file)
--- a/
mm/huge_memory.c
+++ b/
mm/huge_memory.c
@@
-1611,16
+1611,23
@@
pmd_t *page_check_address_pmd(struct page *page,
enum page_check_address_pmd_flag flag,
spinlock_t **ptl)
{
enum page_check_address_pmd_flag flag,
spinlock_t **ptl)
{
+ pgd_t *pgd;
+ pud_t *pud;
pmd_t *pmd;
if (address & ~HPAGE_PMD_MASK)
return NULL;
pmd_t *pmd;
if (address & ~HPAGE_PMD_MASK)
return NULL;
- p
md = mm_find_pmd
(mm, address);
- if (!p
md
)
+ p
gd = pgd_offset
(mm, address);
+ if (!p
gd_present(*pgd)
)
return NULL;
return NULL;
+ pud = pud_offset(pgd, address);
+ if (!pud_present(*pud))
+ return NULL;
+ pmd = pmd_offset(pud, address);
+
*ptl = pmd_lock(mm, pmd);
*ptl = pmd_lock(mm, pmd);
- if (
pmd_none
(*pmd))
+ if (
!pmd_present
(*pmd))
goto unlock;
if (pmd_page(*pmd) != page)
goto unlock;
goto unlock;
if (pmd_page(*pmd) != page)
goto unlock;
@@
-1961,7
+1968,7
@@
out:
return ret;
}
return ret;
}
-#define VM_NO_THP (VM_SPECIAL
|VM_MIXEDMAP|VM_HUGETLB|VM_SHARED|
VM_MAYSHARE)
+#define VM_NO_THP (VM_SPECIAL
| VM_HUGETLB | VM_SHARED |
VM_MAYSHARE)
int hugepage_madvise(struct vm_area_struct *vma,
unsigned long *vm_flags, int advice)
int hugepage_madvise(struct vm_area_struct *vma,
unsigned long *vm_flags, int advice)