Re: [ANNOUNCE] kvm-56 release

Avi Kivity
2007-12-13T14:56:12Z

[-- Attachment #1: Type: text/plain, Size: 391 bytes --]

Pelle wrote:
> I get the following error when modprobing the new module:
>
> WARNING: Error inserting kvm
> (/lib/modules/2.6.22-14-generic/extra/kvm.ko): Unknown symbol in module,
> or unknown parameter (see dmesg)
> kvm: Unknown symbol cmpxchg64
>
> Ubuntu 7.10 32-bits, C2D E6300
>
>

Please try the attached patch.

--
error compiling committee.c: too many arguments to function

[-- Attachment #2: cmpxchg64.patch --]
[-- Type: text/x-patch, Size: 979 bytes --]

diff --git a/kernel/external-module-compat.h b/kernel/external-module-compat.h
index ea94f30..b044cf9 100644
--- a/kernel/external-module-compat.h
+++ b/kernel/external-module-compat.h
@@ -322,6 +322,28 @@ static inline void __kvm_set_64bit(u64 *ptr, u64 val)
#undef set_64bit
#define set_64bit __kvm_set_64bit

+static inline unsigned long long __kvm_cmpxchg64(volatile void *ptr,
+ unsigned long long old,
+ unsigned long long new)
+{
+ unsigned long long prev;
+ __asm__ __volatile__(LOCK_PREFIX "cmpxchg8b %3"
+ : "=A"(prev)
+ : "b"((unsigned long)new),
+ "c"((unsigned long)(new >> 32)),
+ "m"(*__xg(ptr)),
+ "0"(old)
+ : "memory");
+ return prev;
+}
+
+#define kvm_cmpxchg64(ptr,o,n)\
+ ((__typeof__(*(ptr)))__kvm_cmpxchg64((ptr),(unsigned long long)(o),\
+ (unsigned long long)(n)))
+
+#undef cmpxchg64
+#define cpmxchg64(ptr, o, n) kvm_cmpxchg64(ptr, o, n)
+
#endif

#ifndef CONFIG_PREEMPT_NOTIFIERS

[-- Attachment #3: Type: text/plain, Size: 308 bytes --]

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

[-- Attachment #4: Type: text/plain, Size: 186 bytes --]

_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org