Message ID | 20190227170608.27963-19-steven.price@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Convert x86 & arm64 to use generic page walk | expand |
On Wed, 27 Feb 2019 17:05:52 +0000 Steven Price <steven.price@arm.com> wrote: > walk_page_range() is going to be allowed to walk page tables other than > those of user space. For this it needs to know when it has reached a > 'leaf' entry in the page tables. This information is provided by the > p?d_large() functions/macros. > > For s390, we don't support large pages, so add a stub returning 0. Well s390 does support 1MB and 2GB large pages, pmd_large() and pud_large() are non-empty. We do not support 4TB or 8PB large pages though, which makes the patch itself correct. Just the wording is slightly off. > CC: Martin Schwidefsky <schwidefsky@de.ibm.com> > CC: Heiko Carstens <heiko.carstens@de.ibm.com> > CC: linux-s390@vger.kernel.org > Signed-off-by: Steven Price <steven.price@arm.com> > --- > arch/s390/include/asm/pgtable.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h > index 063732414dfb..9617f1fb69b4 100644 > --- a/arch/s390/include/asm/pgtable.h > +++ b/arch/s390/include/asm/pgtable.h > @@ -605,6 +605,11 @@ static inline int pgd_present(pgd_t pgd) > return (pgd_val(pgd) & _REGION_ENTRY_ORIGIN) != 0UL; > } > > +static inline int pgd_large(pgd_t pgd) > +{ > + return 0; > +} > + > static inline int pgd_none(pgd_t pgd) > { > if (pgd_folded(pgd)) > @@ -645,6 +650,11 @@ static inline int p4d_present(p4d_t p4d) > return (p4d_val(p4d) & _REGION_ENTRY_ORIGIN) != 0UL; > } > > +static inline int p4d_large(p4d_t p4d) > +{ > + return 0; > +} > + > static inline int p4d_none(p4d_t p4d) > { > if (p4d_folded(p4d))
On 27/02/2019 17:40, Martin Schwidefsky wrote: > On Wed, 27 Feb 2019 17:05:52 +0000 > Steven Price <steven.price@arm.com> wrote: > >> walk_page_range() is going to be allowed to walk page tables other than >> those of user space. For this it needs to know when it has reached a >> 'leaf' entry in the page tables. This information is provided by the >> p?d_large() functions/macros. >> >> For s390, we don't support large pages, so add a stub returning 0. > > Well s390 does support 1MB and 2GB large pages, pmd_large() and pud_large() > are non-empty. We do not support 4TB or 8PB large pages though, which > makes the patch itself correct. Just the wording is slightly off. Sorry, you're absolutely right - I'll update the commit message for the next posting. Thanks, Steve >> CC: Martin Schwidefsky <schwidefsky@de.ibm.com> >> CC: Heiko Carstens <heiko.carstens@de.ibm.com> >> CC: linux-s390@vger.kernel.org >> Signed-off-by: Steven Price <steven.price@arm.com> >> --- >> arch/s390/include/asm/pgtable.h | 10 ++++++++++ >> 1 file changed, 10 insertions(+) >> >> diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h >> index 063732414dfb..9617f1fb69b4 100644 >> --- a/arch/s390/include/asm/pgtable.h >> +++ b/arch/s390/include/asm/pgtable.h >> @@ -605,6 +605,11 @@ static inline int pgd_present(pgd_t pgd) >> return (pgd_val(pgd) & _REGION_ENTRY_ORIGIN) != 0UL; >> } >> >> +static inline int pgd_large(pgd_t pgd) >> +{ >> + return 0; >> +} >> + >> static inline int pgd_none(pgd_t pgd) >> { >> if (pgd_folded(pgd)) >> @@ -645,6 +650,11 @@ static inline int p4d_present(p4d_t p4d) >> return (p4d_val(p4d) & _REGION_ENTRY_ORIGIN) != 0UL; >> } >> >> +static inline int p4d_large(p4d_t p4d) >> +{ >> + return 0; >> +} >> + >> static inline int p4d_none(p4d_t p4d) >> { >> if (p4d_folded(p4d)) > >
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 063732414dfb..9617f1fb69b4 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h @@ -605,6 +605,11 @@ static inline int pgd_present(pgd_t pgd) return (pgd_val(pgd) & _REGION_ENTRY_ORIGIN) != 0UL; } +static inline int pgd_large(pgd_t pgd) +{ + return 0; +} + static inline int pgd_none(pgd_t pgd) { if (pgd_folded(pgd)) @@ -645,6 +650,11 @@ static inline int p4d_present(p4d_t p4d) return (p4d_val(p4d) & _REGION_ENTRY_ORIGIN) != 0UL; } +static inline int p4d_large(p4d_t p4d) +{ + return 0; +} + static inline int p4d_none(p4d_t p4d) { if (p4d_folded(p4d))
walk_page_range() is going to be allowed to walk page tables other than those of user space. For this it needs to know when it has reached a 'leaf' entry in the page tables. This information is provided by the p?d_large() functions/macros. For s390, we don't support large pages, so add a stub returning 0. CC: Martin Schwidefsky <schwidefsky@de.ibm.com> CC: Heiko Carstens <heiko.carstens@de.ibm.com> CC: linux-s390@vger.kernel.org Signed-off-by: Steven Price <steven.price@arm.com> --- arch/s390/include/asm/pgtable.h | 10 ++++++++++ 1 file changed, 10 insertions(+)