test_debug_virtual.c 981 B

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