|
@@ -111,6 +111,8 @@ static struct addr_marker address_markers[] = {
|
|
[END_OF_SPACE_NR] = { -1, NULL }
|
|
[END_OF_SPACE_NR] = { -1, NULL }
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+#define INIT_PGD ((pgd_t *) &init_top_pgt)
|
|
|
|
+
|
|
#else /* CONFIG_X86_64 */
|
|
#else /* CONFIG_X86_64 */
|
|
|
|
|
|
enum address_markers_idx {
|
|
enum address_markers_idx {
|
|
@@ -139,6 +141,8 @@ static struct addr_marker address_markers[] = {
|
|
[END_OF_SPACE_NR] = { -1, NULL }
|
|
[END_OF_SPACE_NR] = { -1, NULL }
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+#define INIT_PGD (swapper_pg_dir)
|
|
|
|
+
|
|
#endif /* !CONFIG_X86_64 */
|
|
#endif /* !CONFIG_X86_64 */
|
|
|
|
|
|
/* Multipliers for offsets within the PTEs */
|
|
/* Multipliers for offsets within the PTEs */
|
|
@@ -496,11 +500,7 @@ static inline bool is_hypervisor_range(int idx)
|
|
static void ptdump_walk_pgd_level_core(struct seq_file *m, pgd_t *pgd,
|
|
static void ptdump_walk_pgd_level_core(struct seq_file *m, pgd_t *pgd,
|
|
bool checkwx, bool dmesg)
|
|
bool checkwx, bool dmesg)
|
|
{
|
|
{
|
|
-#ifdef CONFIG_X86_64
|
|
|
|
- pgd_t *start = (pgd_t *) &init_top_pgt;
|
|
|
|
-#else
|
|
|
|
- pgd_t *start = swapper_pg_dir;
|
|
|
|
-#endif
|
|
|
|
|
|
+ pgd_t *start = INIT_PGD;
|
|
pgprotval_t prot, eff;
|
|
pgprotval_t prot, eff;
|
|
int i;
|
|
int i;
|
|
struct pg_state st = {};
|
|
struct pg_state st = {};
|
|
@@ -566,7 +566,7 @@ EXPORT_SYMBOL_GPL(ptdump_walk_pgd_level_debugfs);
|
|
static void ptdump_walk_user_pgd_level_checkwx(void)
|
|
static void ptdump_walk_user_pgd_level_checkwx(void)
|
|
{
|
|
{
|
|
#ifdef CONFIG_PAGE_TABLE_ISOLATION
|
|
#ifdef CONFIG_PAGE_TABLE_ISOLATION
|
|
- pgd_t *pgd = (pgd_t *) &init_top_pgt;
|
|
|
|
|
|
+ pgd_t *pgd = INIT_PGD;
|
|
|
|
|
|
if (!static_cpu_has(X86_FEATURE_PTI))
|
|
if (!static_cpu_has(X86_FEATURE_PTI))
|
|
return;
|
|
return;
|