49 lines · 911 B · C
RawDownload
#include <linux/kernel.h>#include <linux/module.h>#include <linux/export.h>#include <linux/mm.h>#include <linux/vmalloc.h>#include <linux/slab.h>#include <linux/sizes.h> #include <asm/page.h>#ifdef CONFIG_MIPS#include <asm/bootinfo.h>#endif struct foo {	unsigned int bar;}; struct foo *foo; static int __init test_debug_virtual_init(void){	phys_addr_t pa;	void *va; 	va = (void *)VMALLOC_START;	pa = virt_to_phys(va); 	pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va); 	foo = kzalloc(sizeof(*foo), GFP_KERNEL);	if (!foo)		return -ENOMEM; 	pa = virt_to_phys(foo);	va = foo;	pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va); 	return 0;}module_init(test_debug_virtual_init); static void __exit test_debug_virtual_exit(void){	kfree(foo);}module_exit(test_debug_virtual_exit); MODULE_LICENSE("GPL");MODULE_DESCRIPTION("Test module for CONFIG_DEBUG_VIRTUAL");