Hello community,
here is the log from the commit of package xen
checked in at Wed May 23 01:45:45 CEST 2007.
--------
--- arch/i386/xen/xen.changes 2007-05-21 18:42:18.000000000 +0200
+++ /mounts/work_src_done/STABLE/xen/xen.changes 2007-05-22 23:31:29.850089000 +0200
@@ -1,0 +2,9 @@
+Tue May 22 09:52:50 MDT 2007 - ccoffing@novell.com
+
+- Update Ron Terry's network-multi script.
+- Drop xen-doc-ps. (#267948)
+- Update init scripts.
+- Tidy spec file to fix rpmlint errors.
+- Updated patches from Jan.
+
+-------------------------------------------------------------------
Old:
----
dom0config
network-multi_bridge
page-cacheability.patch
New:
----
network-multi
rpmlint.diff
sysconfig.xend
vmx-check-descr.patch
x86-emul-rf.patch
x86-machine-check.patch
x86-page-cacheability.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.Tk7732/_old 2007-05-23 01:43:55.000000000 +0200
+++ /var/tmp/diff_new_pack.Tk7732/_new 2007-05-23 01:43:55.000000000 +0200
@@ -35,7 +35,7 @@
BuildRequires: kernel-source kernel-syms xorg-x11
%endif
Version: 3.1.0_15040
-Release: 5
+Release: 7
License: GNU General Public License (GPL)
Group: System/Kernel
Autoreqprov: on
@@ -56,8 +56,8 @@
Source12: block-iscsi
Source13: xmexample.iscsi
Source14: xmclone.sh
-Source15: dom0config
-Source16: network-multi_bridge
+Source15: sysconfig.xend
+Source16: network-multi
# Upstream patches
Patch0: 15048-localtime.diff
# Our patches
@@ -106,6 +106,7 @@
Patch143: qemu-security-etch1.diff
Patch144: netfront_mac.patch
Patch145: vnc-i18n-keys.diff
+Patch146: rpmlint.diff
# Patches from Jan
Patch170: inval-sh-ldt.patch
Patch171: 32on64-cpuid.patch
@@ -124,7 +125,7 @@
Patch184: vmx-no-cstar.patch
Patch185: hvm-debug-msg.patch
Patch186: guest-copy.patch
-Patch187: page-cacheability.patch
+Patch187: x86-page-cacheability.patch
Patch188: realmode.patch
Patch189: edd.patch
Patch190: edid.patch
@@ -134,9 +135,11 @@
Patch194: vgacon-keep.patch
Patch195: vgacon-50-lines.patch
Patch196: x86-extra-trap-info.patch
+Patch197: x86-machine-check.patch
+Patch198: x86-emul-rf.patch
+Patch199: vmx-check-descr.patch
Patch300: xen-enable-hvm-debug.diff
URL: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
-Prefix: /usr
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64 ia64
%define pysite %(python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib()")
@@ -509,24 +512,6 @@
--------
Ian Pratt
-%package doc-ps
-Summary: Xen Virtualization: PostScript documentation
-Group: Documentation/Other
-
-%description doc-ps
-Xen is a virtual machine monitor for x86 that supports execution of
-multiple guest operating systems with unprecedented levels of
-performance and resource isolation.
-
-xen-doc-ps contains the online documentation in PostScript format. Use
-gv/kghostview/... to read the files in /usr/share/doc/packages/xen/ps/
-
-
-
-Authors:
---------
- Ian Pratt
-
%prep
%setup -q -n %xen_build_dir
%setup -q -c -n %xen_build_dir/tools -D -T -a 1
@@ -579,6 +564,7 @@
%patch143 -p1
%patch144 -p1
%patch145 -p1
+%patch146 -p1
%patch170 -p1
%patch171 -p1
%patch172 -p1
@@ -606,10 +592,13 @@
%patch194 -p1
%patch195 -p1
%patch196 -p1
+%patch197 -p1
+%patch198 -p1
+%patch199 -p1
XEN_EXTRAVERSION=%version-%release
XEN_EXTRAVERSION=${XEN_EXTRAVERSION#%{xvers}}
-sed -i "s/XEN_EXTRAVERSION[ ]*.=.*\$/XEN_EXTRAVERSION = $XEN_EXTRAVERSION/" xen/Makefile
-sed -i "s/XEN_CHANGESET[ ]*=.*\$/XEN_CHANGESET = %{changeset}/" xen/Makefile
+sed -i "s/XEN_EXTRAVERSION[\t ]*.=.*\$/XEN_EXTRAVERSION = $XEN_EXTRAVERSION/" xen/Makefile
+sed -i "s/XEN_CHANGESET[\t ]*=.*\$/XEN_CHANGESET = %{changeset}/" xen/Makefile
%build
cd ..
@@ -696,7 +685,7 @@
make -C docs install \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} \
DOCDIR=%{_defaultdocdir}/xen
-for name in COPYING %SOURCE2 %SOURCE3; do
+for name in COPYING %SOURCE2 %SOURCE3 %SOURCE4 %SOURCE14; do
install -m 644 $name $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/
done
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/misc
@@ -714,9 +703,8 @@
mv $RPM_BUILD_ROOT/etc/xen/xmexample* $RPM_BUILD_ROOT/etc/xen/examples
rm $RPM_BUILD_ROOT/etc/xen/examples/*nbd
install -m644 %SOURCE9 %SOURCE11 %SOURCE13 $RPM_BUILD_ROOT/etc/xen/examples/
-install -m644 %SOURCE15 $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.xen
+install -m644 %SOURCE15 $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.xend
# scripts
-install -m755 %SOURCE4 %SOURCE14 $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/
rm $RPM_BUILD_ROOT/etc/xen/scripts/block-*nbd
install -m755 %SOURCE10 %SOURCE12 %SOURCE16 $RPM_BUILD_ROOT/etc/xen/scripts/
# logrotate
@@ -744,47 +732,48 @@
%endif
#%find_lang xen-xm xen.lang # po files are misnamed upstream
# Clean up unpackaged files
-rm $RPM_BUILD_ROOT/usr/sbin/netfix
-rm -rf $RPM_BUILD_ROOT/usr/share/doc/qemu/
+rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/qemu/
+rm -rf $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/ps
rm $RPM_BUILD_ROOT/%{_mandir}/man1/qemu.*
+rm $RPM_BUILD_ROOT/usr/sbin/netfix
rm $RPM_BUILD_ROOT/usr/lib*/xen/bin/qemu-dm.debug
rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
%suse_update_desktop_file xen-vm-install X-SuSE-YaST-Virtualization
-sed -i -e 's/Categories=.*/Categories=Qt;X-SuSE-YaST;X-SuSE-YaST-Virtualization;/' $RPM_BUILD_ROOT/%{_datadir}/applications/YaST2/xen-vm-install.desktop
%files
%defattr(-,root,root)
/boot/xen-%{version}-%{release}.gz
-/boot/xen-%{xvers}.gz
/boot/xen-%{xvermaj}.gz
-/boot/xen.gz
-/boot/xen-syms-%{version}-%{release}
-/boot/xen-syms
+/boot/xen-%{xvers}.gz
/boot/xen-dbg-%{version}-%{release}.gz
-/boot/xen-dbg-%{xvers}.gz
/boot/xen-dbg-%{xvermaj}.gz
+/boot/xen-dbg-%{xvers}.gz
/boot/xen-dbg.gz
-/boot/xen-syms-dbg-%{version}-%{release}
+/boot/xen-syms
+/boot/xen-syms-%{version}-%{release}
/boot/xen-syms-dbg
+/boot/xen-syms-dbg-%{version}-%{release}
+/boot/xen.gz
%ifarch %ix86
/boot/xen-pae-%{version}-%{release}.gz
-/boot/xen-pae-%{xvers}.gz
/boot/xen-pae-%{xvermaj}.gz
-/boot/xen-pae.gz
-/boot/xen-syms-pae-%{version}-%{release}
-/boot/xen-syms-pae
+/boot/xen-pae-%{xvers}.gz
/boot/xen-pae-dbg-%{version}-%{release}.gz
-/boot/xen-pae-dbg-%{xvers}.gz
/boot/xen-pae-dbg-%{xvermaj}.gz
+/boot/xen-pae-dbg-%{xvers}.gz
/boot/xen-pae-dbg.gz
-/boot/xen-syms-pae-dbg-%{version}-%{release}
+/boot/xen-pae.gz
+/boot/xen-syms-pae
+/boot/xen-syms-pae-%{version}-%{release}
/boot/xen-syms-pae-dbg
+/boot/xen-syms-pae-dbg-%{version}-%{release}
%endif
%files libs
%defattr(-,root,root)
%{_libdir}/fs/
-%{_libdir}/libfsimage*
+%{_libdir}/libblktap.so.*
+%{_libdir}/libfsimage.so.*
%{_libdir}/libxen*.so.*
%files tools -f ../xen.lang
@@ -798,14 +787,13 @@
/usr/sbin/img2qcow
/usr/sbin/qcow-create
/usr/sbin/qcow2raw
-/usr/sbin/tapdisk
/usr/sbin/rcxend
/usr/sbin/rcxendomains
+/usr/sbin/tapdisk
/usr/sbin/xen*
/usr/sbin/xm
%if %{?with_install}0
/usr/bin/vm-install*
-%{_datadir}/xen/*.dtd
%{_datadir}/xen/install
%dir /var/lib/xen/vm-install
%dir %{_datadir}/applications/YaST2
@@ -818,41 +806,48 @@
%dir /usr/lib/xen/bin
%endif
%dir /usr/lib/xen/boot
-%{_libdir}/libblktap.so*
+%{_datadir}/xen/*.dtd
%{_libdir}/xen/bin/readnotes
-%{_libdir}/xen/bin/xen-sdlfb
-%{_libdir}/xen/bin/xen-vncfb
%{_libdir}/xen/bin/xc_restore
%{_libdir}/xen/bin/xc_save
+%{_libdir}/xen/bin/xen-sdlfb
+%{_libdir}/xen/bin/xen-vncfb
%{_libdir}/xen/bin/xenconsole
%{_libdir}/xen/bin/xenctx
%{_mandir}/man1/*.1.gz
%{_mandir}/man5/*.5.gz
%{_mandir}/man8/*.8.gz
+/var/adm/fillup-templates/*
%dir /var/lib/xen
-%dir /var/lib/xenstored
%dir %attr(700,root,root) /var/lib/xen/images
%dir %attr(700,root,root) /var/lib/xen/save
%dir /var/lib/xen/xend-db
%dir /var/lib/xen/xend-db/domain
%dir /var/lib/xen/xend-db/migrate
%dir /var/lib/xen/xend-db/vnet
+%dir /var/lib/xenstored
%dir /var/log/xen
%dir /var/run/xenstored
-%config /etc/init.d/xendomains
-%config /etc/init.d/xend
+/etc/init.d/xend
+/etc/init.d/xendomains
%config /etc/logrotate.d/xend
-/var/adm/fillup-templates/*
%dir %attr(700,root,root) /etc/xen
-%config /etc/xen/*
+/etc/xen/auto
+%config /etc/xen/examples
+/etc/xen/images
+/etc/xen/qemu-ifup
+/etc/xen/scripts
+%config /etc/xen/vm
+%config /etc/xen/*.sxp
+%config /etc/xen/*.xml
%dir /etc/udev
%dir /etc/udev/rules.d
/etc/udev/rules.d/40-xen.rules
%dir %{_defaultdocdir}/xen
%{_defaultdocdir}/xen/COPYING
%{_defaultdocdir}/xen/README.SuSE
-%{_defaultdocdir}/xen/boot.xen
%{_defaultdocdir}/xen/boot.local.xenU
+%{_defaultdocdir}/xen/boot.xen
%{_defaultdocdir}/xen/misc
%{_defaultdocdir}/xen/xmclone.sh
%dir %pysite/xen
@@ -884,16 +879,18 @@
%files devel
%defattr(-,root,root)
%{_libdir}/libblktap.a
+%{_libdir}/libblktap.so
+%{_libdir}/libfsimage.so
%{_libdir}/libxen*.a
%{_libdir}/libxen*.so
-/usr/include/xen/
+/usr/bin/serial-split
+/usr/bin/xenperf
/usr/include/blktaplib.h
/usr/include/fsimage*
/usr/include/xen*.h
+/usr/include/xen/
/usr/include/xs.h
/usr/include/xs_lib.h
-/usr/bin/serial-split
-/usr/bin/xenperf
%files doc-html
%defattr(-,root,root)
@@ -901,30 +898,36 @@
%files doc-pdf
%defattr(-,root,root)
-%dir %{_defaultdocdir}/xen/pdf
-%{_defaultdocdir}/xen/pdf/*
-
-%files doc-ps
-%defattr(-,root,root)
-%dir %{_defaultdocdir}/xen/ps
-%{_defaultdocdir}/xen/ps/*
+%{_defaultdocdir}/xen/pdf
%clean
-test ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT
-rm -rf $RPM_BUILD_DIR/%xen_build_dir
+#test ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT
+#rm -rf $RPM_BUILD_DIR/%xen_build_dir
%post tools
-%{fillup_and_insserv -y -f xend}
-%{fillup_and_insserv -y -n xendomains xendomains}
+%{fillup_and_insserv -n xend xend}
+%{fillup_and_insserv -n xendomains xendomains}
%preun tools
-%{stop_on_removal xend xendomains}
+%{stop_on_removal xendomains xend}
%postun tools
%{restart_on_update xend}
%{insserv_cleanup}
+%post libs
+/sbin/ldconfig
+
+%postun libs
+/sbin/ldconfig
+
%changelog
+* Tue May 22 2007 - ccoffing@novell.com
+- Update Ron Terry's network-multi script.
+- Drop xen-doc-ps. (#267948)
+- Update init scripts.
+- Tidy spec file to fix rpmlint errors.
+- Updated patches from Jan.
* Mon May 21 2007 - ccoffing@novell.com
- vm-install bug fixes:
+ #211342: better progress bar
++++++ guest-copy.patch ++++++
--- /var/tmp/diff_new_pack.Tk7732/_old 2007-05-23 01:43:55.000000000 +0200
+++ /var/tmp/diff_new_pack.Tk7732/_new 2007-05-23 01:43:55.000000000 +0200
@@ -1,6 +1,6 @@
Index: 2007-05-14/xen/arch/x86/mm.c
===================================================================
---- 2007-05-14.orig/xen/arch/x86/mm.c 2007-05-14 13:44:25.000000000 +0200
+--- 2007-05-14.orig/xen/arch/x86/mm.c 2007-05-15 12:07:55.000000000 +0200
+++ 2007-05-14/xen/arch/x86/mm.c 2007-05-14 14:33:33.000000000 +0200
@@ -2896,7 +2896,7 @@ long do_set_gdt(XEN_GUEST_HANDLE(ulong)
if ( entries > FIRST_RESERVED_GDT_ENTRY )
@@ -49,7 +49,7 @@
.max_mfn = MACH2PHYS_NR_ENTRIES - 1
Index: 2007-05-14/xen/arch/x86/traps.c
===================================================================
---- 2007-05-14.orig/xen/arch/x86/traps.c 2007-05-14 13:43:46.000000000 +0200
+--- 2007-05-14.orig/xen/arch/x86/traps.c 2007-05-15 12:07:55.000000000 +0200
+++ 2007-05-14/xen/arch/x86/traps.c 2007-05-14 14:33:33.000000000 +0200
@@ -1117,7 +1117,7 @@ static inline int guest_io_okay(
* read as 0xff (no access allowed).
@@ -62,7 +62,7 @@
default: x.bytes[0] = ~0;
Index: 2007-05-14/xen/common/domctl.c
===================================================================
---- 2007-05-14.orig/xen/common/domctl.c 2007-04-26 09:25:12.000000000 +0200
+--- 2007-05-14.orig/xen/common/domctl.c 2007-05-15 12:07:55.000000000 +0200
+++ 2007-05-14/xen/common/domctl.c 2007-05-14 14:33:33.000000000 +0200
@@ -43,7 +43,7 @@ void cpumask_to_xenctl_cpumap(
@@ -84,7 +84,7 @@
}
Index: 2007-05-14/xen/common/kernel.c
===================================================================
---- 2007-05-14.orig/xen/common/kernel.c 2007-05-14 13:43:09.000000000 +0200
+--- 2007-05-14.orig/xen/common/kernel.c 2007-05-15 12:07:55.000000000 +0200
+++ 2007-05-14/xen/common/kernel.c 2007-05-14 14:33:33.000000000 +0200
@@ -142,7 +142,7 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDL
{
@@ -126,7 +126,7 @@
}
Index: 2007-05-14/xen/common/perfc.c
===================================================================
---- 2007-05-14.orig/xen/common/perfc.c 2007-04-26 09:25:12.000000000 +0200
+--- 2007-05-14.orig/xen/common/perfc.c 2007-05-15 12:07:55.000000000 +0200
+++ 2007-05-14/xen/common/perfc.c 2007-05-14 14:33:33.000000000 +0200
@@ -227,7 +227,7 @@ static int perfc_copy_info(XEN_GUEST_HAN
}
@@ -139,7 +139,7 @@
return -EFAULT;
Index: 2007-05-14/xen/drivers/char/console.c
===================================================================
---- 2007-05-14.orig/xen/drivers/char/console.c 2007-04-23 10:01:44.000000000 +0200
+--- 2007-05-14.orig/xen/drivers/char/console.c 2007-05-15 12:07:55.000000000 +0200
+++ 2007-05-14/xen/drivers/char/console.c 2007-05-14 14:33:33.000000000 +0200
@@ -326,7 +326,7 @@ static long guest_console_write(XEN_GUES
CONSOLEIO_write, count, buffer);
@@ -150,10 +150,57 @@
return -EFAULT;
kbuf[kcount] = '\0';
+Index: 2007-05-14/xen/include/asm-ia64/guest_access.h
+===================================================================
+--- 2007-05-14.orig/xen/include/asm-ia64/guest_access.h 2007-05-15 12:07:55.000000000 +0200
++++ 2007-05-14/xen/include/asm-ia64/guest_access.h 2007-05-15 12:23:53.000000000 +0200
+@@ -76,28 +76,31 @@ extern int xencomm_handle_is_null(void *
+ __copy_field_from_guest(ptr, hnd, field)
+
+ #define __copy_to_guest_offset(hnd, idx, ptr, nr) ({ \
+- const typeof(ptr) _d = (hnd).p; \
+- const typeof(ptr) _s = (ptr); \
++ const typeof(*(ptr)) *_s = (ptr); \
++ void *_d = (hnd).p; \
++ ((void)((hnd).p == (ptr))); \
+ xencomm_copy_to_guest(_d, _s, sizeof(*_s)*(nr), sizeof(*_s)*(idx)); \
+ })
+
+ #define __copy_field_to_guest(hnd, ptr, field) ({ \
+- const int _off = offsetof(typeof(*ptr), field); \
+- const typeof(ptr) _d = (hnd).p; \
++ unsigned int _off = offsetof(typeof(*(hnd).p), field); \
+ const typeof(&(ptr)->field) _s = &(ptr)->field; \
++ void *_d = (hnd).p; \
++ ((void)(&(hnd).p->field == &(ptr)->field)); \
+ xencomm_copy_to_guest(_d, _s, sizeof(*_s), _off); \
+ })
+
+-#define __copy_from_guest_offset(ptr, hnd, idx, nr) ({ \
+- const typeof(ptr) _s = (hnd).p; \
+- const typeof(ptr) _d = (ptr); \
+- xencomm_copy_from_guest(_d, _s, sizeof(*_s)*(nr), sizeof(*_s)*(idx)); \
++#define __copy_from_guest_offset(ptr, hnd, idx, nr) ({ \
++ const typeof(*(ptr)) *_s = (hnd).p; \
++ typeof(*(ptr)) *_d = (ptr); \
++ xencomm_copy_from_guest(_d, _s, sizeof(*_d)*(nr), sizeof(*_d)*(idx)); \
+ })
+
+ #define __copy_field_from_guest(ptr, hnd, field) ({ \
+- const int _off = offsetof(typeof(*ptr), field); \
+- const typeof(ptr) _s = (hnd).p; \
+- const typeof(&(ptr)->field) _d = &(ptr)->field; \
++ unsigned int _off = offsetof(typeof(*(hnd).p), field); \
++ const void *_s = (hnd).p; \
++ typeof(&(ptr)->field) _d = &(ptr)->field; \
++ ((void)(&(hnd).p->field == &(ptr)->field)); \
+ xencomm_copy_from_guest(_d, _s, sizeof(*_d), _off); \
+ })
+
Index: 2007-05-14/xen/include/asm-x86/guest_access.h
===================================================================
---- 2007-05-14.orig/xen/include/asm-x86/guest_access.h 2007-04-23 10:01:46.000000000 +0200
-+++ 2007-05-14/xen/include/asm-x86/guest_access.h 2007-05-14 14:33:33.000000000 +0200
+--- 2007-05-14.orig/xen/include/asm-x86/guest_access.h 2007-05-15 12:07:55.000000000 +0200
++++ 2007-05-14/xen/include/asm-x86/guest_access.h 2007-05-15 12:15:25.000000000 +0200
@@ -32,11 +32,12 @@
* specifying an offset into the guest array.
*/
@@ -171,7 +218,7 @@
})
/*
-@@ -44,29 +45,31 @@
+@@ -44,29 +45,30 @@
* specifying an offset into the guest array.
*/
#define copy_from_guest_offset(ptr, hnd, off, nr) ({ \
@@ -192,7 +239,7 @@
- const typeof(&(ptr)->field) _y = &(ptr)->field; \
+ const typeof(&(ptr)->field) _s = &(ptr)->field; \
+ void *_d = &(hnd).p->field; \
-+ ((void)((hnd).p == (ptr))); \
++ ((void)(&(hnd).p->field == &(ptr)->field)); \
is_hvm_vcpu(current) ? \
- copy_to_user_hvm(_x, _y, sizeof(*_x)) : \
- copy_to_user(_x, _y, sizeof(*_x)); \
@@ -204,9 +251,8 @@
#define copy_field_from_guest(ptr, hnd, field) ({ \
- const typeof(&(ptr)->field) _x = &(hnd).p->field; \
- typeof(&(ptr)->field) _y = &(ptr)->field; \
-+ const void *_s = &(hnd).p->field; \
++ const typeof(&(ptr)->field) _s = &(hnd).p->field; \
+ typeof(&(ptr)->field) _d = &(ptr)->field; \
-+ ((void)((hnd).p == (ptr))); \
is_hvm_vcpu(current) ? \
- copy_from_user_hvm(_y, _x, sizeof(*_x)) : \
- copy_from_user(_y, _x, sizeof(*_x)); \
@@ -215,7 +261,7 @@
})
/*
-@@ -78,35 +81,37 @@
+@@ -78,35 +80,37 @@
array_access_ok((hnd).p, (nr), sizeof(*(hnd).p)))
#define __copy_to_guest_offset(hnd, off, ptr, nr) ({ \
@@ -271,8 +317,8 @@
#endif /* __ASM_X86_GUEST_ACCESS_H__ */
Index: 2007-05-14/xen/include/xen/compat.h
===================================================================
---- 2007-05-14.orig/xen/include/xen/compat.h 2007-04-23 10:01:47.000000000 +0200
-+++ 2007-05-14/xen/include/xen/compat.h 2007-05-14 14:33:33.000000000 +0200
+--- 2007-05-14.orig/xen/include/xen/compat.h 2007-05-15 12:07:55.000000000 +0200
++++ 2007-05-14/xen/include/xen/compat.h 2007-05-15 12:18:41.000000000 +0200
@@ -44,9 +44,10 @@
* specifying an offset into the guest array.
*/
@@ -300,7 +346,7 @@
})
#define copy_to_compat(hnd, ptr, nr) \
-@@ -67,16 +68,18 @@
+@@ -67,16 +68,17 @@
/* Copy sub-field of a structure to guest context via a compat handle. */
#define copy_field_to_compat(hnd, ptr, field) ({ \
@@ -309,7 +355,7 @@
- copy_to_user(_x, _y, sizeof(*_x)); \
+ const typeof(&(ptr)->field) _s = &(ptr)->field; \
+ void *_d = &((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c)->field; \
-+ ((void)((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c == (ptr))); \
++ ((void)(&((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c)->field == &(ptr)->field)); \
+ copy_to_user(_d, _s, sizeof(*_s)); \
})
@@ -318,14 +364,13 @@
- typeof((ptr)->field) *const _x = &((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c)->field; \
- typeof((ptr)->field) *const _y = &(ptr)->field; \
- copy_from_user(_y, _x, sizeof(*_x)); \
-+ const void *_s = &((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c)->field; \
++ const typeof(&(ptr)->field) _s = &((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c)->field; \
+ typeof(&(ptr)->field) _d = &(ptr)->field; \
-+ ((void)((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c == (ptr))); \
+ copy_from_user(_d, _s, sizeof(*_d)); \
})
/*
-@@ -87,15 +90,16 @@
+@@ -87,15 +89,16 @@
compat_array_access_ok((void *)(full_ptr_t)(hnd).c, (nr), sizeof(**(hnd)._))
#define __copy_to_compat_offset(hnd, off, ptr, nr) ({ \
@@ -348,7 +393,7 @@
})
#define __copy_to_compat(hnd, ptr, nr) \
-@@ -105,15 +109,17 @@
+@@ -105,15 +108,16 @@
__copy_from_compat_offset(ptr, hnd, 0, nr)
#define __copy_field_to_compat(hnd, ptr, field) ({ \
@@ -357,7 +402,7 @@
- __copy_to_user(_x, _y, sizeof(*_x)); \
+ const typeof(&(ptr)->field) _s = &(ptr)->field; \
+ void *_d = &((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c)->field; \
-+ ((void)((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c == (ptr))); \
++ ((void)(&((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c)->field == &(ptr)->field)); \
+ __copy_to_user(_d, _s, sizeof(*_s)); \
})
@@ -365,10 +410,60 @@
- typeof((ptr)->field) *const _x = &((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c)->field; \
- typeof((ptr)->field) *const _y = &(ptr)->field; \
- __copy_from_user(_y, _x, sizeof(*_x)); \
-+ const void *_s = &((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c)->field; \
++ const typeof(&(ptr)->field) _s = &((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c)->field; \
+ typeof(&(ptr)->field) _d = &(ptr)->field; \
-+ ((void)((typeof(**(hnd)._) *)(full_ptr_t)(hnd).c == (ptr))); \
+ __copy_from_user(_d, _s, sizeof(*_d)); \
})
+Index: 2007-05-14/xen/include/xen/xencomm.h
+===================================================================
+--- 2007-05-14.orig/xen/include/xen/xencomm.h 2007-05-15 12:07:55.000000000 +0200
++++ 2007-05-14/xen/include/xen/xencomm.h 2007-05-15 12:25:21.000000000 +0200
+@@ -87,29 +87,32 @@ static inline unsigned long xencomm_inli
+ __copy_field_from_guest(ptr, hnd, field)
+
+ #define __copy_to_guest_offset(hnd, idx, ptr, nr) ({ \
+- const typeof(ptr) _x = (hnd).p; \
+- const typeof(ptr) _y = (ptr); \
+- xencomm_copy_to_guest(_x, _y, sizeof(*_x)*(nr), sizeof(*_x)*(idx)); \
++ const typeof(*(ptr)) *_s = (ptr); \
++ void *_d = (hnd).p; \
++ ((void)((hnd).p == (ptr))); \
++ xencomm_copy_to_guest(_d, _s, sizeof(*_s)*(nr), sizeof(*_s)*(idx)); \
+ })
+
+ #define __copy_field_to_guest(hnd, ptr, field) ({ \
+- const int _off = offsetof(typeof(*ptr), field); \
+- const typeof(&(ptr)->field) _x = &(hnd).p->field; \
+- const typeof(&(ptr)->field) _y = &(ptr)->field; \
+- xencomm_copy_to_guest(_x, _y, sizeof(*_x), sizeof(*_x)*(_off)); \
++ unsigned int _off = offsetof(typeof(*(hnd).p), field); \
++ const typeof(&(ptr)->field) _s = &(ptr)->field; \
++ void *_d = (hnd).p; \
++ ((void)(&(hnd).p->field == &(ptr)->field)); \
++ xencomm_copy_to_guest(_d, _s, sizeof(*_s), _off); \
+ })
+
+ #define __copy_from_guest_offset(ptr, hnd, idx, nr) ({ \
+- const typeof(ptr) _x = (hnd).p; \
+- const typeof(ptr) _y = (ptr); \
+- xencomm_copy_from_guest(_y, _x, sizeof(*_x)*(nr), sizeof(*_x)*(idx)); \
++ const typeof(*(ptr)) *_s = (hnd).p; \
++ typeof(*(ptr)) *_d = (ptr); \
++ xencomm_copy_from_guest(_d, _s, sizeof(*_d)*(nr), sizeof(*_d)*(idx)); \
+ })
+
+ #define __copy_field_from_guest(ptr, hnd, field) ({ \
+- const int _off = offsetof(typeof(*ptr), field); \
+- const typeof(&(ptr)->field) _x = &(hnd).p->field; \
+- const typeof(&(ptr)->field) _y = &(ptr)->field; \
+- xencomm_copy_to_guest(_y, _x, sizeof(*_x), sizeof(*_x)*(_off)); \
++ unsigned int _off = offsetof(typeof(*(hnd).p), field); \
++ const void *_s = (hnd).p; \
++ typeof(&(ptr)->field) _d = &(ptr)->field; \
++ ((void)(&(hnd).p->field == &(ptr)->field)); \
++ xencomm_copy_from_guest(_d, _s, sizeof(*_d), _off); \
+ })
+
+ #endif /* __XENCOMM_H__ */
++++++ init.xend ++++++
--- arch/i386/xen/init.xend 2007-05-07 18:46:42.000000000 +0200
+++ /mounts/work_src_done/STABLE/xen/init.xend 2007-05-22 23:22:58.000000000 +0200
@@ -1,9 +1,9 @@
#!/bin/bash
#
-# xend Starts and stops the Xen control daemon
+# xend Starts and stops the Xen management daemon
#
# chkconfig: 35 98 01
-# description: Starts and stops the Xen control daemon
+# description: Starts and stops the Xen management daemon
#
### BEGIN INIT INFO
# Provides: xend
@@ -13,11 +13,17 @@
# Should-Stop: $time $network $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
-# Short-Description: Starts and stops the Xen control daemon
-# Description: Starts and stops the Xen control daemon. xend is needed
-# to use Xen.
+# Short-Description: Starts and stops the Xen management daemon
+# Description: Starts and stops the Xen management daemon. xend is needed
+# to create and manage VMs on Xen.
### END INIT INFO
+. /etc/rc.status
+rc_reset
+
+XEND=`ps ax | grep -w xend | grep -w python | awk '{ print $1 }'`
+XEND=`echo $XEND`
+
await_daemons_up()
{
i=1
@@ -31,9 +37,6 @@
done
}
-. /etc/rc.status
-rc_reset
-
xend_abort()
{
echo -n "xend "
@@ -48,47 +51,31 @@
rm -f /var/lib/xen/xenbl* 2>/dev/null
}
-parseln()
+check()
{
- name=${1:0:$((${#1}-36))}
- name=${name%% *}
- rest="${1: -36}"
- id=${rest:0:4}
- id=`echo $id`
- mem=${rest:4:6}
- mem=`echo $mem`
- vcpu=${rest:10:6}
- vcpu=`echo $vcpu`
- state=${rest:16:11}
- state=`echo $state`
- tm=${rest:27}
- tm=`echo $tm`
-}
-
-if [ "$1" == status ]; then
- if [ ! -e /proc/xen/capabilities ]; then
- xend_abort 3
- fi
-else
- if [ `id -u` != 0 ]; then
- xend_abort 4
- fi
- if [ ! -e /proc/xen/capabilities ] ||
- ! grep control_d /proc/xen/capabilities >/dev/null 2>&1; then
- if [ "$1" == stop ] ||
- [ "$1" == try-restart ]; then
- xend_abort 0
- else
- xend_abort 6
+ if [ "$1" == status ]; then
+ if [ ! -e /proc/xen/capabilities ]; then
+ xend_abort 3
+ fi
+ else
+ if [ `id -u` != 0 ]; then
+ xend_abort 4
+ fi
+ if [ ! -e /proc/xen/capabilities ] ||
+ ! grep control_d /proc/xen/capabilities >/dev/null 2>&1; then
+ if [ "$1" == stop ] ||
+ [ "$1" == try-restart ]; then
+ xend_abort 0
+ else
+ xend_abort 6
+ fi
fi
fi
-fi
-
-XEND=`ps ax | grep xend | grep python | awk '{ print $1 }'`
-XEND=`echo $XEND`
+}
case "$1" in
start)
+ check $1
echo -n "Starting xend "
if [ ! -z "$XEND" ]; then
echo -n "(already running pid $XEND) "
@@ -111,6 +98,7 @@
await_daemons_up
;;
stop)
+ check $1
echo -n "Stopping xend "
if [ -z "$XEND" ]; then
echo -n "(not running) "
@@ -124,6 +112,7 @@
fi
;;
status)
+ check $1
echo -n "Checking status of xend "
if [ ! -z "$XEND" ]; then
echo -n "(pid $XEND) "
@@ -131,6 +120,7 @@
xend status
;;
restart|reload)
+ check $1
echo -n "Restarting xend "
if [ -z "$XEND" ]; then
echo -n "(not running) "
@@ -141,6 +131,7 @@
await_daemons_up
;;
try-restart)
+ check $1
$0 status
if [ $? = 0 ]; then
$0 restart
++++++ init.xendomains ++++++
--- arch/i386/xen/init.xendomains 2007-03-12 16:00:38.000000000 +0100
+++ /mounts/work_src_done/STABLE/xen/init.xendomains 2007-05-22 23:22:58.000000000 +0200
@@ -1,9 +1,9 @@
#!/bin/bash
#
-# xendomains Starts and stops secondary Xen domains
+# xendomains Starts and stops Xen VMs
#
# chkconfig: 35 99 00
-# description: Starts and stops secondary Xen domains
+# description: Starts and stops Xen VMs
#
### BEGIN INIT INFO
# Provides: xendomains
@@ -13,19 +13,19 @@
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
-# Short-Description: Starts and stops secondary Xen domains
-# Description: Starts and stops secondary Xen domains automatically
-# when domain 0 starts and stops.
+# Short-Description: Starts and stops Xen VMs
+# Description: Starts and stops Xen VMs automatically when the
+# host starts and stops.
### END INIT INFO
-# FIXME: Watch out for domain names with invalid characters.
-
. /etc/rc.status
rc_reset
LOCKFILE=/var/lock/subsys/xendomains
XENDOM_CONFIG=/etc/sysconfig/xendomains
-RETCODE_FILE=/var/lock/subsys/xendomains.rc.$$
+RETCODE_FILE=/tmp/xendomains.rc.$$
+
+. "$XENDOM_CONFIG"
shopt -s dotglob nullglob
@@ -53,31 +53,33 @@
rc_exit
}
-if [ "$1" = status ]; then
- if [ ! -e /proc/xen/privcmd ]; then
- xendomains_abort 3
- fi
- if [ ! -r "$XENDOM_CONFIG" ]; then
- xendomains_abort 3
- fi
-else
- if [ `id -u` != 0 ]; then
- xendomains_abort 4
- fi
- if [ ! -e /proc/xen/privcmd ]; then
- if [ "$1" = stop ] ||
- [ "$1" = restart ]; then
- xendomains_abort 0
- else
+check()
+{
+ XEND=`ps ax | grep -w xend | grep -w python | awk '{ print $1 }'`
+ XEND=`echo $XEND`
+
+ if [ "$1" = status ]; then
+ if [ ! -e /proc/xen/capabilities ] || [ ! -r "$XENDOM_CONFIG" ] || [ -z "$XEND" ]; then
+ xendomains_abort 3
+ fi
+ else
+ if [ `id -u` != 0 ]; then
+ xendomains_abort 4
+ fi
+ if [ ! -e /proc/xen/capabilities ] || [ -z "$XEND" ] ||
+ ! grep control_d /proc/xen/capabilities >/dev/null 2>&1; then
+ if [ "$1" = stop ] ||
+ [ "$1" = restart ]; then
+ xendomains_abort 0
+ else
+ xendomains_abort 6
+ fi
+ fi
+ if [ ! -r "$XENDOM_CONFIG" ]; then
xendomains_abort 6
fi
fi
- if [ ! -r "$XENDOM_CONFIG" ]; then
- xendomains_abort 6
- fi
-fi
-
-. "$XENDOM_CONFIG"
+}
dir_contains_something()
{
@@ -88,7 +90,7 @@
get_name_from_cfg()
{
- NM=`grep '^name[ ]*=' $1 | sed -e 's/^name[ ]*=[ ]*['\''"]\([^'\''"]*\)['\''"].*$/\1/'`
+ NM=`grep '^name[ ]*=' "$1" | sed -e 's/^name[ ]*=[ ]*['\''"]\([^'\''"]*\)['\''"].*$/\1/'`
}
running_auto_names()
@@ -120,6 +122,11 @@
tm=`echo $tm`
}
+xm_list()
+{
+ TERM=vt100 xm list | grep -v '^Name *ID'
+}
+
is_cfg_running()
{
get_name_from_cfg "$1"
@@ -130,7 +137,7 @@
[ -z "$state" ] && return 1
return 0
fi
- done < <(xm list | grep -v '^Name *ID')
+ done < <(xm_list)
return 1
}
@@ -204,7 +211,7 @@
[ "$id" = 0 ] && continue
[ -z "$state" ] && continue
is_zombie_state "$state" || return 0
- done < <(xm list | grep -v '^Name *ID')
+ done < <(xm_list)
return 1
}
@@ -368,7 +375,7 @@
fi
rc_status -v
fi
- done < <(xm list | grep -v '^Name *ID')
+ done < <(xm_list)
if [ -n "$XENDOMAINS_SHUTDOWN_ALL" ] && any_non_zombies ; then
echo -n " others: shutting down... "
@@ -398,7 +405,7 @@
[ -z "$state" ] && return 1
return 0
fi
- done < <(xm list | grep -v '^Name *ID')
+ done < <(xm_list)
return 1
}
@@ -440,18 +447,22 @@
case "$1" in
start)
+ check $1
start
;;
stop)
+ check $1
stop
;;
restart|reload)
+ check $1
restart
;;
try-restart)
+ check $1
"$0" status
if [ $? = 0 ]; then
"$0" restart
@@ -462,6 +473,7 @@
;;
status)
+ check $1
echo -n "Checking status of Xen domains"
if [ ! -f "$LOCKFILE" ]; then
rc_failed 3
++++++ rpmlint.diff ++++++
Index: xen-3.1-testing/tools/blktap/lib/Makefile
===================================================================
--- xen-3.1-testing.orig/tools/blktap/lib/Makefile
+++ xen-3.1-testing/tools/blktap/lib/Makefile
@@ -42,10 +42,10 @@ libblktap: libblktap.a
install: all
$(INSTALL_DIR) $(DESTDIR)/usr/$(LIBDIR)
$(INSTALL_DIR) $(DESTDIR)/usr/include
- $(INSTALL_PROG) $(LIB) $(DESTDIR)/usr/$(LIBDIR)
+ $(INSTALL_DATA) $(LIB) $(DESTDIR)/usr/$(LIBDIR)
ln -sf libblktap.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/libblktap.so.$(MAJOR)
ln -sf libblktap.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libblktap.so
- $(INSTALL_PROG) blktaplib.h $(DESTDIR)/usr/include
+ $(INSTALL_DATA) blktaplib.h $(DESTDIR)/usr/include
clean:
rm -rf *.a *.so* *.o *.rpm $(LIB) *~ $(DEPS) xen TAGS
Index: xen-3.1-testing/tools/examples/Makefile
===================================================================
--- xen-3.1-testing.orig/tools/examples/Makefile
+++ xen-3.1-testing/tools/examples/Makefile
@@ -56,7 +56,7 @@ install-initd:
[ -d $(DESTDIR)/var/adm/fillup-templates ] || $(INSTALL_DIR) $(DESTDIR)/var/adm/fillup-templates/
$(INSTALL_PROG) $(XEND_INITD) $(DESTDIR)/etc/init.d
$(INSTALL_PROG) $(XENDOMAINS_INITD) $(DESTDIR)/etc/init.d
- $(INSTALL_PROG) $(XENDOMAINS_SYSCONFIG) $(DESTDIR)/var/adm/fillup-templates/
+ $(INSTALL_DATA) $(XENDOMAINS_SYSCONFIG) $(DESTDIR)/var/adm/fillup-templates/
.PHONY: install-configs
install-configs: $(XEN_CONFIGS)
++++++ vmx-check-descr.patch ++++++
Index: 2007-05-14/xen/arch/x86/hvm/vmx/vmx.c
===================================================================
--- 2007-05-14.orig/xen/arch/x86/hvm/vmx/vmx.c 2007-05-22 13:36:08.000000000 +0200
+++ 2007-05-14/xen/arch/x86/hvm/vmx/vmx.c 2007-05-22 13:51:26.000000000 +0200
@@ -1521,15 +1521,15 @@ static int vmx_check_descriptor(int long
limit_field = GUEST_FS_LIMIT;
break;
case x86_seg_gs:
- ar_field = GUEST_FS_AR_BYTES;
- base_field = GUEST_FS_BASE;
- limit_field = GUEST_FS_LIMIT;
- break;
- case x86_seg_ss:
ar_field = GUEST_GS_AR_BYTES;
base_field = GUEST_GS_BASE;
limit_field = GUEST_GS_LIMIT;
break;
+ case x86_seg_ss:
+ ar_field = GUEST_SS_AR_BYTES;
+ base_field = GUEST_SS_BASE;
+ limit_field = GUEST_SS_LIMIT;
+ break;
default:
BUG();
return 0;
++++++ x86_emulate.patch ++++++
--- /var/tmp/diff_new_pack.Tk7732/_old 2007-05-23 01:43:56.000000000 +0200
+++ /var/tmp/diff_new_pack.Tk7732/_new 2007-05-23 01:43:56.000000000 +0200
@@ -1,7 +1,7 @@
Index: 2007-05-14/xen/arch/x86/mm.c
===================================================================
---- 2007-05-14.orig/xen/arch/x86/mm.c 2007-05-14 14:40:28.000000000 +0200
-+++ 2007-05-14/xen/arch/x86/mm.c 2007-05-14 14:40:43.000000000 +0200
+--- 2007-05-14.orig/xen/arch/x86/mm.c 2007-05-15 10:29:55.000000000 +0200
++++ 2007-05-14/xen/arch/x86/mm.c 2007-05-15 10:31:42.000000000 +0200
@@ -3499,6 +3499,7 @@ static int ptwr_emulated_cmpxchg(
container_of(ctxt, struct ptwr_emulate_ctxt, ctxt));
}
@@ -30,7 +30,7 @@
/* Write page fault handler: check if guest is trying to modify a PTE. */
Index: 2007-05-14/xen/arch/x86/mm/shadow/common.c
===================================================================
---- 2007-05-14.orig/xen/arch/x86/mm/shadow/common.c 2007-05-14 14:40:28.000000000 +0200
+--- 2007-05-14.orig/xen/arch/x86/mm/shadow/common.c 2007-05-14 14:35:02.000000000 +0200
+++ 2007-05-14/xen/arch/x86/mm/shadow/common.c 2007-05-14 14:40:43.000000000 +0200
@@ -310,6 +310,7 @@ hvm_emulate_cmpxchg(enum x86_segment seg
v, addr, old, new, bytes, sh_ctxt);
@@ -99,7 +99,7 @@
Index: 2007-05-14/xen/arch/x86/mm/shadow/multi.c
===================================================================
---- 2007-05-14.orig/xen/arch/x86/mm/shadow/multi.c 2007-05-14 14:40:28.000000000 +0200
+--- 2007-05-14.orig/xen/arch/x86/mm/shadow/multi.c 2007-05-14 14:35:02.000000000 +0200
+++ 2007-05-14/xen/arch/x86/mm/shadow/multi.c 2007-05-14 14:40:43.000000000 +0200
@@ -4025,7 +4025,8 @@ sh_x86_emulate_cmpxchg(struct vcpu *v, u
return rv;
@@ -131,7 +131,7 @@
#if SHADOW_OPTIMIZATIONS & SHOPT_WRITABLE_HEURISTIC
Index: 2007-05-14/xen/arch/x86/x86_emulate.c
===================================================================
---- 2007-05-14.orig/xen/arch/x86/x86_emulate.c 2007-04-23 10:01:43.000000000 +0200
+--- 2007-05-14.orig/xen/arch/x86/x86_emulate.c 2007-05-15 10:29:19.000000000 +0200
+++ 2007-05-14/xen/arch/x86/x86_emulate.c 2007-05-14 14:40:43.000000000 +0200
@@ -30,6 +30,7 @@
#include
@@ -259,7 +259,7 @@
#ifdef __x86_64__
Index: 2007-05-14/xen/include/asm-x86/cpufeature.h
===================================================================
---- 2007-05-14.orig/xen/include/asm-x86/cpufeature.h 2007-05-14 14:40:20.000000000 +0200
+--- 2007-05-14.orig/xen/include/asm-x86/cpufeature.h 2007-05-15 10:29:19.000000000 +0200
+++ 2007-05-14/xen/include/asm-x86/cpufeature.h 2007-05-14 14:40:43.000000000 +0200
@@ -121,6 +121,7 @@
#define cpu_has_cyrix_arr boot_cpu_has(X86_FEATURE_CYRIX_ARR)
@@ -279,7 +279,7 @@
#endif /* __ASM_I386_CPUFEATURE_H */
Index: 2007-05-14/xen/include/asm-x86/x86_emulate.h
===================================================================
---- 2007-05-14.orig/xen/include/asm-x86/x86_emulate.h 2007-04-23 10:01:47.000000000 +0200
+--- 2007-05-14.orig/xen/include/asm-x86/x86_emulate.h 2007-05-15 10:29:19.000000000 +0200
+++ 2007-05-14/xen/include/asm-x86/x86_emulate.h 2007-05-14 14:40:43.000000000 +0200
@@ -68,8 +68,9 @@ enum x86_segment {
* some out-of-band mechanism, unknown to the emulator. The memop signals
@@ -318,7 +318,7 @@
unsigned long old_lo,
Index: 2007-05-14/xen/include/asm-x86/paging.h
===================================================================
---- 2007-05-14.orig/xen/include/asm-x86/paging.h 2007-04-23 10:01:46.000000000 +0200
+--- 2007-05-14.orig/xen/include/asm-x86/paging.h 2007-05-15 10:29:19.000000000 +0200
+++ 2007-05-14/xen/include/asm-x86/paging.h 2007-05-14 14:40:43.000000000 +0200
@@ -93,12 +93,14 @@ struct shadow_paging_mode {
unsigned long new,
++++++ x86-emul-rf.patch ++++++
Index: 2007-05-14/xen/arch/x86/hvm/io.c
===================================================================
--- 2007-05-14.orig/xen/arch/x86/hvm/io.c 2007-05-14 14:40:19.000000000 +0200
+++ 2007-05-14/xen/arch/x86/hvm/io.c 2007-05-22 13:27:31.000000000 +0200
@@ -858,6 +858,7 @@ void hvm_io_assist(void)
}
/* Copy register changes back into current guest state. */
+ regs->eflags &= ~X86_EFLAGS_RF;
hvm_load_cpu_guest_regs(v, regs);
memcpy(guest_cpu_user_regs(), regs, HVM_CONTEXT_STACK_BYTES);
Index: 2007-05-14/xen/arch/x86/hvm/platform.c
===================================================================
--- 2007-05-14.orig/xen/arch/x86/hvm/platform.c 2007-05-14 14:40:20.000000000 +0200
+++ 2007-05-14/xen/arch/x86/hvm/platform.c 2007-05-22 13:13:10.000000000 +0200
@@ -1065,6 +1065,7 @@ void handle_mmio(unsigned long gpa)
}
regs->eip += inst_len; /* advance %eip */
+ regs->eflags &= ~X86_EFLAGS_RF;
switch ( mmio_op->instr ) {
case INSTR_MOV:
@@ -1122,6 +1123,7 @@ void handle_mmio(unsigned long gpa)
/* IO read --> memory write */
if ( dir == IOREQ_READ ) errcode |= PFEC_write_access;
regs->eip -= inst_len; /* do not advance %eip */
+ regs->eflags |= X86_EFLAGS_RF;
hvm_inject_exception(TRAP_page_fault, errcode, addr);
return;
}
@@ -1150,6 +1152,7 @@ void handle_mmio(unsigned long gpa)
/* Failed on the page-spanning copy. Inject PF into
* the guest for the address where we failed */
regs->eip -= inst_len; /* do not advance %eip */
+ regs->eflags |= X86_EFLAGS_RF;
/* Must set CR2 at the failing address */
addr += size - rv;
gdprintk(XENLOG_DEBUG, "Pagefault on non-io side of a "
Index: 2007-05-14/xen/arch/x86/hvm/vmx/vmx.c
===================================================================
--- 2007-05-14.orig/xen/arch/x86/hvm/vmx/vmx.c 2007-05-15 17:56:59.000000000 +0200
+++ 2007-05-14/xen/arch/x86/hvm/vmx/vmx.c 2007-05-22 13:36:08.000000000 +0200
@@ -1281,10 +1281,13 @@ static int __get_instruction_length(void
static void inline __update_guest_eip(unsigned long inst_len)
{
- unsigned long current_eip;
+ unsigned long curr;
- current_eip = __vmread(GUEST_RIP);
- __vmwrite(GUEST_RIP, current_eip + inst_len);
+ curr = __vmread(GUEST_RIP);
+ __vmwrite(GUEST_RIP, curr + inst_len);
+ curr = __vmread(GUEST_RFLAGS);
+ if (curr & X86_EFLAGS_RF)
+ __vmwrite(GUEST_RFLAGS, curr & ~X86_EFLAGS_RF);
__vmwrite(GUEST_INTERRUPTIBILITY_INFO, 0);
}
@@ -1558,7 +1561,7 @@ static void vmx_io_instruction(unsigned
/* Copy current guest state into io instruction state structure. */
memcpy(regs, guest_cpu_user_regs(), HVM_CONTEXT_STACK_BYTES);
- hvm_store_cpu_guest_regs(current, regs, NULL);
+ vmx_store_cpu_guest_regs(current, regs, NULL);
vm86 = regs->eflags & X86_EFLAGS_VM ? 1 : 0;
df = regs->eflags & X86_EFLAGS_DF ? 1 : 0;
@@ -1785,7 +1788,7 @@ static void vmx_world_save(struct vcpu *
c->eip += __get_instruction_length(); /* Safe: MOV Cn, LMSW, CLTS */
c->esp = __vmread(GUEST_RSP);
- c->eflags = __vmread(GUEST_RFLAGS);
+ c->eflags = __vmread(GUEST_RFLAGS) & ~X86_EFLAGS_RF;
c->cr0 = v->arch.hvm_vmx.cpu_shadow_cr0;
c->cr3 = v->arch.hvm_vmx.cpu_cr3;
@@ -2150,7 +2153,6 @@ static int vmx_set_cr0(unsigned long val
"Enabling CR0.PE at %%eip 0x%lx", eip);
if ( vmx_assist(v, VMX_ASSIST_RESTORE) )
{
- eip = __vmread(GUEST_RIP);
HVM_DBG_LOG(DBG_LEVEL_1,
"Restoring to %%eip 0x%lx", eip);
return 0; /* do not update eip! */
Index: 2007-05-14/xen/arch/x86/traps.c
===================================================================
--- 2007-05-14.orig/xen/arch/x86/traps.c 2007-05-15 15:52:58.000000000 +0200
+++ 2007-05-14/xen/arch/x86/traps.c 2007-05-22 13:05:28.000000000 +0200
@@ -608,6 +608,7 @@ static int emulate_forced_invalid_op(str
regs->ecx = c;
regs->edx = d;
regs->eip = eip;
+ regs->eflags &= ~X86_EFLAGS_RF;
return EXCRET_fault_fixed;
}
@@ -1807,6 +1808,7 @@ static int emulate_privileged_op(struct
done:
regs->eip = eip;
+ regs->eflags &= ~X86_EFLAGS_RF;
return EXCRET_fault_fixed;
fail:
Index: 2007-05-14/xen/arch/x86/x86_emulate.c
===================================================================
--- 2007-05-14.orig/xen/arch/x86/x86_emulate.c 2007-05-14 14:40:43.000000000 +0200
+++ 2007-05-14/xen/arch/x86/x86_emulate.c 2007-05-22 13:04:05.000000000 +0200
@@ -1631,6 +1631,7 @@ x86_emulate(
}
/* Commit shadow register state. */
+ _regs.eflags &= ~X86_EFLAGS_RF;
*ctxt->regs = _regs;
done:
Index: 2007-05-14/xen/include/asm-x86/hvm/svm/emulate.h
===================================================================
--- 2007-05-14.orig/xen/include/asm-x86/hvm/svm/emulate.h 2007-04-23 10:01:46.000000000 +0200
+++ 2007-05-14/xen/include/asm-x86/hvm/svm/emulate.h 2007-05-22 13:45:43.000000000 +0200
@@ -138,6 +138,7 @@ static void inline __update_guest_eip(
{
ASSERT(inst_len > 0);
vmcb->rip += inst_len;
+ vmcb->rflags &= ~X86_EFLAGS_RF;
}
#endif /* __ASM_X86_HVM_SVM_EMULATE_H__ */
++++++ x86-machine-check.patch ++++++
++++ 873 lines (skipped)
++++++ x86-page-cacheability.patch ++++++
++++ 702 lines (skipped)
++++++ xend-config.diff ++++++
--- /var/tmp/diff_new_pack.Tk7732/_old 2007-05-23 01:43:57.000000000 +0200
+++ /var/tmp/diff_new_pack.Tk7732/_new 2007-05-23 01:43:57.000000000 +0200
@@ -1,7 +1,13 @@
-Index: xen-unstable/tools/examples/init.d/sysconfig.xendomains
+Index: xen-3.1-testing/tools/examples/init.d/sysconfig.xendomains
===================================================================
---- xen-unstable.orig/tools/examples/init.d/sysconfig.xendomains
-+++ xen-unstable/tools/examples/init.d/sysconfig.xendomains
+--- xen-3.1-testing.orig/tools/examples/init.d/sysconfig.xendomains
++++ xen-3.1-testing/tools/examples/init.d/sysconfig.xendomains
+@@ -1,4 +1,4 @@
+-## Path: System/xen
++## Path: System/Virtualization
+ ## Description: xen domain start/stop on boot
+ ## Type: string
+ ## Default:
@@ -98,7 +98,6 @@ XENDOMAINS_RESTORE=true
# Note that the script tries to be clever if both RESTORE and AUTO are
# set: It will first restore saved domains and then only start domains
@@ -21,10 +27,10 @@
## Type: integer
## Default: 300
-Index: xen-unstable/tools/examples/xend-config.sxp
+Index: xen-3.1-testing/tools/examples/xend-config.sxp
===================================================================
---- xen-unstable.orig/tools/examples/xend-config.sxp
-+++ xen-unstable/tools/examples/xend-config.sxp
+--- xen-3.1-testing.orig/tools/examples/xend-config.sxp
++++ xen-3.1-testing/tools/examples/xend-config.sxp
@@ -51,16 +51,19 @@
#
# (9367 pam '' /etc/xen/xen-api.key /etc/xen/xen-api.crt)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org