• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  #include <linux/kernel.h>
2  #include <linux/module.h>
3  #include <linux/export.h>
4  #include <linux/mm.h>
5  #include <linux/vmalloc.h>
6  #include <linux/slab.h>
7  #include <linux/sizes.h>
8  #include <linux/io.h>
9  
10  #include <asm/page.h>
11  #ifdef CONFIG_MIPS
12  #include <asm/bootinfo.h>
13  #endif
14  
15  struct foo {
16  	unsigned int bar;
17  };
18  
19  struct foo *foo;
20  
test_debug_virtual_init(void)21  static int __init test_debug_virtual_init(void)
22  {
23  	phys_addr_t pa;
24  	void *va;
25  
26  	va = (void *)VMALLOC_START;
27  	pa = virt_to_phys(va);
28  
29  	pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va);
30  
31  	foo = kzalloc(sizeof(*foo), GFP_KERNEL);
32  	if (!foo)
33  		return -ENOMEM;
34  
35  	pa = virt_to_phys(foo);
36  	va = foo;
37  	pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va);
38  
39  	return 0;
40  }
41  module_init(test_debug_virtual_init);
42  
test_debug_virtual_exit(void)43  static void __exit test_debug_virtual_exit(void)
44  {
45  	kfree(foo);
46  }
47  module_exit(test_debug_virtual_exit);
48  
49  MODULE_LICENSE("GPL");
50  MODULE_DESCRIPTION("Test module for CONFIG_DEBUG_VIRTUAL");
51