mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
public/x86: remove HVMMEM_mmio_write_dm from the public interface
HVMMEM_mmio_write_dm is removed for new xen interface versions, and is replaced with type HVMMEM_unused. Attempts to set a page to this type will return -EINVAL in xen after 4.7.0. And there will be no pages with type p2m_mmio_write_dm, therefore HVMOP_get_mem_type will never get the old type - HVMMEM_mmio_write_dm. New approaches to write protect guest ram pages will be provided in future patches. Signed-off-by: Yu Zhang <yu.c.zhang@linux.intel.com> Reviewed-by: Paul Durrant <paul.durrant@citrix.com> Reviewed-by: George Dunlap <george.dunlap@citrix.com> Acked-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Wei Liu <wei.liu2@citrix.com> Release-acked-by: Wei Liu <wei.liu2@citrix.com>
This commit is contained in:
1 parent
7fb252bd41
commit
c858e932c1
2 files changed
+8
-4
No files matched your search
@@ -5497,8 +5497,6 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
|
||||
get_gfn_query_unlocked(d, a.pfn, &t);
|
||||
if ( p2m_is_mmio(t) )
|
||||
a.mem_type = HVMMEM_mmio_dm;
|
||||
else if ( t == p2m_mmio_write_dm )
|
||||
a.mem_type = HVMMEM_mmio_write_dm;
|
||||
else if ( p2m_is_readonly(t) )
|
||||
a.mem_type = HVMMEM_ram_ro;
|
||||
else if ( p2m_is_ram(t) )
|
||||
@@ -5529,7 +5527,7 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
|
||||
[HVMMEM_ram_rw] = p2m_ram_rw,
|
||||
[HVMMEM_ram_ro] = p2m_ram_ro,
|
||||
[HVMMEM_mmio_dm] = p2m_mmio_dm,
|
||||
[HVMMEM_mmio_write_dm] = p2m_mmio_write_dm
|
||||
[HVMMEM_unused] = p2m_invalid
|
||||
};
|
||||
|
||||
if ( copy_from_guest(&a, arg, 1) )
|
||||
@@ -5553,7 +5551,8 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
|
||||
((a.first_pfn + a.nr - 1) > domain_get_maximum_gpfn(d)) )
|
||||
goto setmemtype_fail;
|
||||
|
||||
if ( a.hvmmem_type >= ARRAY_SIZE(memtype) )
|
||||
if ( a.hvmmem_type >= ARRAY_SIZE(memtype) ||
|
||||
unlikely(a.hvmmem_type == HVMMEM_unused) )
|
||||
goto setmemtype_fail;
|
||||
|
||||
while ( a.nr > start_iter )
|
||||
|
||||
@@ -83,7 +83,12 @@ typedef enum {
|
||||
HVMMEM_ram_rw, /* Normal read/write guest RAM */
|
||||
HVMMEM_ram_ro, /* Read-only; writes are discarded */
|
||||
HVMMEM_mmio_dm, /* Reads and write go to the device model */
|
||||
#if __XEN_INTERFACE_VERSION__ < 0x00040700
|
||||
HVMMEM_mmio_write_dm /* Read-only; writes go to the device model */
|
||||
#else
|
||||
HVMMEM_unused /* Placeholder; setting memory to this type
|
||||
will fail for code after 4.7.0 */
|
||||
#endif
|
||||
} hvmmem_type_t;
|
||||
|
||||
/* Following tools-only interfaces may change in future. */
|
||||
|
||||