Hello community,
here is the log from the commit of package xen
checked in at Wed May 10 10:30:34 CEST 2006.
--------
--- arch/i386/xen/xen.changes 2006-05-05 23:02:52.000000000 +0200
+++ STABLE/xen/xen.changes 2006-05-10 01:18:52.000000000 +0200
@@ -1,0 +2,9 @@
+Tue May 9 16:40:59 MDT 2006 - ccoffing@novell.com
+
+- Include select patches from xen-3.0-testing:
+ + 9665: Fix pciif parsing for compatibility variable.
+ + 9666: Fix HVM hang; was broken due to previous "hda lost
+ interrupt" patch. (#169146)
+ + 9667: Do not set GP fault in VMCS for VMX (no bug#; from Intel)
+
+-------------------------------------------------------------------
@@ -22 +30,0 @@
-
Old:
----
xen-balloon-drv-lru-hijack.diff
xen-get-mfn-from-gpfn.diff
xen-intr-ack-routine.diff
xen-perfc-array-range.diff
xen-pirq-mask-into-bitmap.diff
xen-svm-init-intercept-handler.diff
xen-svm-reset-host-selectors.diff
New:
----
xen-9657-get-mfn-from-gpfn.diff
xen-9658-pirq-mask-into-bitmap.diff
xen-9659-intr-ack-routine.diff
xen-9660-perfc-array-range.diff
xen-9663-svm-init-intercept-handler.diff
xen-9664-svm-reset-host-selectors.diff
xen-9665-sxp-compat.diff
xen-9666-hvm-guest-faults.diff
xen-9667-vmx-gp-fault.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.a44e4h/_old 2006-05-10 10:29:48.000000000 +0200
+++ /var/tmp/diff_new_pack.a44e4h/_new 2006-05-10 10:29:48.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package xen (Version 3.0.2_09664)
+# spec file for package xen (Version 3.0.2_09668)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -14,11 +14,11 @@
BuildRequires: LibVNCServer SDL-devel autoconf automake bin86 dev86 glibc-devel-32bit latex2html libjpeg-devel libreiserfs-devel python-devel te_ams te_latex tetex transfig
%define xvers 3.0
%define xvermaj 3
-%define changeset 09664
+%define changeset 09668
%define build_xmtest 0
%define with_pygrub 1
%define xen_build_dir xen-3.0-testing
-Version: 3.0.2_09664
+Version: 3.0.2_09668
Release: 2
License: GPL
Group: System/Kernel
@@ -70,17 +70,19 @@
Patch30: xen-pirq_shared.diff
Patch31: xen-lost-mouse.diff
Patch32: xen-removable-media.diff
+Patch33: xen-cirrus-corruption.diff
Patch49: xen-enable-hvm-debug.diff
Patch50: xen-enable-debug
Patch99: xen-poweroff.diff
-Patch100: xen-get-mfn-from-gpfn.diff
-Patch101: xen-pirq-mask-into-bitmap.diff
-Patch102: xen-intr-ack-routine.diff
-Patch103: xen-perfc-array-range.diff
-Patch104: xen-balloon-drv-lru-hijack.diff
-Patch105: xen-cirrus-corruption.diff
-Patch106: xen-svm-init-intercept-handler.diff
-Patch107: xen-svm-reset-host-selectors.diff
+Patch100: xen-9657-get-mfn-from-gpfn.diff
+Patch101: xen-9658-pirq-mask-into-bitmap.diff
+Patch102: xen-9659-intr-ack-routine.diff
+Patch103: xen-9660-perfc-array-range.diff
+Patch104: xen-9663-svm-init-intercept-handler.diff
+Patch105: xen-9664-svm-reset-host-selectors.diff
+Patch106: xen-9665-sxp-compat.diff
+Patch107: xen-9666-hvm-guest-faults.diff
+Patch108: xen-9667-vmx-gp-fault.diff
URL: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
Prefix: /usr
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -423,12 +425,17 @@
%prep
%setup -q -n %xen_build_dir
+# Apply upstream patches first...
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
%patch105 -p1
+%patch106 -p1
+%patch107 -p1
+%patch108 -p1
+# Now our patches...
%patch1 -p1
%patch2 -p1
%patch3 -p1
@@ -463,8 +470,7 @@
%patch30 -p1
%patch31 -p1
%patch32 -p1
-%patch106 -p1
-%patch107 -p1
+%patch33 -p1
#%patch49 -p1
XEN_EXTRAVERSION=%version-%release
XEN_EXTRAVERSION=${XEN_EXTRAVERSION#%{xvers}}
@@ -771,6 +777,12 @@
%{insserv_cleanup}
%changelog -n xen
+* Tue May 09 2006 - ccoffing@novell.com
+- Include select patches from xen-3.0-testing:
+ + 9665: Fix pciif parsing for compatibility variable.
+ + 9666: Fix HVM hang; was broken due to previous "hda lost
+ interrupt" patch. (#169146)
+ + 9667: Do not set GP fault in VMCS for VMX (no bug#; from Intel)
* Thu May 04 2006 - cgriffin@novell.com
- Update xen-3.0-testing tree, changeset 9664:
+ Changesets 9663 and 9664 fix AMD fully virtualized
++++++ xen-9657-get-mfn-from-gpfn.diff ++++++
--- a/xen/include/asm-x86/mm.h Thu Apr 27 08:58:50 2006
+++ b/xen/include/asm-x86/mm.h Thu Apr 27 13:14:26 2006
@@ -272,6 +272,8 @@
* been used by the read-only MPT map.
*/
#define phys_to_machine_mapping ((unsigned long *)RO_MPT_VIRT_START)
+#define NR_P2M_TABLE_ENTRIES ((unsigned long *)RO_MPT_VIRT_END \
+ - phys_to_machine_mapping)
#define INVALID_MFN (~0UL)
#define VALID_MFN(_mfn) (!((_mfn) & (1U<<31)))
@@ -280,7 +282,9 @@
{
unsigned long mfn;
- if ( __copy_from_user(&mfn, &phys_to_machine_mapping[pfn], sizeof(mfn)) )
+ if ( unlikely(pfn >= NR_P2M_TABLE_ENTRIES) ||
+ unlikely(__copy_from_user(&mfn, &phys_to_machine_mapping[pfn],
+ sizeof(mfn))) )
mfn = INVALID_MFN;
return mfn;
++++++ xen-9658-pirq-mask-into-bitmap.diff ++++++
--- a/xen/arch/ia64/xen/irq.c Thu Apr 27 13:14:26 2006
+++ b/xen/arch/ia64/xen/irq.c Fri Apr 28 13:04:56 2006
@@ -1358,25 +1358,20 @@
int pirq_guest_unmask(struct domain *d)
{
irq_desc_t *desc;
- int i, j, pirq;
- u32 m;
+ int pirq;
shared_info_t *s = d->shared_info;
- for ( i = 0; i < ARRAY_SIZE(d->pirq_mask); i++ )
+ for ( pirq = find_first_bit(d->pirq_mask, NR_PIRQS);
+ pirq < NR_PIRQS;
+ pirq = find_next_bit(d->pirq_mask, NR_PIRQS, pirq+1) )
{
- m = d->pirq_mask[i];
- while ( (j = ffs(m)) != 0 )
- {
- m &= ~(1 << --j);
- pirq = (i << 5) + j;
- desc = &irq_desc[pirq];
- spin_lock_irq(&desc->lock);
- if ( !test_bit(d->pirq_to_evtchn[pirq], &s->evtchn_mask[0]) &&
- test_and_clear_bit(pirq, &d->pirq_mask) &&
- (--((irq_guest_action_t *)desc->action)->in_flight == 0) )
- desc->handler->end(pirq);
- spin_unlock_irq(&desc->lock);
- }
+ desc = &irq_desc[pirq];
+ spin_lock_irq(&desc->lock);
+ if ( !test_bit(d->pirq_to_evtchn[pirq], &s->evtchn_mask[0]) &&
+ test_and_clear_bit(pirq, &d->pirq_mask) &&
+ (--((irq_guest_action_t *)desc->action)->in_flight == 0) )
+ desc->handler->end(pirq);
+ spin_unlock_irq(&desc->lock);
}
return 0;
--- a/xen/arch/x86/irq.c Thu Apr 27 13:14:26 2006
+++ b/xen/arch/x86/irq.c Fri Apr 28 13:04:56 2006
@@ -171,26 +171,20 @@
int pirq_guest_unmask(struct domain *d)
{
irq_desc_t *desc;
- unsigned int i, j, pirq;
- u32 m;
+ unsigned int pirq;
shared_info_t *s = d->shared_info;
- for ( i = 0; i < ARRAY_SIZE(d->pirq_mask); i++ )
- {
- m = d->pirq_mask[i];
- while ( m != 0 )
- {
- j = find_first_set_bit(m);
- m &= ~(1 << j);
- pirq = (i << 5) + j;
- desc = &irq_desc[irq_to_vector(pirq)];
- spin_lock_irq(&desc->lock);
- if ( !test_bit(d->pirq_to_evtchn[pirq], &s->evtchn_mask[0]) &&
- test_and_clear_bit(pirq, &d->pirq_mask) &&
- (--((irq_guest_action_t *)desc->action)->in_flight == 0) )
- desc->handler->end(irq_to_vector(pirq));
- spin_unlock_irq(&desc->lock);
- }
+ for ( pirq = find_first_bit(d->pirq_mask, NR_PIRQS);
+ pirq < NR_PIRQS;
+ pirq = find_next_bit(d->pirq_mask, NR_PIRQS, pirq+1) )
+ {
+ desc = &irq_desc[irq_to_vector(pirq)];
+ spin_lock_irq(&desc->lock);
+ if ( !test_bit(d->pirq_to_evtchn[pirq], &s->evtchn_mask[0]) &&
+ test_and_clear_bit(pirq, &d->pirq_mask) &&
+ (--((irq_guest_action_t *)desc->action)->in_flight == 0) )
+ desc->handler->end(irq_to_vector(pirq));
+ spin_unlock_irq(&desc->lock);
}
return 0;
--- a/xen/include/xen/sched.h Thu Apr 27 13:14:26 2006
+++ b/xen/include/xen/sched.h Fri Apr 28 13:04:56 2006
@@ -133,7 +133,7 @@
*/
#define NR_PIRQS 256 /* Put this somewhere sane! */
u16 pirq_to_evtchn[NR_PIRQS];
- u32 pirq_mask[NR_PIRQS/32];
+ DECLARE_BITMAP(pirq_mask, NR_PIRQS);
/* I/O capabilities (access to IRQs and memory-mapped I/O). */
struct rangeset *iomem_caps;
++++++ xen-9659-intr-ack-routine.diff ++++++
++++ 862 lines (skipped)
++++++ xen-9660-perfc-array-range.diff ++++++
--- a/xen/common/perfc.c Fri Apr 28 13:06:33 2006
+++ b/xen/common/perfc.c Tue May 2 14:25:22 2006
@@ -116,7 +116,7 @@
counters += NR_CPUS;
break;
case TYPE_ARRAY:
- for ( j = 0; j < NR_CPUS; j++ )
+ for ( j = 0; j < perfc_info[i].nr_elements; j++ )
atomic_set(&counters[j],0);
case TYPE_S_ARRAY:
counters += perfc_info[i].nr_elements;
++++++ xen-9663-svm-init-intercept-handler.diff ++++++
++++ 700 lines (skipped)
++++++ xen-9664-svm-reset-host-selectors.diff ++++++
--- a/xen/arch/x86/hvm/svm/svm.c Thu May 4 16:08:19 2006
+++ b/xen/arch/x86/hvm/svm/svm.c Thu May 4 20:26:02 2006
@@ -61,6 +61,9 @@
/* Useful define */
#define MAX_INST_SIZE 15
+#define set_segment_register(name, value) \
+ __asm__ __volatile__ ( "movw %%ax ,%%" STR(name) "" : : "a" (value) )
+
/*
* External functions, etc. We should move these to some suitable header file(s) */
@@ -680,6 +683,17 @@
static void svm_ctxt_switch_to(struct vcpu *v)
{
+#if __x86_64__
+ /*
+ * This is required, because VMRUN does consistency check
+ * and some of the DOM0 selectors are pointing to
+ * invalid GDT locations, and cause AMD processors
+ * to shutdown.
+ */
+ set_segment_register(ds, 0);
+ set_segment_register(es, 0);
+ set_segment_register(ss, 0);
+#endif
}
void svm_final_setup_guest(struct vcpu *v)
--- a/xen/arch/x86/hvm/svm/vmcb.c Thu May 4 16:08:19 2006
+++ b/xen/arch/x86/hvm/svm/vmcb.c Thu May 4 20:26:02 2006
@@ -428,6 +428,8 @@
if (svm_dbg_on)
svm_dump_vmcb(__func__, vmcb);
+
+ vmcb->tlb_control = 1;
}
++++++ xen-9665-sxp-compat.diff ++++++
# HG changeset patch
# User kaf24@firebug.cl.cam.ac.uk
# Date Fri May 5 13:02:40 2006
# Node ID 0d8d7071bb2fe9bb051440d3be03aa751a76510f
# parent: 6d0a2702bd6deb65c78173d2674c9125546aa960
Fix python pciif script to reference correct 2.0 compatibility variable.
In the Xen 2.0.x compatibility section of xend (where we try to parse
the s-expressions if they came from an SXP configuration file for Xen
2.0.x), the wrong variable is referenced. This fix corrects the python
script to use the correct variable.
Thanks to Mike Wright for reporting this.
Signed-off-by: Ryan Wilson