On 02/22/2018 02:21 PM, Nadav Amit wrote: > Dave Hansen <[email protected]> wrote: >> From: Dave Hansen <[email protected]> >> The __PAGE_KERNEL_* page permissions are "raw". They contain bits >> that may or may not be supported on the current processor. They >> need to be filtered by a mask (currently __supported_pte_mask) to >> turn them into a value that we can actually set in a PTE. >> >> These __PAGE_KERNEL_* values all contain _PAGE_GLOBAL. But, with >> PTI, we want to be able to support _PAGE_GLOBAL (have the bit set >> in __supported_pte_mask) but not have it appear in any of these >> masks by default. > > There might be a potential issue with this approach. __supported_pte_mask is > exported, so out-of-tree modules might use it. They therefore can > unknowingly use this value to set PTEs with _PAGE_GLOBAL set.
I don't think we can help out-of-tree modules getting this wrong. They're OK if they use PAGE_KERNEL*, btw.

