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