From: Aravindh Puthiyaparambil <aravindp@cisco.com>
To: xen-devel@lists.xenproject.org
Cc: Tim Deegan <tim@xen.org>, Keir Fraser <keir@xen.org>,
Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v3 5/5] x86/mem_access: Deprecate the HVM mem_access ops
Date: Tue, 15 Apr 2014 17:25:26 -0700 [thread overview]
Message-ID: <1397607926-15298-6-git-send-email-aravindp@cisco.com> (raw)
In-Reply-To: <1397607926-15298-1-git-send-email-aravindp@cisco.com>
This patch does the following:
1. Deprecate the HVMOP_[sg]et_mem_access HVM ops.
2. Remove the enums and structs associated with the HVM ops.
Signed-off-by: Aravindh Puthiyaparambil <aravindp@cisco.com>
Cc: Keir Fraser <keir@xen.org>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Tim Deegan <tim@xen.org>
---
This was part of "x86/mem_access: Make the mem_access ops generic" in
the earlier versions of the series and is now a seperate patch.
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 8363257..44ddd8e 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4589,81 +4589,9 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
}
case HVMOP_set_mem_access:
- {
- struct xen_hvm_set_mem_access a;
- struct domain *d;
-
- if ( copy_from_guest(&a, arg, 1) )
- return -EFAULT;
-
- rc = rcu_lock_remote_domain_by_id(a.domid, &d);
- if ( rc != 0 )
- return rc;
-
- rc = -EINVAL;
- if ( !is_hvm_domain(d) )
- goto param_fail5;
-
- rc = xsm_hvm_param(XSM_TARGET, d, op);
- if ( rc )
- goto param_fail5;
-
- rc = -EINVAL;
- if ( (a.first_pfn != ~0ull) &&
- (a.nr < start_iter ||
- ((a.first_pfn + a.nr - 1) < a.first_pfn) ||
- ((a.first_pfn + a.nr - 1) > domain_get_maximum_gpfn(d))) )
- goto param_fail5;
-
- rc = p2m_set_mem_access(d, a.first_pfn, a.nr, start_iter,
- HVMOP_op_mask, a.hvmmem_access);
- if ( rc > 0 )
- {
- start_iter = rc;
- rc = -EAGAIN;
- }
-
- param_fail5:
- rcu_unlock_domain(d);
- break;
- }
-
case HVMOP_get_mem_access:
- {
- struct xen_hvm_get_mem_access a;
- struct domain *d;
- xenmem_access_t access;
-
- if ( copy_from_guest(&a, arg, 1) )
- return -EFAULT;
-
- rc = rcu_lock_remote_domain_by_id(a.domid, &d);
- if ( rc != 0 )
- return rc;
-
- rc = -EINVAL;
- if ( !is_hvm_domain(d) )
- goto param_fail6;
-
- rc = xsm_hvm_param(XSM_TARGET, d, op);
- if ( rc )
- goto param_fail6;
-
- rc = -EINVAL;
- if ( (a.pfn > domain_get_maximum_gpfn(d)) && a.pfn != ~0ull )
- goto param_fail6;
-
- rc = p2m_get_mem_access(d, a.pfn, &access);
- if ( rc != 0 )
- goto param_fail6;
-
- a.hvmmem_access = access;
- rc = __copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
-
- param_fail6:
- rcu_unlock_domain(d);
+ rc = -ENOSYS;
break;
- }
case HVMOP_pagetable_dying:
{
diff --git a/xen/include/public/hvm/hvm_op.h b/xen/include/public/hvm/hvm_op.h
index 3204ec4..f00f6d2 100644
--- a/xen/include/public/hvm/hvm_op.h
+++ b/xen/include/public/hvm/hvm_op.h
@@ -162,49 +162,11 @@ DEFINE_XEN_GUEST_HANDLE(xen_hvm_xentrace_t);
/* Following tools-only interfaces may change in future. */
#if defined(__XEN__) || defined(__XEN_TOOLS__)
+/* Deprecated by XENMEM_access_op_set_access */
#define HVMOP_set_mem_access 12
-typedef enum {
- HVMMEM_access_n,
- HVMMEM_access_r,
- HVMMEM_access_w,
- HVMMEM_access_rw,
- HVMMEM_access_x,
- HVMMEM_access_rx,
- HVMMEM_access_wx,
- HVMMEM_access_rwx,
- HVMMEM_access_rx2rw, /* Page starts off as r-x, but automatically
- * change to r-w on a write */
- HVMMEM_access_n2rwx, /* Log access: starts off as n, automatically
- * goes to rwx, generating an event without
- * pausing the vcpu */
- HVMMEM_access_default /* Take the domain default */
-} hvmmem_access_t;
-/* Notify that a region of memory is to have specific access types */
-struct xen_hvm_set_mem_access {
- /* Domain to be updated. */
- domid_t domid;
- /* Memory type */
- uint16_t hvmmem_access; /* hvm_access_t */
- /* Number of pages, ignored on setting default access */
- uint32_t nr;
- /* First pfn, or ~0ull to set the default access for new pages */
- uint64_aligned_t first_pfn;
-};
-typedef struct xen_hvm_set_mem_access xen_hvm_set_mem_access_t;
-DEFINE_XEN_GUEST_HANDLE(xen_hvm_set_mem_access_t);
+/* Deprecated by XENMEM_access_op_get_access */
#define HVMOP_get_mem_access 13
-/* Get the specific access type for that region of memory */
-struct xen_hvm_get_mem_access {
- /* Domain to be queried. */
- domid_t domid;
- /* Memory type: OUT */
- uint16_t hvmmem_access; /* hvm_access_t */
- /* pfn, or ~0ull for default access for new pages. IN */
- uint64_aligned_t pfn;
-};
-typedef struct xen_hvm_get_mem_access xen_hvm_get_mem_access_t;
-DEFINE_XEN_GUEST_HANDLE(xen_hvm_get_mem_access_t);
#define HVMOP_inject_trap 14
/* Inject a trap into a VCPU, which will get taken up on the next
--
1.8.3.2
next prev parent reply other threads:[~2014-04-16 0:25 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-16 0:25 [PATCH v3 0/5] Make mem_access APIs and hypercalls generic Aravindh Puthiyaparambil
2014-04-16 0:25 ` [PATCH v3 1/5] x86/mem_access: Make the mem_access ops generic Aravindh Puthiyaparambil
2014-04-16 9:24 ` Jan Beulich
2014-04-16 0:25 ` [PATCH v3 2/5] tools/libxc: Make the mem_access APIs generic Aravindh Puthiyaparambil
2014-04-16 15:58 ` Ian Campbell
2014-04-17 9:46 ` Tamas Lengyel
2014-04-17 15:52 ` Aravindh Puthiyaparambil (aravindp)
2014-04-17 20:50 ` Tamas Lengyel
2014-04-16 0:25 ` [PATCH v3 3/5] tools/xen-access: Use the new mem_access APIs Aravindh Puthiyaparambil
2014-04-16 15:58 ` Ian Campbell
2014-04-16 0:25 ` [PATCH v3 4/5] tools/libxc: Remove xc_hvm_[sg]et_mem_access() APIs Aravindh Puthiyaparambil
2014-04-16 15:59 ` Ian Campbell
2014-04-16 0:25 ` Aravindh Puthiyaparambil [this message]
2014-04-16 9:28 ` [PATCH v3 5/5] x86/mem_access: Deprecate the HVM mem_access ops Jan Beulich
2014-04-16 15:18 ` Aravindh Puthiyaparambil (aravindp)
2014-04-16 16:11 ` Jan Beulich
2014-04-24 11:13 ` [PATCH v3 0/5] Make mem_access APIs and hypercalls generic Tim Deegan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1397607926-15298-6-git-send-email-aravindp@cisco.com \
--to=aravindp@cisco.com \
--cc=jbeulich@suse.com \
--cc=keir@xen.org \
--cc=tim@xen.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).