Since commit 9e343b467c70 ("READ_ONCE: Enforce atomicity for {READ,WRITE}_ONCE() memory accesses") it is not possible anymore to use READ_ONCE() to access complex page table entries like the one defined for powerpc 8xx with 16k size pages. Define a ptep_get() helper that architectures can override instead of performing a READ_ONCE() on the page table entry pointer.
Showing the changes to include/linux (1 of 3 files). Show all
Unified · Split
| @@ -249,6 +249,13 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, · 248 unmodified lines | ||
| 249 | 249 | } |
| 250 | 250 | #endif |
| 251 | 251 | |
| 252 | +#ifndef __HAVE_ARCH_PTEP_GET | |
| 253 | +static inline pte_t ptep_get(pte_t *ptep) | |
| 254 | +{ | |
| 255 | + return READ_ONCE(*ptep); | |
| 256 | +} | |
| 257 | +#endif | |
| 258 | + | |
| 252 | 259 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
| 253 | 260 | #ifndef __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR |
| 254 | 261 | static inline pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm, |