cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

physaddr.c (891B)


      1// SPDX-License-Identifier: GPL-2.0
      2
      3#include <linux/types.h>
      4#include <linux/mmdebug.h>
      5#include <linux/mm.h>
      6#include <asm/page.h>
      7#include <asm/sections.h>
      8
      9phys_addr_t __virt_to_phys(unsigned long x)
     10{
     11	/*
     12	 * Boundary checking aginst the kernel linear mapping space.
     13	 */
     14	WARN(!is_linear_mapping(x) && !is_kernel_mapping(x),
     15	     "virt_to_phys used for non-linear address: %pK (%pS)\n",
     16	     (void *)x, (void *)x);
     17
     18	return __va_to_pa_nodebug(x);
     19}
     20EXPORT_SYMBOL(__virt_to_phys);
     21
     22phys_addr_t __phys_addr_symbol(unsigned long x)
     23{
     24	unsigned long kernel_start = kernel_map.virt_addr;
     25	unsigned long kernel_end = (unsigned long)_end;
     26
     27	/*
     28	 * Boundary checking aginst the kernel image mapping.
     29	 * __pa_symbol should only be used on kernel symbol addresses.
     30	 */
     31	VIRTUAL_BUG_ON(x < kernel_start || x > kernel_end);
     32
     33	return __va_to_pa_nodebug(x);
     34}
     35EXPORT_SYMBOL(__phys_addr_symbol);