linux/lib/test_debug_virtual.c
<<
>>
Prefs
   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");
  52