[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] tmem cleanup



- don't mis-use guest handle for passing an MFN value
- eliminate unnecessary (and misplaced) use of XEN_GUEST_HANDLE_64
- use copy_from_guest() instead of __copy_from_guest() for loading the
  argument structure

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

--- 2009-06-10.orig/xen/common/tmem_xen.c       2009-05-27 13:54:07.000000000 
+0200
+++ 2009-06-10/xen/common/tmem_xen.c    2009-06-15 15:00:48.000000000 +0200
@@ -87,10 +87,7 @@ static inline void *cli_mfn_to_va(tmem_c
     unsigned long cli_mfn;
     p2m_type_t t;
 
-
-    if (is_pv_32on64_vcpu(current))
-        cmfn.p = (void *)((unsigned long)cmfn.p & 0xffffffffUL);
-    cli_mfn = mfn_x(gfn_to_mfn(current->domain,(unsigned long)cmfn.p,&t));
+    cli_mfn = mfn_x(gfn_to_mfn(current->domain, cmfn, &t));
     if (t != p2m_ram_rw)
         return NULL;
     if (pcli_mfn != NULL)
--- 2009-06-10.orig/xen/include/public/tmem.h   2009-05-27 13:54:07.000000000 
+0200
+++ 2009-06-10/xen/include/public/tmem.h        2009-06-15 14:58:25.000000000 
+0200
@@ -66,7 +66,7 @@
 
 
 #ifndef __ASSEMBLY__
-typedef XEN_GUEST_HANDLE(void) tmem_cli_mfn_t;
+typedef xen_pfn_t tmem_cli_mfn_t;
 typedef XEN_GUEST_HANDLE(char) tmem_cli_va_t;
 struct tmem_op {
     uint32_t cmd;
@@ -95,7 +95,6 @@ struct tmem_op {
 };
 typedef struct tmem_op tmem_op_t;
 DEFINE_XEN_GUEST_HANDLE(tmem_op_t);
-typedef XEN_GUEST_HANDLE_64(tmem_op_t) tmem_cli_op_t;
 
 #endif
 
--- 2009-06-10.orig/xen/include/xen/tmem_xen.h  2009-05-27 13:54:07.000000000 
+0200
+++ 2009-06-10/xen/include/xen/tmem_xen.h       2009-06-15 15:11:54.000000000 
+0200
@@ -281,12 +281,12 @@ static inline bool_t tmh_current_is_priv
 /* these typedefs are in the public/tmem.h interface
 typedef XEN_GUEST_HANDLE(void) cli_mfn_t;
 typedef XEN_GUEST_HANDLE(char) cli_va_t;
-typedef XEN_GUEST_HANDLE(tmem_op_t) cli_tmemop_t;
 */
+typedef XEN_GUEST_HANDLE(tmem_op_t) tmem_cli_op_t;
 
 static inline int tmh_get_tmemop_from_client(tmem_op_t *op, tmem_cli_op_t uops)
 {
-    return __copy_from_guest(op, uops, 1);
+    return copy_from_guest(op, uops, 1);
 }
 
 static inline void tmh_copy_to_client_buf_offset(tmem_cli_va_t clibuf, int off,




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.