* [PATCH] kvm compat patch
@ 2007-02-02 1:47 Markus Rechberger
[not found] ` <45C29834.4020107-5C7GfCeVMHo@public.gmane.org>
0 siblings, 1 reply; 6+ messages in thread
From: Markus Rechberger @ 2007-02-02 1:47 UTC (permalink / raw)
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
[-- Attachment #1: Type: text/plain, Size: 236 bytes --]
This patch fixes the mutex, page and kzalloc problems with older kernels.
Signed-off-by: Markus Rechberger <markus.rechberger-5C7GfCeVMHo@public.gmane.org>
--
Markus Rechberger
Operating System Research Center
AMD Saxony LLC & Co. KG
[-- Attachment #2: kvm-kernel-2.6.15.7.diff --]
[-- Type: text/x-patch, Size: 5409 bytes --]
Index: mmu.c
===================================================================
--- mmu.c (revision 4381)
+++ mmu.c (working copy)
@@ -298,18 +298,18 @@
if (!is_rmap_pte(*spte))
return;
page = pfn_to_page((*spte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT);
- if (!page->private) {
+ if (!page_private(page)) {
rmap_printk("rmap_add: %p %llx 0->1\n", spte, *spte);
- page->private = (unsigned long)spte;
- } else if (!(page->private & 1)) {
+ set_page_private(page,(unsigned long)spte);
+ } else if (!(page_private(page) & 1)) {
rmap_printk("rmap_add: %p %llx 1->many\n", spte, *spte);
desc = mmu_alloc_rmap_desc(vcpu);
- desc->shadow_ptes[0] = (u64 *)page->private;
+ desc->shadow_ptes[0] = (u64 *)page_private(page);
desc->shadow_ptes[1] = spte;
- page->private = (unsigned long)desc | 1;
+ set_page_private(page,(unsigned long)desc | 1);
} else {
rmap_printk("rmap_add: %p %llx many->many\n", spte, *spte);
- desc = (struct kvm_rmap_desc *)(page->private & ~1ul);
+ desc = (struct kvm_rmap_desc *)(page_private(page) & ~1ul);
while (desc->shadow_ptes[RMAP_EXT-1] && desc->more)
desc = desc->more;
if (desc->shadow_ptes[RMAP_EXT-1]) {
@@ -337,12 +337,12 @@
if (j != 0)
return;
if (!prev_desc && !desc->more)
- page->private = (unsigned long)desc->shadow_ptes[0];
+ set_page_private(page,(unsigned long)desc->shadow_ptes[0]);
else
if (prev_desc)
prev_desc->more = desc->more;
else
- page->private = (unsigned long)desc->more | 1;
+ set_page_private(page,(unsigned long)desc->more | 1);
mmu_free_rmap_desc(vcpu, desc);
}
@@ -356,20 +356,20 @@
if (!is_rmap_pte(*spte))
return;
page = pfn_to_page((*spte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT);
- if (!page->private) {
+ if (!page_private(page)) {
printk(KERN_ERR "rmap_remove: %p %llx 0->BUG\n", spte, *spte);
BUG();
- } else if (!(page->private & 1)) {
+ } else if (!(page_private(page) & 1)) {
rmap_printk("rmap_remove: %p %llx 1->0\n", spte, *spte);
- if ((u64 *)page->private != spte) {
+ if ((u64 *)page_private(page) != spte) {
printk(KERN_ERR "rmap_remove: %p %llx 1->BUG\n",
spte, *spte);
BUG();
}
- page->private = 0;
+ set_page_private(page,0);
} else {
rmap_printk("rmap_remove: %p %llx many->many\n", spte, *spte);
- desc = (struct kvm_rmap_desc *)(page->private & ~1ul);
+ desc = (struct kvm_rmap_desc *)(page_private(page) & ~1ul);
prev_desc = NULL;
while (desc) {
for (i = 0; i < RMAP_EXT && desc->shadow_ptes[i]; ++i)
@@ -398,11 +398,11 @@
BUG_ON(!slot);
page = gfn_to_page(slot, gfn);
- while (page->private) {
- if (!(page->private & 1))
- spte = (u64 *)page->private;
+ while (page_private(page)) {
+ if (!(page_private(page) & 1))
+ spte = (u64 *)page_private(page);
else {
- desc = (struct kvm_rmap_desc *)(page->private & ~1ul);
+ desc = (struct kvm_rmap_desc *)(page_private(page) & ~1ul);
spte = desc->shadow_ptes[0];
}
BUG_ON(!spte);
@@ -1218,7 +1218,7 @@
INIT_LIST_HEAD(&page_header->link);
if ((page = alloc_page(GFP_KERNEL)) == NULL)
goto error_1;
- page->private = (unsigned long)page_header;
+ set_page_private(page, (unsigned long)page_header);
page_header->page_hpa = (hpa_t)page_to_pfn(page) << PAGE_SHIFT;
memset(__va(page_header->page_hpa), 0, PAGE_SIZE);
list_add(&page_header->link, &vcpu->free_pages);
Index: kvm_main.c
===================================================================
--- kvm_main.c (revision 4381)
+++ kvm_main.c (working copy)
@@ -674,7 +674,7 @@
| __GFP_ZERO);
if (!new.phys_mem[i])
goto out_free;
- new.phys_mem[i]->private = 0;
+ set_page_private(new.phys_mem[i],0);
}
}
Index: kvm.h
===================================================================
--- kvm.h (revision 4381)
+++ kvm.h (working copy)
@@ -8,7 +8,9 @@
#include <linux/types.h>
#include <linux/list.h>
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
#include <linux/mutex.h>
+#endif
#include <linux/spinlock.h>
#include <linux/mm.h>
@@ -225,7 +227,11 @@
struct vmcs *vmcs;
struct vcpu_svm *svm;
};
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
struct mutex mutex;
+#else
+ struct semaphore mutex;
+#endif
int cpu;
int launched;
int interrupt_window_open;
@@ -531,7 +537,10 @@
{
struct page *page = pfn_to_page(shadow_page >> PAGE_SHIFT);
- return (struct kvm_mmu_page *)page->private;
+ return (struct kvm_mmu_page *)page_private(page);
+#if 0
+ page->private;
+#endif
}
static inline u16 read_fs(void)
Index: external-module-compat.h
===================================================================
--- external-module-compat.h (revision 4381)
+++ external-module-compat.h (working copy)
@@ -72,6 +72,27 @@
* The cpu hotplug stubs are broken if !CONFIG_CPU_HOTPLUG
*/
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,15)
+#define DEFINE_MUTEX(a) DECLARE_MUTEX(a)
+#define mutex_lock_interruptible(a) down_interruptible(a)
+#define mutex_unlock(a) up(a)
+#define mutex_lock(a) down(a)
+#define mutex_init(a) init_MUTEX(a)
+#define mutex_trylock(a) down_trylock(a)
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14)
+#ifndef kzalloc
+#define kzalloc(size,flags) \
+({ \
+ void *__ret = kmalloc(size, flags); \
+ if (__ret)
+ memset(__ret, 0, size);
+ __ret;
+})
+#endif
+#endif
+
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)
#ifndef CONFIG_HOTPLUG_CPU
[-- Attachment #3: Type: text/plain, Size: 374 bytes --]
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
[-- Attachment #4: Type: text/plain, Size: 186 bytes --]
_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel
^ permalink raw reply [flat|nested] 6+ messages in thread[parent not found: <45C29834.4020107-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH] kvm compat patch [not found] ` <45C29834.4020107-5C7GfCeVMHo@public.gmane.org> @ 2007-02-04 9:35 ` Avi Kivity [not found] ` <45C5A8ED.2010402-atKUWr5tajBWk0Htik3J/w@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Avi Kivity @ 2007-02-04 9:35 UTC (permalink / raw) To: Markus Rechberger; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Markus Rechberger wrote: > This patch fixes the mutex, page and kzalloc problems with older kernels. > > Signed-off-by: Markus Rechberger <markus.rechberger-5C7GfCeVMHo@public.gmane.org> > > The page_private() and kzalloc() stuff looks good, I can apply it. But: > Index: kvm.h > =================================================================== > --- kvm.h (revision 4381) > +++ kvm.h (working copy) > @@ -8,7 +8,9 @@ > > #include <linux/types.h> > #include <linux/list.h> > +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15) > #include <linux/mutex.h> > +#endif > Checks on kernel version are (usually) not accepted in mainline. I think I can cook up some Makefile magic to work around the #include though. > #include <linux/spinlock.h> > #include <linux/mm.h> > > @@ -225,7 +227,11 @@ > struct vmcs *vmcs; > struct vcpu_svm *svm; > }; > +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15) > struct mutex mutex; > +#else > + struct semaphore mutex; > +#endif > '#define mutex semaphore' in external-module-comapt.h, please. > +#if 0 > + page->private; > +#endif > Please delete. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <45C5A8ED.2010402-atKUWr5tajBWk0Htik3J/w@public.gmane.org>]
* Re: [PATCH] kvm compat patch [not found] ` <45C5A8ED.2010402-atKUWr5tajBWk0Htik3J/w@public.gmane.org> @ 2007-02-04 9:41 ` Muli Ben-Yehuda [not found] ` <20070204094159.GG3570-k73YwwB0fHlWk0Htik3J/w@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Muli Ben-Yehuda @ 2007-02-04 9:41 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Markus Rechberger On Sun, Feb 04, 2007 at 11:35:41AM +0200, Avi Kivity wrote: > Markus Rechberger wrote: > > This patch fixes the mutex, page and kzalloc problems with older kernels. > > > > Signed-off-by: Markus Rechberger <markus.rechberger-5C7GfCeVMHo@public.gmane.org> > > > > > > The page_private() and kzalloc() stuff looks good, I can apply it. But: > > > Index: kvm.h > > =================================================================== > > --- kvm.h (revision 4381) > > +++ kvm.h (working copy) > > @@ -8,7 +8,9 @@ > > > > #include <linux/types.h> > > #include <linux/list.h> > > +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15) > > #include <linux/mutex.h> > > +#endif > > > > Checks on kernel version are (usually) not accepted in mainline. I > think I can cook up some Makefile magic to work around the #include > though. They're never accepted. They might slip through the cracks if no one reviews the patch thoroughly enough. Cheers, Muli ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <20070204094159.GG3570-k73YwwB0fHlWk0Htik3J/w@public.gmane.org>]
* Re: [PATCH] kvm compat patch [not found] ` <20070204094159.GG3570-k73YwwB0fHlWk0Htik3J/w@public.gmane.org> @ 2007-02-04 10:06 ` Avi Kivity [not found] ` <45C5B01D.4060903-atKUWr5tajBWk0Htik3J/w@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Avi Kivity @ 2007-02-04 10:06 UTC (permalink / raw) To: Muli Ben-Yehuda Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Markus Rechberger Muli Ben-Yehuda wrote: >> >> Checks on kernel version are (usually) not accepted in mainline. I >> think I can cook up some Makefile magic to work around the #include >> though. >> > > They're never accepted. They might slip through the cracks if no one > reviews the patch thoroughly enough. > > [avi@firebolt linux-2.6]$ find drivers/ -type f -name '*.[ch]' | xargs cat | grep -c LINUX_VERSION_CODE 98 I've no intention of pursuing that path though. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <45C5B01D.4060903-atKUWr5tajBWk0Htik3J/w@public.gmane.org>]
* Re: [PATCH] kvm compat patch [not found] ` <45C5B01D.4060903-atKUWr5tajBWk0Htik3J/w@public.gmane.org> @ 2007-02-05 14:57 ` Markus Rechberger [not found] ` <45C745E7.6000800-5C7GfCeVMHo@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Markus Rechberger @ 2007-02-05 14:57 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f [-- Attachment #1: Type: text/plain, Size: 880 bytes --] Avi Kivity wrote: > Muli Ben-Yehuda wrote: >>> >>> Checks on kernel version are (usually) not accepted in mainline. I >>> think I can cook up some Makefile magic to work around the #include >>> though. >>> >> >> They're never accepted. They might slip through the cracks if no one >> reviews the patch thoroughly enough. >> >> > [avi@firebolt linux-2.6]$ find drivers/ -type f -name '*.[ch]' | > xargs cat | grep -c LINUX_VERSION_CODE > 98 > > I've no intention of pursuing that path though. > We simply parse such things out of the sources in the video4linux project before submitting the code to the upstream kernel Attached another patch, I haven't touched the LINUX_VERSION_CODE include check in kvm.h Signed-off-by: Markus Rechberger <markus.rechberger-5C7GfCeVMHo@public.gmane.org> -- Markus Rechberger Operating System Research Center AMD Saxony LLC & Co. KG [-- Attachment #2: kvm-compat.diff --] [-- Type: text/x-patch, Size: 5216 bytes --] Index: mmu.c =================================================================== --- mmu.c (Revision 4384) +++ mmu.c (Arbeitskopie) @@ -298,18 +298,18 @@ if (!is_rmap_pte(*spte)) return; page = pfn_to_page((*spte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT); - if (!page->private) { + if (!page_private(page)) { rmap_printk("rmap_add: %p %llx 0->1\n", spte, *spte); - page->private = (unsigned long)spte; - } else if (!(page->private & 1)) { + set_page_private(page,(unsigned long)spte); + } else if (!(page_private(page) & 1)) { rmap_printk("rmap_add: %p %llx 1->many\n", spte, *spte); desc = mmu_alloc_rmap_desc(vcpu); - desc->shadow_ptes[0] = (u64 *)page->private; + desc->shadow_ptes[0] = (u64 *)page_private(page); desc->shadow_ptes[1] = spte; - page->private = (unsigned long)desc | 1; + set_page_private(page,(unsigned long)desc | 1); } else { rmap_printk("rmap_add: %p %llx many->many\n", spte, *spte); - desc = (struct kvm_rmap_desc *)(page->private & ~1ul); + desc = (struct kvm_rmap_desc *)(page_private(page) & ~1ul); while (desc->shadow_ptes[RMAP_EXT-1] && desc->more) desc = desc->more; if (desc->shadow_ptes[RMAP_EXT-1]) { @@ -337,12 +337,12 @@ if (j != 0) return; if (!prev_desc && !desc->more) - page->private = (unsigned long)desc->shadow_ptes[0]; + set_page_private(page,(unsigned long)desc->shadow_ptes[0]); else if (prev_desc) prev_desc->more = desc->more; else - page->private = (unsigned long)desc->more | 1; + set_page_private(page,(unsigned long)desc->more | 1); mmu_free_rmap_desc(vcpu, desc); } @@ -356,20 +356,20 @@ if (!is_rmap_pte(*spte)) return; page = pfn_to_page((*spte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT); - if (!page->private) { + if (!page_private(page)) { printk(KERN_ERR "rmap_remove: %p %llx 0->BUG\n", spte, *spte); BUG(); - } else if (!(page->private & 1)) { + } else if (!(page_private(page) & 1)) { rmap_printk("rmap_remove: %p %llx 1->0\n", spte, *spte); - if ((u64 *)page->private != spte) { + if ((u64 *)page_private(page) != spte) { printk(KERN_ERR "rmap_remove: %p %llx 1->BUG\n", spte, *spte); BUG(); } - page->private = 0; + set_page_private(page,0); } else { rmap_printk("rmap_remove: %p %llx many->many\n", spte, *spte); - desc = (struct kvm_rmap_desc *)(page->private & ~1ul); + desc = (struct kvm_rmap_desc *)(page_private(page) & ~1ul); prev_desc = NULL; while (desc) { for (i = 0; i < RMAP_EXT && desc->shadow_ptes[i]; ++i) @@ -398,11 +398,11 @@ BUG_ON(!slot); page = gfn_to_page(slot, gfn); - while (page->private) { - if (!(page->private & 1)) - spte = (u64 *)page->private; + while (page_private(page)) { + if (!(page_private(page) & 1)) + spte = (u64 *)page_private(page); else { - desc = (struct kvm_rmap_desc *)(page->private & ~1ul); + desc = (struct kvm_rmap_desc *)(page_private(page) & ~1ul); spte = desc->shadow_ptes[0]; } BUG_ON(!spte); @@ -1218,7 +1218,7 @@ INIT_LIST_HEAD(&page_header->link); if ((page = alloc_page(GFP_KERNEL)) == NULL) goto error_1; - page->private = (unsigned long)page_header; + set_page_private(page, (unsigned long)page_header); page_header->page_hpa = (hpa_t)page_to_pfn(page) << PAGE_SHIFT; memset(__va(page_header->page_hpa), 0, PAGE_SIZE); list_add(&page_header->link, &vcpu->free_pages); Index: kvm_main.c =================================================================== --- kvm_main.c (Revision 4384) +++ kvm_main.c (Arbeitskopie) @@ -674,7 +674,7 @@ | __GFP_ZERO); if (!new.phys_mem[i]) goto out_free; - new.phys_mem[i]->private = 0; + set_page_private(new.phys_mem[i],0); } } Index: kvm.h =================================================================== --- kvm.h (Revision 4384) +++ kvm.h (Arbeitskopie) @@ -8,7 +8,9 @@ #include <linux/types.h> #include <linux/list.h> +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15) #include <linux/mutex.h> +#endif #include <linux/spinlock.h> #include <linux/mm.h> @@ -531,7 +533,7 @@ { struct page *page = pfn_to_page(shadow_page >> PAGE_SHIFT); - return (struct kvm_mmu_page *)page->private; + return (struct kvm_mmu_page *)page_private(page); } static inline u16 read_fs(void) Index: external-module-compat.h =================================================================== --- external-module-compat.h (Revision 4384) +++ external-module-compat.h (Arbeitskopie) @@ -72,6 +72,31 @@ * The cpu hotplug stubs are broken if !CONFIG_CPU_HOTPLUG */ +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,15) +#define DEFINE_MUTEX(a) DECLARE_MUTEX(a) +#define mutex_lock_interruptible(a) down_interruptible(a) +#define mutex_unlock(a) up(a) +#define mutex_lock(a) down(a) +#define mutex_init(a) init_MUTEX(a) +#define mutex_trylock(a) down_trylock(a) +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) +#ifndef kzalloc +#define kzalloc(size,flags) \ +({ \ + void *__ret = kmalloc(size, flags); \ + if (__ret) + memset(__ret, 0, size); + __ret; +}) +#endif +#endif + +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,15) +#define mutex semaphore +#endif + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21) #ifndef CONFIG_HOTPLUG_CPU [-- Attachment #3: Type: text/plain, Size: 374 bytes --] ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 [-- Attachment #4: Type: text/plain, Size: 186 bytes --] _______________________________________________ kvm-devel mailing list kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org https://lists.sourceforge.net/lists/listinfo/kvm-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <45C745E7.6000800-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH] kvm compat patch [not found] ` <45C745E7.6000800-5C7GfCeVMHo@public.gmane.org> @ 2007-02-07 9:32 ` Avi Kivity 0 siblings, 0 replies; 6+ messages in thread From: Avi Kivity @ 2007-02-07 9:32 UTC (permalink / raw) To: Markus Rechberger; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Markus Rechberger wrote: > Attached another patch, I haven't touched the LINUX_VERSION_CODE include > check in kvm.h > > Signed-off-by: Markus Rechberger <markus.rechberger-5C7GfCeVMHo@public.gmane.org> > Applied, thanks. Adding an empty include/linux/mutex.h is enough to get rid of the #ifdef. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-02-07 9:32 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-02 1:47 [PATCH] kvm compat patch Markus Rechberger
[not found] ` <45C29834.4020107-5C7GfCeVMHo@public.gmane.org>
2007-02-04 9:35 ` Avi Kivity
[not found] ` <45C5A8ED.2010402-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-04 9:41 ` Muli Ben-Yehuda
[not found] ` <20070204094159.GG3570-k73YwwB0fHlWk0Htik3J/w@public.gmane.org>
2007-02-04 10:06 ` Avi Kivity
[not found] ` <45C5B01D.4060903-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-05 14:57 ` Markus Rechberger
[not found] ` <45C745E7.6000800-5C7GfCeVMHo@public.gmane.org>
2007-02-07 9:32 ` Avi Kivity
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox