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