diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-01-12 11:08:13 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-01-12 11:08:13 +0100 |
commit | c0c57019a65341f08858541d2740b74dee821cf1 (patch) | |
tree | 584ac03f7dfa26c9c45c3d66ad306222e893fa33 /arch/x86/mm/debug_pagetables.c | |
parent | 8c31902cffc4d716450be549c66a67a8a3dd479c (diff) | |
parent | ae8a52185e5c070cf4510b323dbc1b9e46b897d6 (diff) | |
download | op-kernel-dev-c0c57019a65341f08858541d2740b74dee821cf1.zip op-kernel-dev-c0c57019a65341f08858541d2740b74dee821cf1.tar.gz |
Merge commit 'linus' into x86/urgent, to pick up recent x86 changes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/mm/debug_pagetables.c')
-rw-r--r-- | arch/x86/mm/debug_pagetables.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/arch/x86/mm/debug_pagetables.c b/arch/x86/mm/debug_pagetables.c new file mode 100644 index 0000000..bfcffdf --- /dev/null +++ b/arch/x86/mm/debug_pagetables.c @@ -0,0 +1,46 @@ +#include <linux/debugfs.h> +#include <linux/module.h> +#include <linux/seq_file.h> +#include <asm/pgtable.h> + +static int ptdump_show(struct seq_file *m, void *v) +{ + 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 = { + .owner = THIS_MODULE, + .open = ptdump_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static struct dentry *pe; + +static int __init pt_dump_debug_init(void) +{ + pe = debugfs_create_file("kernel_page_tables", S_IRUSR, NULL, NULL, + &ptdump_fops); + if (!pe) + return -ENOMEM; + + return 0; +} + +static void __exit pt_dump_debug_exit(void) +{ + debugfs_remove_recursive(pe); +} + +module_init(pt_dump_debug_init); +module_exit(pt_dump_debug_exit); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Arjan van de Ven <arjan@linux.intel.com>"); +MODULE_DESCRIPTION("Kernel debugging helper that dumps pagetables"); |