// SPDX-License-Identifier: GPL-2.0-only/* * Copyright (C) 2012 - Virtual Open Systems and Columbia University * Author: Christoffer Dall <c.dall@virtualopensystems.com> */#include<linux/mman.h>#include<linux/kvm_host.h>#include<linux/io.h>#include<linux/hugetlb.h>#include<linux/sched/signal.h>#include<trace/events/kvm.h>#include<asm/pgalloc.h>#include<asm/cacheflush.h>#include<asm/kvm_arm.h>#include<asm/kvm_mmu.h>#include<asm/kvm_pgtable.h>#include<asm/kvm_ras.h>#include<asm/kvm_asm.h>#include<asm/kvm_emulate.h>#include<asm/virt.h>#include"trace.h"staticstructkvm_pgtable*hyp_pgtable;staticDEFINE_MUTEX(kvm_hyp_pgd_mutex);staticunsignedlonghyp_idmap_start;staticunsignedlonghyp_idmap_end;staticphys_addr_thyp_idmap_vector;staticunsignedlongio_map_base;/* * Release kvm_mmu_lock periodi