diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-02-17 11:36:21 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-02-17 11:36:21 -0500 |
| commit | c5f1ac5e9afb199638414be77cbc22eb68e14d97 (patch) | |
| tree | 16b4cee5abafd5dca28be54d0d15e4d643e56dc4 | |
| parent | 0513ebc33ed6b590bfbaaf21cd7b3d571c20edb9 (diff) | |
| parent | a58007621be33e9f7c7bed5d5ff8ecb914e1044a (diff) | |
Merge tag 'powerpc-5.0-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
Pull powerpc fix from Michael Ellerman:
"Just one fix, for pgd/pud_present() which were broken on big endian
since v4.20, leading to possible data corruption.
Thanks to: Aneesh Kumar K.V., Erhard F., Jan Kara"
* tag 'powerpc-5.0-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/64s: Fix possible corruption on big endian due to pgd/pud_present()
| -rw-r--r-- | arch/powerpc/include/asm/book3s/64/pgtable.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h index c9bfe526ca9d..d8c8d7c9df15 100644 --- a/arch/powerpc/include/asm/book3s/64/pgtable.h +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h | |||
| @@ -904,7 +904,7 @@ static inline int pud_none(pud_t pud) | |||
| 904 | 904 | ||
| 905 | static inline int pud_present(pud_t pud) | 905 | static inline int pud_present(pud_t pud) |
| 906 | { | 906 | { |
| 907 | return (pud_raw(pud) & cpu_to_be64(_PAGE_PRESENT)); | 907 | return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PRESENT)); |
| 908 | } | 908 | } |
| 909 | 909 | ||
| 910 | extern struct page *pud_page(pud_t pud); | 910 | extern struct page *pud_page(pud_t pud); |
| @@ -951,7 +951,7 @@ static inline int pgd_none(pgd_t pgd) | |||
| 951 | 951 | ||
| 952 | static inline int pgd_present(pgd_t pgd) | 952 | static inline int pgd_present(pgd_t pgd) |
| 953 | { | 953 | { |
| 954 | return (pgd_raw(pgd) & cpu_to_be64(_PAGE_PRESENT)); | 954 | return !!(pgd_raw(pgd) & cpu_to_be64(_PAGE_PRESENT)); |
| 955 | } | 955 | } |
| 956 | 956 | ||
| 957 | static inline pte_t pgd_pte(pgd_t pgd) | 957 | static inline pte_t pgd_pte(pgd_t pgd) |
