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

set_memory.h (1737B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright 2017, Michael Ellerman, IBM Corporation.
      4 */
      5#ifndef _LINUX_SET_MEMORY_H_
      6#define _LINUX_SET_MEMORY_H_
      7
      8#ifdef CONFIG_ARCH_HAS_SET_MEMORY
      9#include <asm/set_memory.h>
     10#else
     11static inline int set_memory_ro(unsigned long addr, int numpages) { return 0; }
     12static inline int set_memory_rw(unsigned long addr, int numpages) { return 0; }
     13static inline int set_memory_x(unsigned long addr,  int numpages) { return 0; }
     14static inline int set_memory_nx(unsigned long addr, int numpages) { return 0; }
     15#endif
     16
     17#ifndef CONFIG_ARCH_HAS_SET_DIRECT_MAP
     18static inline int set_direct_map_invalid_noflush(struct page *page)
     19{
     20	return 0;
     21}
     22static inline int set_direct_map_default_noflush(struct page *page)
     23{
     24	return 0;
     25}
     26
     27static inline bool kernel_page_present(struct page *page)
     28{
     29	return true;
     30}
     31#else /* CONFIG_ARCH_HAS_SET_DIRECT_MAP */
     32/*
     33 * Some architectures, e.g. ARM64 can disable direct map modifications at
     34 * boot time. Let them overrive this query.
     35 */
     36#ifndef can_set_direct_map
     37static inline bool can_set_direct_map(void)
     38{
     39	return true;
     40}
     41#define can_set_direct_map can_set_direct_map
     42#endif
     43#endif /* CONFIG_ARCH_HAS_SET_DIRECT_MAP */
     44
     45#ifdef CONFIG_X86_64
     46int set_mce_nospec(unsigned long pfn);
     47int clear_mce_nospec(unsigned long pfn);
     48#else
     49static inline int set_mce_nospec(unsigned long pfn)
     50{
     51	return 0;
     52}
     53static inline int clear_mce_nospec(unsigned long pfn)
     54{
     55	return 0;
     56}
     57#endif
     58
     59#ifndef CONFIG_ARCH_HAS_MEM_ENCRYPT
     60static inline int set_memory_encrypted(unsigned long addr, int numpages)
     61{
     62	return 0;
     63}
     64
     65static inline int set_memory_decrypted(unsigned long addr, int numpages)
     66{
     67	return 0;
     68}
     69#endif /* CONFIG_ARCH_HAS_MEM_ENCRYPT */
     70
     71#endif /* _LINUX_SET_MEMORY_H_ */