File tree Expand file tree Collapse file tree 1 file changed +7
-0
lines changed Expand file tree Collapse file tree 1 file changed +7
-0
lines changed Original file line number Diff line number Diff line change @@ -98,6 +98,9 @@ static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
98
98
99
99
static inline void native_set_pud (pud_t * pudp , pud_t pud )
100
100
{
101
+ #ifdef CONFIG_PAGE_TABLE_ISOLATION
102
+ pud .p4d .pgd = pti_set_user_pgtbl (& pudp -> p4d .pgd , pud .p4d .pgd );
103
+ #endif
101
104
set_64bit ((unsigned long long * )(pudp ), native_pud_val (pud ));
102
105
}
103
106
@@ -229,6 +232,10 @@ static inline pud_t native_pudp_get_and_clear(pud_t *pudp)
229
232
{
230
233
union split_pud res , * orig = (union split_pud * )pudp ;
231
234
235
+ #ifdef CONFIG_PAGE_TABLE_ISOLATION
236
+ pti_set_user_pgtbl (& pudp -> p4d .pgd , __pgd (0 ));
237
+ #endif
238
+
232
239
/* xchg acts as a barrier before setting of the high bits */
233
240
res .pud_low = xchg (& orig -> pud_low , 0 );
234
241
res .pud_high = orig -> pud_high ;
You can’t perform that action at this time.
0 commit comments