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

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 source diff could not be displayed because it is too large. You can view the blob instead.
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
#! /bin/sh
set -e
base=https://download.qemu.org/
comp=.xz
dir() {
if [ -d $1 ]; then
echo removing $1/...
rm -rf $1
fi
}
clean_dfsg() {
# remove only those blobs which does not have packaged source
# remove all other blobs too
rm -vf pc-bios/bios.bin # roms/seabios/
rm -vf pc-bios/bios-256k.bin # roms/seabios/
rm -vf pc-bios/hppa-firmware.img # roms/seabios-hppa/
rm -vf pc-bios/ppc_rom.bin # comes from openhackware
rm -vf pc-bios/sgabios.bin # roms/sgabios/
rm -vf pc-bios/slof.bin # roms/SLOF/
rm -vf pc-bios/spapr-rtas.bin # pc-bios/spapr-rtas/
rm -vf pc-bios/vgabios*.bin # roms/vgabios/
rm -vf pc-bios/pxe-*.rom # roms/ipxe/
rm -vf pc-bios/efi-*.rom # roms/ipxe/
rm -vf pc-bios/bamboo.dtb # pc-bios/bamboo.dts
rm -vf pc-bios/canyonlands.dtb
rm -vf pc-bios/openbios-* # roms/openbios/
rm -vf pc-bios/palcode-clipper # roms/qemu-palcode/ alpha palcode
rm -vf pc-bios/s390-ccw.img # pc-bios/s390-ccw/
rm -vf pc-bios/s390-netboot.img # pc-bios/s390-ccw/
rm -vf pc-bios/kvmvapic.bin # pc-bios/optionrom/
rm -vf pc-bios/linuxboot.bin
rm -vf pc-bios/linuxboot_dma.bin
rm -vf pc-bios/multiboot.bin
rm -vf pc-bios/skiboot.lid # roms/skiboot/
rm -vf pc-bios/u-boot.e500 # roms/u-boot/
rm -vf pc-bios/u-boot-sam460-20100605.bin # roms/u-boot-sam460ex/
rm -vf pc-bios/QEMU,*.bin # roms/openbios/
rm -vf pc-bios/qemu_vga.ndrv # roms/QemuMacDrivers/
# remove other software (git submodules)
#dir roms/ipxe
#dir roms/openbios
#dir roms/openhackware
#dir roms/qemu-palcode
#dir roms/seabios
#dir roms/seabios-hppa
#dir roms/sgabios
#dir roms/SLOF
rm -vf roms/SLOF/board-js2x/rtas/i2c_bmc.oco
rm -vf roms/SLOF/board-js2x/rtas/ipmi_oem.oco
rm -vf roms/SLOF/clients/takeover/takeover.oco
rm -vf roms/SLOF/lib/libipmi/libipmi.oco
#dir roms/skiboot
#dir roms/vgabios
#dir roms/u-boot
#rm -vf roms/u-boot.tar.*
#dir roms/u-boot-sam460ex
dir roms/QemuMacDrivers
dir dtc
dir capstone
find scripts -name '*.pyc' -print -delete
}
case "$#$1" in
1clean | 1dfsg)
if [ -f vl.c -a -f hw/block/block.c -a -d pc-bios ]; then
clean_dfsg
exit 0
fi
echo "apparently not a qemu source dir" >&2; exit 1
;;
1[012].*) ;;
*)
echo "unknown arguments. Should be either 'dfsg' or a version number" >&2
exit 1
;;
esac
deb="${1%-*}" # strip debian revision number
upstream="${deb%+dfsg}"
case "$upstream" in
*~rc*) upstream=$(echo "$upstream" | sed 's/~rc/-rc/') ;;
esac
case "$upstream" in
2.[0-9] | 2.[0-9][!0-9.]* ) # add .0 to a version number
upstream=$(echo "$upstream" | sed 's/^.\../&.0/') ;;
esac
tempdir=qemu-$upstream-tmp
basetar=qemu-$upstream.tar$comp
debtar=qemu_$deb.orig.tar.xz
if [ ! -f $basetar ]; then
echo getting upstream version $upstream ...
wget -Nc $base/$basetar
fi
if [ ! -f $debtar ]; then
echo extracting source in $tempdir and cleaning up ...
rm -rf $tempdir
mkdir $tempdir
cd $tempdir
tar -x -f ../$basetar --strip-components=1
clean_dfsg
echo repacking to $debtar ...
find . -type f -print | sort \
| XZ_OPT="-v6" \
tar -caf ../$debtar -T- --owner=root --group=root --mode=a+rX \
--xform "s/^\\./qemu-$upstream/"
cd ..
rm -rf $tempdir
fi
#! /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
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
Date: Tue, 15 May 2018 17:30:39 +0200
Subject: [PATCH] ccid-card-passthru: fix regression in realize()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Commit-Id: e58d64a16abc2304c4dcb644411eb9580bf63b1e
Bug-Debian: http://bugs.debian.org/900006
Since cc847bfd16d894fd8c1a2ce25f31772f6cdbbc74, CCID card-passthru
fails to intialize, because it changed a debug line to an error,
probably by mistake. Change it back to a DPRINTF debug.
(solves Boxes creating VM with smartcard passthru failing to start)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20180515153039.27514-1-marcandre.lureau@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
hw/usb/ccid-card-passthru.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
index 7684db0cb3..25fb19b0d7 100644
--- a/hw/usb/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
@@ -345,7 +345,7 @@ static void passthru_realize(CCIDCardState *base, Error **errp)
card->vscard_in_pos = 0;
card->vscard_in_hdr = 0;
if (qemu_chr_fe_backend_connected(&card->cs)) {
- error_setg(errp, "ccid-card-passthru: initing chardev");
+ DPRINTF(card, D_INFO, "ccid-card-passthru: initing chardev");
qemu_chr_fe_set_handlers(&card->cs,
ccid_card_vscard_can_read,
ccid_card_vscard_read,
--
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
From: Peter Maydell <peter.maydell@linaro.org>
Date: Fri, 4 May 2018 16:34:31 +0100
Subject: tcg/i386: Fix dup_vec in non-AVX2 codepath
Commit-Id: 7eb30ef0ba2eb59e7430d4848ae8d4bf4e50f768
Bug-Debian: http://bugs.debian.org/900372
The VPUNPCKLD* instructions are all "non-destructive source",
indicated by "NDS" in the encoding string in the x86 ISA manual.
This means that they take two source operands, one of which is
encoded in the VEX.vvvv field. We were incorrectly treating them
as if they were destructive-source and passing 0 as the 'v'
argument of tcg_out_vex_modrm(). This meant we were always
using %xmm0 as one of the source operands, causing incorrect
results if the register allocator happened to want to use
something else. For instance the input AArch64 insn:
DUP v26.16b, w21
which becomes TCG IR ops:
dup_vec v128,e8,tmp2,x21
st_vec v128,e8,tmp2,env,$0xa40
was assembled to:
0x607c568c: c4 c1 7a 7e 86 e8 00 00 vmovq 0xe8(%r14), %xmm0
0x607c5694: 00
0x607c5695: c5 f9 60 c8 vpunpcklbw %xmm0, %xmm0, %xmm1
0x607c5699: c5 f9 61 c9 vpunpcklwd %xmm1, %xmm0, %xmm1
0x607c569d: c5 f9 70 c9 00 vpshufd $0, %xmm1, %xmm1
0x607c56a2: c4 c1 7a 7f 8e 40 0a 00 vmovdqu %xmm1, 0xa40(%r14)
0x607c56aa: 00
when the vpunpcklwd insn should be "%xmm1, %xmm1, %xmm1".
This resulted in our incorrectly setting the output vector to
q26=0000320000003200:0000320000003200
when given an input of x21 == 0000000002803200
rather than the expected all-zeroes.
Pass the correct source register number to tcg_out_vex_modrm()
for these insns.
Fixes: 770c2fc7bb70804a
Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20180504153431.5169-1-peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tcg/i386/tcg-target.inc.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tcg/i386/tcg-target.inc.c b/tcg/i386/tcg-target.inc.c
index d7e59e79c5..5357909fff 100644
--- a/tcg/i386/tcg-target.inc.c
+++ b/tcg/i386/tcg-target.inc.c
@@ -854,11 +854,11 @@ static void tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece,
switch (vece) {
case MO_8:
/* ??? With zero in a register, use PSHUFB. */
- tcg_out_vex_modrm(s, OPC_PUNPCKLBW, r, 0, a);
+ tcg_out_vex_modrm(s, OPC_PUNPCKLBW, r, a, a);
a = r;
/* FALLTHRU */
case MO_16:
- tcg_out_vex_modrm(s, OPC_PUNPCKLWD, r, 0, a);
+ tcg_out_vex_modrm(s, OPC_PUNPCKLWD, r, a, a);
a = r;
/* FALLTHRU */
case MO_32:
@@ -867,7 +867,7 @@ static void tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece,
tcg_out8(s, 0);
break;
case MO_64:
- tcg_out_vex_modrm(s, OPC_PUNPCKLQDQ, r, 0, a);
+ tcg_out_vex_modrm(s, OPC_PUNPCKLQDQ, r, a, a);
break;
default:
g_assert_not_reached();
--
2.11.0
Subject: use fixed data dir instead of determining it at runtime
From: Michael Tokarev <mjt@tls.msk.ru>
Debian-specific: yes
Since we install to a fixed location, use fixed data directory
instead of deriving it at runtime from executable path.
This way it is possible to move qemu binary to another directory
and it will still work.
--- a/os-posix.c
+++ b/os-posix.c
@@ -72,6 +72,7 @@ void os_setup_signal_handling(void)
sigaction(SIGTERM, &act, NULL);
}
+#if 0 /* we use a fixed configured data path */
/* Find a likely location for support files using the location of the binary.
For installed binaries this will be "$bindir/../share/qemu". When
running from the build tree this will be "$bindir/../pc-bios". */
@@ -107,6 +108,7 @@ char *os_find_datadir(void)
}
#undef SHARE_SUFFIX
#undef BUILD_SUFFIX
+#endif
void os_set_proc_name(const char *s)
{
--- a/vl.c
+++ b/vl.c
@@ -3051,7 +3051,7 @@ int main(int argc, char **argv, char **e
Error *main_loop_err = NULL;
Error *err = NULL;
bool list_data_dirs = false;
- char *dir, **dirs;
+ char **dirs;
typedef struct BlockdevOptions_queue {
BlockdevOptions *bdo;
Location loc;
@@ -4170,11 +4170,6 @@ int main(int argc, char **argv, char **e
}
g_strfreev(dirs);
- /* try to find datadir relative to the executable path */
- dir = os_find_datadir();
- qemu_add_data_dir(dir);
- g_free(dir);
-
/* add the datadir specified when building */
qemu_add_data_dir(CONFIG_QEMU_DATADIR);
usr/lib/*/qemu/block-*.so
#!/bin/sh
# qemu-debootstrap - setup qemu syscall emulation in a debootstrap chroot
# Copyright (C) 2010 Loïc Minier <lool@dooz.org>
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# SOFTWARE IN THE PUBLIC INTEREST, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the author shall not be used
# in advertising or otherwise to promote the sale, use or other dealings in
# this Software without prior written authorization from the author.
set -e
log() {
local format="$1"
shift
printf -- "$format\n" "$@" >&2
}
warn() {
local format="$1"
shift
log "W: $format" "$@"
}
die() {
local format="$1"
shift
log "E: $format" "$@"
exit 1
}
run() {
log "I: Running command: %s" "$*"
"$@"
}
escape() {
echo "$*" | sed "s/'/'\"'\"'/g; s/.*/'&'/"
}
unescape () {
eval "echo" "$*"
}
system_arch="$(dpkg --print-architecture)"
deb_arch="$system_arch"
opts=""