|
|
@@ -426,38 +426,15 @@ void ptdump_walk_pgd_level(struct seq_file *m, pgd_t *pgd)
|
|
|
{
|
|
|
ptdump_walk_pgd_level_core(m, pgd, false);
|
|
|
}
|
|
|
+EXPORT_SYMBOL_GPL(ptdump_walk_pgd_level);
|
|
|
|
|
|
void ptdump_walk_pgd_level_checkwx(void)
|
|
|
{
|
|
|
ptdump_walk_pgd_level_core(NULL, NULL, true);
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_X86_PTDUMP
|
|
|
-static int ptdump_show(struct seq_file *m, void *v)
|
|
|
+static int __init pt_dump_init(void)
|
|
|
{
|
|
|
- ptdump_walk_pgd_level(m, NULL);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-static int ptdump_open(struct inode *inode, struct file *filp)
|
|
|
-{
|
|
|
- return single_open(filp, ptdump_show, NULL);
|
|
|
-}
|
|
|
-
|
|
|
-static const struct file_operations ptdump_fops = {
|
|
|
- .open = ptdump_open,
|
|
|
- .read = seq_read,
|
|
|
- .llseek = seq_lseek,
|
|
|
- .release = single_release,
|
|
|
-};
|
|
|
-#endif
|
|
|
-
|
|
|
-static int pt_dump_init(void)
|
|
|
-{
|
|
|
-#ifdef CONFIG_X86_PTDUMP
|
|
|
- struct dentry *pe;
|
|
|
-#endif
|
|
|
-
|
|
|
#ifdef CONFIG_X86_32
|
|
|
/* Not a compile-time constant on x86-32 */
|
|
|
address_markers[VMALLOC_START_NR].start_address = VMALLOC_START;
|
|
|
@@ -468,13 +445,6 @@ static int pt_dump_init(void)
|
|
|
address_markers[FIXADDR_START_NR].start_address = FIXADDR_START;
|
|
|
#endif
|
|
|
|
|
|
-#ifdef CONFIG_X86_PTDUMP
|
|
|
- pe = debugfs_create_file("kernel_page_tables", 0600, NULL, NULL,
|
|
|
- &ptdump_fops);
|
|
|
- if (!pe)
|
|
|
- return -ENOMEM;
|
|
|
-#endif
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|