ANDROID: virt: gunyah: add addrspace_modify_pages hypercall
The addrspace_modify_pages hypercall is used to unlock stage-2 page table entries, which allows the host/owner to unmap and reclaim those pages from guest. Bug: 395833312 Change-Id: I4168235333294a2647543eeda8beeaa40b0f7726 Signed-off-by: Elliot Berman <elliot.berman@oss.qualcomm.com>
This commit is contained in:
@@ -45,6 +45,7 @@ EXPORT_SYMBOL_GPL(arch_is_gunyah_guest);
|
||||
#define GUNYAH_HYPERCALL_ADDRSPACE_UNMAP GUNYAH_HYPERCALL(0x802C)
|
||||
#define GUNYAH_HYPERCALL_MEMEXTENT_DONATE GUNYAH_HYPERCALL(0x8061)
|
||||
#define GUNYAH_HYPERCALL_VCPU_RUN GUNYAH_HYPERCALL(0x8065)
|
||||
#define GUNYAH_HYPERCALL_ADDRSPC_MODIFY_PAGES GUNYAH_HYPERCALL(0x8069)
|
||||
#define GUNYAH_HYPERCALL_ADDRSPACE_FIND_INFO_AREA GUNYAH_HYPERCALL(0x806a)
|
||||
/* clang-format on */
|
||||
|
||||
@@ -67,6 +68,18 @@ void gunyah_hypercall_hyp_identify(
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(gunyah_hypercall_hyp_identify);
|
||||
|
||||
enum gunyah_error gunyah_hypercall_addrspc_modify_pages(u64 capid, u64 addr,
|
||||
u64 size, u64 flags)
|
||||
{
|
||||
struct arm_smccc_res res;
|
||||
|
||||
arm_smccc_1_1_hvc(GUNYAH_HYPERCALL_ADDRSPC_MODIFY_PAGES, capid,
|
||||
addr, size, flags, &res);
|
||||
|
||||
return res.a0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(gunyah_hypercall_addrspc_modify_pages);
|
||||
|
||||
/**
|
||||
* gunyah_hypercall_bell_send() - Assert a gunyah doorbell
|
||||
* @capid: capability ID of the doorbell
|
||||
|
||||
@@ -492,6 +492,11 @@ enum gunyah_error
|
||||
gunyah_hypercall_vcpu_run(u64 capid, unsigned long *resume_data,
|
||||
struct gunyah_hypercall_vcpu_run_resp *resp);
|
||||
|
||||
#define GUNYAH_ADDRSPC_MODIFY_FLAG_UNLOCK_BIT 0
|
||||
#define GUNYAH_ADDRSPC_MODIFY_FLAG_SANITIZE_BIT 1
|
||||
enum gunyah_error
|
||||
gunyah_hypercall_addrspc_modify_pages(u64 capid, u64 addr, u64 size, u64 flags);
|
||||
|
||||
enum gunyah_error
|
||||
gunyah_hypercall_addrspace_find_info_area(unsigned long *ipa, unsigned long *size);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user