pti.c (7ae9fb1b7ecbb5d85d07857943f677fd1a559b18) pti.c (907835e6dee6f77ac30ae50bb3f88bd92055c86e)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright(c) 2017 Intel Corporation. All rights reserved.
4 *
5 * This code is based in part on work published here:
6 *
7 * https://github.com/IAIK/KAISER
8 *

--- 203 unchanged lines hidden (view full) ---

212 if (WARN_ON_ONCE(!new_pud_page))
213 return NULL;
214
215 set_p4d(p4d, __p4d(_KERNPG_TABLE | __pa(new_pud_page)));
216 }
217
218 pud = pud_offset(p4d, address);
219 /* The user page tables do not use large mappings: */
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright(c) 2017 Intel Corporation. All rights reserved.
4 *
5 * This code is based in part on work published here:
6 *
7 * https://github.com/IAIK/KAISER
8 *

--- 203 unchanged lines hidden (view full) ---

212 if (WARN_ON_ONCE(!new_pud_page))
213 return NULL;
214
215 set_p4d(p4d, __p4d(_KERNPG_TABLE | __pa(new_pud_page)));
216 }
217
218 pud = pud_offset(p4d, address);
219 /* The user page tables do not use large mappings: */
220 if (pud_large(*pud)) {
220 if (pud_leaf(*pud)) {
221 WARN_ON(1);
222 return NULL;
223 }
224 if (pud_none(*pud)) {
225 unsigned long new_pmd_page = __get_free_page(gfp);
226 if (WARN_ON_ONCE(!new_pmd_page))
227 return NULL;
228

--- 438 unchanged lines hidden ---
221 WARN_ON(1);
222 return NULL;
223 }
224 if (pud_none(*pud)) {
225 unsigned long new_pmd_page = __get_free_page(gfp);
226 if (WARN_ON_ONCE(!new_pmd_page))
227 return NULL;
228

--- 438 unchanged lines hidden ---