mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-16 14:56:30 +07:00
08dbd0f8ef
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 and only version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 94 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Richard Fontana <rfontana@redhat.com> Reviewed-by: Alexios Zavras <alexios.zavras@intel.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.043630402@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
46 lines
1.5 KiB
C
46 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* TLB flush support for Hexagon
|
|
*
|
|
* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _ASM_TLBFLUSH_H
|
|
#define _ASM_TLBFLUSH_H
|
|
|
|
#include <linux/mm.h>
|
|
#include <asm/processor.h>
|
|
|
|
/*
|
|
* TLB flushing -- in "SMP", these routines get defined to be the
|
|
* ones from smp.c, else they are some local flavors.
|
|
*/
|
|
|
|
/*
|
|
* These functions are commonly macros, but in the interests of
|
|
* VM vs. native implementation and code size, we simply declare
|
|
* the function prototypes here.
|
|
*/
|
|
extern void tlb_flush_all(void);
|
|
extern void flush_tlb_mm(struct mm_struct *mm);
|
|
extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr);
|
|
extern void flush_tlb_range(struct vm_area_struct *vma,
|
|
unsigned long start, unsigned long end);
|
|
extern void flush_tlb_kernel_range(unsigned long start, unsigned long end);
|
|
extern void flush_tlb_one(unsigned long);
|
|
|
|
/*
|
|
* "This is called in munmap when we have freed up some page-table pages.
|
|
* We don't need to do anything here..."
|
|
*
|
|
* The VM kernel doesn't walk page tables, and they are passed to the VMM
|
|
* by logical address. There doesn't seem to be any possibility that they
|
|
* could be referenced by the VM kernel based on a stale mapping, since
|
|
* they would only be located by consulting the mm structure, and they
|
|
* will have been purged from that structure by the munmap. Seems like
|
|
* a noop on HVM as well.
|
|
*/
|
|
#define flush_tlb_pgtables(mm, start, end)
|
|
|
|
#endif
|