s390/mm: use pmd_large() instead of pmd_huge()
Without CONFIG_HUGETLB_PAGE, pmd_huge() will always return 0. So pmd_large() should be used instead in places where both transparent huge pages and hugetlbfs pages can occur. Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
31370f75de
commit
156152f84e
|
@ -39,7 +39,7 @@ static __always_inline unsigned long follow_table(struct mm_struct *mm,
|
||||||
pmd = pmd_offset(pud, addr);
|
pmd = pmd_offset(pud, addr);
|
||||||
if (pmd_none(*pmd))
|
if (pmd_none(*pmd))
|
||||||
return -0x10UL;
|
return -0x10UL;
|
||||||
if (pmd_huge(*pmd)) {
|
if (pmd_large(*pmd)) {
|
||||||
if (write && (pmd_val(*pmd) & _SEGMENT_ENTRY_RO))
|
if (write && (pmd_val(*pmd) & _SEGMENT_ENTRY_RO))
|
||||||
return -0x04UL;
|
return -0x04UL;
|
||||||
return (pmd_val(*pmd) & HPAGE_MASK) + (addr & ~HPAGE_MASK);
|
return (pmd_val(*pmd) & HPAGE_MASK) + (addr & ~HPAGE_MASK);
|
||||||
|
|
|
@ -126,7 +126,7 @@ static inline int gup_pmd_range(pud_t *pudp, pud_t pud, unsigned long addr,
|
||||||
*/
|
*/
|
||||||
if (pmd_none(pmd) || pmd_trans_splitting(pmd))
|
if (pmd_none(pmd) || pmd_trans_splitting(pmd))
|
||||||
return 0;
|
return 0;
|
||||||
if (unlikely(pmd_huge(pmd))) {
|
if (unlikely(pmd_large(pmd))) {
|
||||||
if (!gup_huge_pmd(pmdp, pmd, addr, next,
|
if (!gup_huge_pmd(pmdp, pmd, addr, next,
|
||||||
write, pages, nr))
|
write, pages, nr))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue