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