Contributors: 7
	  
        
          | Author | 
          Tokens | 
          Token Proportion | 
          Commits | 
          Commit Proportion | 
        
	  
	  
        
        
          | Christophe Leroy | 
          110 | 
          67.90% | 
          2 | 
          20.00% | 
        
        
          | Nicholas Miehlbradt | 
          33 | 
          20.37% | 
          1 | 
          10.00% | 
        
        
          | Aneesh Kumar K.V | 
          7 | 
          4.32% | 
          1 | 
          10.00% | 
        
        
          | Linus Torvalds (pre-git) | 
          5 | 
          3.09% | 
          3 | 
          30.00% | 
        
        
          | Linus Walleij | 
          4 | 
          2.47% | 
          1 | 
          10.00% | 
        
        
          | Andrew Morton | 
          2 | 
          1.23% | 
          1 | 
          10.00% | 
        
        
          | Paul Mackerras | 
          1 | 
          0.62% | 
          1 | 
          10.00% | 
        
	  
	  
        
          | Total | 
          162 | 
           | 
          10 | 
           | 
	    
	  
    
 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * powerpc KFENCE support.
 *
 * Copyright (C) 2020 CS GROUP France
 */
#ifndef __ASM_POWERPC_KFENCE_H
#define __ASM_POWERPC_KFENCE_H
#include <linux/mm.h>
#include <asm/pgtable.h>
#ifdef CONFIG_PPC64_ELF_ABI_V1
#define ARCH_FUNC_PREFIX "."
#endif
static inline bool arch_kfence_init_pool(void)
{
	return true;
}
#ifdef CONFIG_PPC64
static inline bool kfence_protect_page(unsigned long addr, bool protect)
{
	struct page *page = virt_to_page((void *)addr);
	__kernel_map_pages(page, 1, !protect);
	return true;
}
#else
static inline bool kfence_protect_page(unsigned long addr, bool protect)
{
	pte_t *kpte = virt_to_kpte(addr);
	if (protect) {
		pte_update(&init_mm, addr, kpte, _PAGE_PRESENT, 0, 0);
		flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
	} else {
		pte_update(&init_mm, addr, kpte, 0, _PAGE_PRESENT, 0);
	}
	return true;
}
#endif
#endif /* __ASM_POWERPC_KFENCE_H */