Commit 62850f2b authored by Michael Tokarev's avatar Michael Tokarev
Browse files

Merge tag 'v3.1.0-rc5' into debian-unstable

parents 4f818e7b 33a1e28f
/control
/*.debhelper
/*.debhelper.log
/*.substvars
/files
/libcacard0/
/libcacard-dev/
/libcacard-tools/
/qemu-common/
/qemu-guest-agent/
/qemu-keymaps/
/qemu-kvm/
/qemu-system/
/qemu-system-arm/
/qemu-system-common/
/qemu-system-mips/
/qemu-system-misc/
/qemu-system-ppc/
/qemu-system-sparc/
/qemu-system-x86/
/qemu-user-static/
/qemu-user/
/qemu-utils/
/qemu/
!patches
Evolution of qemu-related packages in debian
kvm: was a binary package providing /usr/bin/kvm before squeeze.
In squeeze it has been renamed to qemu-kvm,
so kvm becomes a transitional package.
Probably can be get rid of now.
No need to conflict with this package, but we can force-remove it
by conflicting with it.
Some packages may still Require/Depend/Suggest: kvm.
qemu-kvm: was a binary package providing /usr/bin/kvm in wheezy (v. 1.1)
This binary become a (deprecated) shell wrapper and was a part of
qemu-system-x86 package between versions 1.3.0+dfsg-5 (when qemu-system
were split) up to 1.7.0+dfsg-1, with qemu-kvm package being transitional.
At version 1.7.0+dfsg-2, qemu-kvm packcage is not transitional anymore,
and the wrapper is provided by qemu-kvm, not qemu-system-x86.
Some packages may Require/Depend/Suggest: qemu-kvm.
qemu: initially it was a mix of all of qemu (unrelated, not conflicting
with qemu-kvm or kvm)
at 0.11.0-1 it were split to qemu-user, qemu-user-static and qemu-system.
Also qemu-keymaps is made a separate package at version 0.12.4+dfsg-4
(for use together with qemu-kvm and xen and, on ubuntu, qemu-linaro).
And qemu-utils become a separate package (look when? since the beginning?)
Now it is a metapackage and a placeholder for some docs
qemu-system: was a package with all qemu-system-* binaries.
Were split into individual qemu-system-foo and qemu-system-common at version
1.3.0+dfsg-5, so qemu-system becomes a metapackage without its own files.
The split introduced a bunch of qemu-system-* conflicting+replacing
qemu-system<<1.3.0+dfsg-5.
At version 1.3.0+dfsg-4exp (before split, in experimental), /usr/bin/kvm was
a part of qemu-system (and later qemu-system-x86)/
At the same version, virtfs-proxy-helper binary has been moved from qemu-utils
to qemu-system (and later to qemu-system-common).
qemu-system-common: appeared at 1.3.0+dfsg-5, files common for all qemu-system*
briefly (>=1.3.0+dfsg-4exp, <<1.3.0+dfsg-5), qemu-utils had
virtfs-proxy-helper binary which is in qemu-system-common
qemu-keymaps: keymap definition for qemu, qemu-kvm and xen.
Can be merged into qemu-system-common now, or after qemu-linaro.
Were split out of qemu at version 0.12.4+dfsg-4
qemu-utils: common utilities (part of qemu-common in ubuntu?)
In versions between 1.3.0+dfsg-1~exp1 and 1.3.0+dfsg-4exp, wrongly shipped
virtfs-proxy-helper binary
qemu-user, qemu-user-static: user-mode qemu emulation
Were split out of qemu at verson 0.11.0-1 (pre-squeeze),
do not conflict/replace anything anymore.
qemu-common: ubuntu package
* fix other binaries (s390-zipl, ppc_rom)
* permissions/ownership for /dev/vhost_net???
* startup script for qemu-guest-agent: check dependencies & runlevels.
* maybe provide activation for udev & systemd:
SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \
TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service"
and dev-virtio/ports-org.qemu.guest_agent.0.device activation
for systemd.
* decide what to do with qemu-bridge-helper (#691138)
# check if we're running inside an (lxc) container
# (we may copy or move this to the postinst script too, to skip installing it)
grep -zqs ^container= /proc/1/environ && exit 0
# == binfmt registration/deregistration ==
if command -v update-binfmts > /dev/null ; then
fmts="aarch64 alpha arm armeb cris hppa i386 m68k microblaze mips mipsel mipsn32 mipsn32el mips64 mips64el ppc ppc64 ppc64abi32 ppc64le riscv32 riscv64 s390x sh4 sh4eb sparc sparc32plus sparc64 x86_64 xtensa xtensaeb"
# linux ELF_OSABI(byte7) can be 0 (traditional,SYSV) or 3 (GNU/LINUX extensions)
# binfmt registration does not allow a enum, only value&mask. So we use broader mask
# to allow both 0 and 3 here, this also lets 1 (HPUX) and 2 (NETBSD) - 0xfc not 0xff
# alternative is to create 2 magic/mask pairs instead of one
aarch64_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00'
aarch64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
alpha_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90'
alpha_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
arm_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00'
arm_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
armeb_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28'
armeb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
cris_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x4c\x00'
cris_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
hppa_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x0f'
hppa_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
i386_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00'
i386_mask='\xff\xff\xff\xff\xff\xfe\xfe\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
m68k_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04'
m68k_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
microblaze_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xba\xab'
microblaze_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
mips_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08'
mips_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
mipsel_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00'
mipsel_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xfe\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
mips64_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08'
mips64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
mips64el_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00'
mips64el_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xfe\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
ppc_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14'
ppc_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
ppc64_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15'
ppc64_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
ppc64abi32_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15'
ppc64abi32_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
ppc64le_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15\x00'
ppc64le_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\x00'
riscv32_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00'
riscv32_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
riscv64_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00'
riscv64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
s390x_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16'
s390x_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
sh4_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00'
sh4_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
sh4eb_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a'
sh4eb_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
sparc_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02'
sparc_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
sparc32plus_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x12'
sparc32plus_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
sparc64_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2b'
sparc64_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
x86_64_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x3e\x00'
x86_64_mask='\xff\xff\xff\xff\xff\xfe\xfe\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
xtensa_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5e\x00'
xtensa_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
xtensaeb_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5e'
xtensaeb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
# find which fmts needs to be filtered out, which is arch-dependent.
# Drop support for emulating amd64 on i386, http://bugs.debian.org/604712
case "$DPKG_MAINTSCRIPT_ARCH" in
amd64 | i386) omit="i386|x86_64" ;;
arm | armel | armhf | arm64) omit="arm|aarch64" ;;
mips | mipsel) omit="$DPKG_MAINTSCRIPT_ARCH" ;;
ppc64 | powerpc) omit="ppc|ppc64|ppc64abi32" ;;
ppc64el) omit="ppc64le" ;;
s390x) omit="s390x" ;;
sparc | sparc64) omit="sparc|sparc32plus|sparc64" ;;
*) omit="$DPKG_MAINTSCRIPT_ARCH" ;;
esac
remove_binfmt() {
if [ -f /var/lib/binfmts/qemu-$1 ]; then
update-binfmts --package @PACKAGE@ --remove qemu-$1 /usr/bin/qemu-$1@SUFFIX@
fi
}
case "$DPKG_MAINTSCRIPT_NAME:$1" in
postinst:configure)
for fmt in $fmts ; do
eval "case $fmt in $omit) magic= ;; *) magic=\"\$${fmt}_magic\" mask=\"\$${fmt}_mask\" ;; esac"
if [ -n "$magic" ]; then
update-binfmts --package @PACKAGE@ --install qemu-$fmt /usr/bin/qemu-$fmt@SUFFIX@ \
--magic "$magic" --mask "$mask" --offset 0 --credential yes @FIX_BINARY@
else
remove_binfmt $fmt
fi
done
;;
prerm:remove)
for fmt in $fmts ; do
remove_binfmt $fmt
done
;;
esac
fi
# == binfmt registration/deregistration ==
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#! /bin/sh
# This is a trivial script to parse comments in debian/control
# into a set of system-specific configure options.
# Usage: ./debian/extract-config-opts $OS-$ARCH debian/control
sed -n 's/^# \?--/--/p' $2 | \
while IFS=' ' read f p x; do
[ -n "$p" ] || p="*"
eval "case \$1 in ($p) echo \$f;; esac"
done
This diff is collapsed.
#! /bin/sh
exec qemu-system-x86_64 -enable-kvm "$@"
.TH kvm 1 2013-11 "1.7" Debian
.SH NAME
kvm \- kvm-enabling wrapper for qemu-system-x86_64
.SH DESCRIPTION
The
.B kvm
wrapper script is used to provide compatibility with old
qemu\-kvm package which has been merged into qemu as of
version 1.3.
.P
The script executes
.RS
.B qemu\-system\-x86_64 \-enable\-kvm
.RE
passing all other command-line arguments to the qemu binary.
This is not the same as old kvm binary, which was using
less strict construct, similar to
.RS
.B qemu\-system\-x86_64 \-machine accel=kvm:tcg
.RE
New wrapper ensures that kvm mode is enabled, or the VM
will not start, while old code falled back to emulation
(tcg) mode if kvm isn't available.
.SH SEE ALSO
.BR qemu-system (1).
.SH AUTHOR
This manual page was written by Michael Tokarev <mjt@tls.msk.ru>.
From: John Snow <jsnow@redhat.com>
Date: Wed, 30 May 2018 20:43:22 -0400
Subject: ahci: fix PxCI register race
AHCI presently signals completion prior to the PxCI register being
cleared to indicate completion. If a guest driver attempts to issue
a new command in its IRQ handler, it might be surprised to learn there
is still a command pending.
In the case of Windows 10's boot driver, it will actually poll the IRQ
register hoping to find out when the command is done running -- which
will never happen, as there isn't a command running.
Fix this: clear PxCI in ahci_cmd_done and not in the asynchronous BH.
Because it now runs synchronously, we don't need to check if the command
is actually done by spying on the ATA registers. We know it's done.
Signed-off-by: John Snow <jsnow@redhat.com>
---
hw/ide/ahci.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index e22d7be05f..18b9a9c18b 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -532,13 +532,6 @@ static void ahci_check_cmd_bh(void *opaque)
qemu_bh_delete(ad->check_bh);
ad->check_bh = NULL;
- if ((ad->busy_slot != -1) &&
- !(ad->port.ifs[0].status & (BUSY_STAT|DRQ_STAT))) {
- /* no longer busy */
- ad->port_regs.cmd_issue &= ~(1 << ad->busy_slot);
- ad->busy_slot = -1;
- }
-
check_cmd(ad->hba, ad->port_no);
}
@@ -1425,6 +1418,12 @@ static void ahci_cmd_done(IDEDMA *dma)
trace_ahci_cmd_done(ad->hba, ad->port_no);
+ /* no longer busy */
+ if (ad->busy_slot != -1) {
+ ad->port_regs.cmd_issue &= ~(1 << ad->busy_slot);
+ ad->busy_slot = -1;
+ }
+
/* update d2h status */
ahci_write_fis_d2h(ad);
--
2.11.0
use-fixed-data-path.patch
ccid-card-passthru-fix-regression-in-realize.patch
ahci-fix-PxCI-register-race.patch
tcg-i386-Fix-dup_vec-in-non-AVX2-codepath.patch
This diff is collapsed.
This diff is collapsed.
usr/lib/*/qemu/block-*.so
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment