9621add6e3
support qcow2, so blktap is needed to support domains with 'tap:qcow2' disk configurations. modified tmp-initscript-modprobe.patch - bnc#809203 - xen.efi isn't signed with SUSE Secure Boot key xen.spec - Fix adding managed PCI device to an inactive domain modified xen-managed-pci-device.patch - bnc#805094 - xen hot plug attach/detach fails modified blktap-pv-cdrom.patch - bnc# 802690 - domain locking can prevent a live migration from completing modified xend-domain-lock.patch - bnc#797014 - no way to control live migrations 26675-tools-xentoollog_update_tty_detection_in_stdiostream_progress.patch xen.migrate.tools-xc_print_messages_from_xc_save_with_xc_report.patch xen.migrate.tools-xc_document_printf_calls_in_xc_restore.patch xen.migrate.tools-xc_rework_xc_save.cswitch_qemu_logdirty.patch xen.migrate.tools_set_migration_constraints_from_cmdline.patch xen.migrate.tools_add_xm_migrate_--log_progress_option.patch - Upstream patches from Jan 26585-x86-mm-Take-the-p2m-lock-even-in-shadow-mode.patch 26595-x86-nhvm-properly-clean-up-after-failure-to-set-up-all-vCPU-s.patch 26601-honor-ACPI-v4-FADT-flags.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=232
37 lines
1.5 KiB
Diff
37 lines
1.5 KiB
Diff
# Commit d9fb28ae6d41c8201482948660e52889481830dd
|
|
# Date 2013-03-04 13:42:17 +0100
|
|
# Author Olaf Hering <olaf@aepfle.de>
|
|
# Committer Jan Beulich <jbeulich@suse.com>
|
|
xentrace: fix off-by-one in calculate_tbuf_size
|
|
|
|
Commit "xentrace: reduce trace buffer size to something mfn_offset can
|
|
reach" contains an off-by-one bug. max_mfn_offset needs to be reduced by
|
|
exactly the value of t_info_first_offset.
|
|
|
|
If the system has two cpus and the number of requested trace pages is
|
|
very large, the final number of trace pages + the offset will not fit
|
|
into a short. As a result the variable offset in alloc_trace_bufs() will
|
|
wrap while allocating buffers for the second cpu. Later
|
|
share_xen_page_with_privileged_guests() will be called with a wrong page
|
|
and the ASSERT in this function triggers. If the ASSERT is ignored by
|
|
running a non-dbg hypervisor the asserts in xentrace itself trigger
|
|
because "cons" is not aligned because the very last trace page for the
|
|
second cpu is a random mfn.
|
|
|
|
Thanks to Jan for the quick analysis.
|
|
|
|
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
|
Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
|
|
|
|
--- a/xen/common/trace.c
|
|
+++ b/xen/common/trace.c
|
|
@@ -133,7 +133,7 @@ static int calculate_tbuf_size(unsigned
|
|
* The array of mfns for the highest cpu can start at the maximum value
|
|
* mfn_offset can hold. So reduce the number of cpus and also the mfn_offset.
|
|
*/
|
|
- max_mfn_offset -= t_info_first_offset - 1;
|
|
+ max_mfn_offset -= t_info_first_offset;
|
|
max_cpus--;
|
|
if ( max_cpus )
|
|
max_mfn_offset /= max_cpus;
|