mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
arm/x86: change [modify,destroy]_xen_mappings to return error
The implementation on x86 always returns zero, but other platforms may return error values. Reviewed-by: Julien Grall <julien.grall@arm.com> [arm bits] Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> [x86 bits] Suggested-by: Julien Grall <julien.grall@arm.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
1 parent
115e4c5e52
commit
3eb51dda71
4 files changed
+9
-10
No files matched your search
+2
-2
@@ -917,9 +917,9 @@ int populate_pt_range(unsigned long virt, unsigned long mfn,
|
||||
return create_xen_entries(RESERVE, virt, mfn, nr_mfns, 0);
|
||||
}
|
||||
|
||||
void destroy_xen_mappings(unsigned long v, unsigned long e)
|
||||
int destroy_xen_mappings(unsigned long v, unsigned long e)
|
||||
{
|
||||
create_xen_entries(REMOVE, v, 0, (e - v) >> PAGE_SHIFT, 0);
|
||||
return create_xen_entries(REMOVE, v, 0, (e - v) >> PAGE_SHIFT, 0);
|
||||
}
|
||||
|
||||
enum mg { mg_clear, mg_ro, mg_rw, mg_rx };
|
||||
|
||||
@@ -212,9 +212,7 @@ int arch_livepatch_secure(const void *va, unsigned int pages, enum va_type type)
|
||||
else
|
||||
flag = PAGE_HYPERVISOR_RO;
|
||||
|
||||
modify_xen_mappings(start, start + pages * PAGE_SIZE, flag);
|
||||
|
||||
return 0;
|
||||
return modify_xen_mappings(start, start + pages * PAGE_SIZE, flag);
|
||||
}
|
||||
|
||||
void __init arch_livepatch_init(void)
|
||||
|
||||
+4
-3
@@ -5976,7 +5976,7 @@ int populate_pt_range(unsigned long virt, unsigned long mfn,
|
||||
*
|
||||
* It is an error to call with present flags over an unpopulated range.
|
||||
*/
|
||||
void modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
|
||||
int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
|
||||
{
|
||||
bool_t locking = system_state > SYS_STATE_boot;
|
||||
l2_pgentry_t *pl2e;
|
||||
@@ -6151,13 +6151,14 @@ void modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
|
||||
flush_area(NULL, FLUSH_TLB_GLOBAL);
|
||||
|
||||
#undef FLAGS_MASK
|
||||
return 0;
|
||||
}
|
||||
|
||||
#undef flush_area
|
||||
|
||||
void destroy_xen_mappings(unsigned long s, unsigned long e)
|
||||
int destroy_xen_mappings(unsigned long s, unsigned long e)
|
||||
{
|
||||
modify_xen_mappings(s, e, _PAGE_NONE);
|
||||
return modify_xen_mappings(s, e, _PAGE_NONE);
|
||||
}
|
||||
|
||||
void __set_fixmap(
|
||||
|
||||
@@ -146,8 +146,8 @@ int map_pages_to_xen(
|
||||
unsigned long nr_mfns,
|
||||
unsigned int flags);
|
||||
/* Alter the permissions of a range of Xen virtual address space. */
|
||||
void modify_xen_mappings(unsigned long s, unsigned long e, unsigned int flags);
|
||||
void destroy_xen_mappings(unsigned long v, unsigned long e);
|
||||
int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int flags);
|
||||
int destroy_xen_mappings(unsigned long v, unsigned long e);
|
||||
/*
|
||||
* Create only non-leaf page table entries for the
|
||||
* page range in Xen virtual address space.
|
||||
|
||||