rpms/kernel-xen-2.6/devel linux-2.6-xen-0017-xen-x86_64-Add-64-bit-version-of-privcmd_hypercall.patch, NONE, 1.1.2.1 Makefile, 1.2.6.6, 1.2.6.7 Makefile.config, 1.2.4.6, 1.2.4.7 kernel.spec, 1.11.2.15, 1.11.2.16

Mark McLoughlin (markmc) fedora-extras-commits at redhat.com
Thu Mar 6 11:30:35 UTC 2008


Author: markmc

Update of /cvs/pkgs/rpms/kernel-xen-2.6/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv5428

Modified Files:
      Tag: private-markmc-pv-ops-branch
	Makefile Makefile.config kernel.spec 
Added Files:
      Tag: private-markmc-pv-ops-branch
	linux-2.6-xen-0017-xen-x86_64-Add-64-bit-version-of-privcmd_hypercall.patch 
Log Message:
Fix privcmd build on x86_64


linux-2.6-xen-0017-xen-x86_64-Add-64-bit-version-of-privcmd_hypercall.patch:

--- NEW FILE linux-2.6-xen-0017-xen-x86_64-Add-64-bit-version-of-privcmd_hypercall.patch ---
>From d00be6cef97823ca14f0c9a3d05a4ecbdda9c6f2 Mon Sep 17 00:00:00 2001
From: Mark McLoughlin <markmc at redhat.com>
Date: Thu, 6 Mar 2008 11:10:59 +0000
Subject: [PATCH] xen x86_64: Add 64 bit version of privcmd_hypercall()

Signed-off-by: Mark McLoughlin <markmc at redhat.com>
---
 include/asm-x86/xen/hypercall.h |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/include/asm-x86/xen/hypercall.h b/include/asm-x86/xen/hypercall.h
index a99725b..77108b4 100644
--- a/include/asm-x86/xen/hypercall.h
+++ b/include/asm-x86/xen/hypercall.h
@@ -545,6 +545,7 @@ MULTI_stack_switch(struct multicall_entry *mcl,
 
 #include <xen/sys/privcmd.h>
 
+#ifdef CONFIG_X86_32
 static inline int privcmd_hypercall(privcmd_hypercall_t *hypercall)
 {
 	int ret;
@@ -570,5 +571,32 @@ static inline int privcmd_hypercall(privcmd_hypercall_t *hypercall)
 
 	return ret;
 }
+#else /* CONFIG_X86_32 */
+static inline int privcmd_hypercall(privcmd_hypercall_t *hypercall)
+{
+	int ret;
+        long ign1, ign2, ign3;
+
+	if (hypercall->op >= (PAGE_SIZE >> 5))
+		return -EINVAL;
+
+        __asm__ __volatile__ (
+		"movq %8,%%r10; movq %9,%%r8;"
+                "shll $5,%%eax ;"
+                "addq $hypercall_page,%%rax ;"
+                "call *%%rax"
+                : "=a" (ret), "=D" (ign1),
+                  "=S" (ign2), "=d" (ign3)
+                : "0" ((unsigned int)hypercall->op),
+                  "1" (hypercall->arg[0]),
+                  "2" (hypercall->arg[1]),
+                  "3" (hypercall->arg[2]),
+                  "g" (hypercall->arg[3]),
+                  "g" (hypercall->arg[4])
+                : "r8", "r10", "memory" );
+
+	return ret;
+}
+#endif /* CONFIG_X86_32 */
 
 #endif /* __HYPERCALL_H__ */
-- 
1.5.4.1







Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/kernel.spec,v
retrieving revision 1.11.2.15
retrieving revision 1.11.2.16
diff -u -r1.11.2.15 -r1.11.2.16
--- kernel.spec	6 Mar 2008 10:40:29 -0000	1.11.2.15
+++ kernel.spec	6 Mar 2008 11:29:54 -0000	1.11.2.16
@@ -687,6 +687,7 @@
 Patch5013: linux-2.6-xen-0014-xen-Add-Xen-s-sys-hypervisor-interface.patch
 Patch5014: linux-2.6-xen-0015-xen-debug-Add-xprintk-to-log-directly-via-hypercall.patch
 Patch5015: linux-2.6-xen-0016-xen-x86_64-Initial-x86_64-support-for-Xen-paravirt_.patch
+Patch5016: linux-2.6-xen-0017-xen-x86_64-Add-64-bit-version-of-privcmd_hypercall.patch
 # kernel-xen patches end
 
 # Xen hypervisor patches (20000+)
@@ -1250,6 +1251,7 @@
 ApplyPatch linux-2.6-xen-0015-xen-debug-Add-xprintk-to-log-directly-via-hypercall.patch
 %ifarch x86_64
 ApplyPatch linux-2.6-xen-0016-xen-x86_64-Initial-x86_64-support-for-Xen-paravirt_.patch
+ApplyPatch linux-2.6-xen-0017-xen-x86_64-Add-64-bit-version-of-privcmd_hypercall.patch
 %endif
 # kernel-xen apply end
 




More information about the fedora-extras-commits mailing list