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