Commit Graph

44384 Commits

Author SHA1 Message Date
Peter Maydell
0b85d73583 qapi: fix input-send-event and promote to stable
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJW1VCoAAoJEEy22O7T6HE4GFUP/3xysMIGF61TzFHsIVuhTvmB
 GL9uqgnUwfGp7NgR1UdWXouMBz+B9bHSedSUIZ8kJ9BC8K2vneyVUT9lOsA8Mett
 U5o7f5+vc26SVhMoDolPmLaoTlBvQv3PZy09FCEBQgGkapgQbsn9ukUcBbsKwgkM
 cHrmrstNLtRc5EqbV86m9DbeTaQnZtmXJv6mqrq/O7S/6JScvEwk7mgoWH1D+UjB
 esUcqWXhmwjm9JB0H2tmPHYUCOCYfXy/pA750kzL2IkhCJBaOq2NTsWI+3I4xTCB
 O/rb42j6JIH3Jb+VS0EUCpwXA7vlr6XwsLphtmsOQRc07S4Mo0FUtWBWafx6/k9r
 n35vQ4tzoNj4kjMeRXFIgKeh1lSbJmTfQaQBuvAeMqtFjzyoRrjnLVN9ri1rZrOC
 nvLAu7mf2/mHY36K+W355HnSNXVqHNFP1fb7nT9samUfdJkwLihTRIHJKXO8XMDi
 p+IRZOng/M7gHV569ctoZjk0Ujl9pE+i4sMniOa3ocANcLF1PeE8WRxb5gQRyEfc
 37WbjnKkY47I2/eiSB/NjG1A5MDz2m+UJp9KX1CKj8t0AczRV+JMKZpr29Ra0mL2
 JGEn1I7w/aFj3cSibw95wXCqhCi9LOF5UPhM89G0r3SIKf6rcSioEHwBWOCACU+/
 thDkrs6/NnllmhJQ+ZBN
 =aPQc
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/kraxel/tags/pull-input-20160301-1' into staging

qapi: fix input-send-event and promote to stable

# gpg: Signature made Tue 01 Mar 2016 08:19:52 GMT using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>"

* remotes/kraxel/tags/pull-input-20160301-1:
  qapi: promote input-send-event to stable
  qapi: rename InputAxis values.
  qapi: rename input buttons
  qapi: switch x-input-send-event from console to device+head
  console: add & use qemu_console_lookup_by_device_name

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-01 11:15:00 +00:00
Peter Maydell
d9c7737e57 vga: minor cirrus/qxl bugfixes.
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJW1UHGAAoJEEy22O7T6HE4HzkQALf5B+MWcJS9zT6csSUD/U41
 phkUENL81R/d/Xi0d/o/FJ53Ig3VATigzgnPvJAh/zakL4gTzJ3AJlEvWV20ir7V
 giJksvTvw1K3yWi8FTDuw2dOmKvvk4/QrLIId1IWdA9GrYfR61/Bn1R59eZzXxtK
 ccdz4sq6btAvZeZRAHKH0MZ1aWQT9nA6eParcj0xUeZyFdJtUFRh/zXH2BXV9iEk
 n5gsPcDuUkvohTroeVVzslFrrNGwQKI80Za27PUkeBkO46HRzG/Hg33Ljyo4dXLF
 klh0/rHmYq2ES3O9z3lyGUyvIRDG2BQafTge6bYqtC++/l4+FZwCDqoCvsczrrAW
 IEKDON8Y0OtsNZdrPo+hPMYn0tO5vVEbEInKQXSoCgU+lIJkboOwJy8oY6ue4bDE
 QOFmh+7KAYY5EExaAM9Def/EFCn9ykC73kGmCVNKv4L73HQ4EsXEopuKqIctahad
 qUMyr1JwL5TsPv1DFMHbga7en0P4ld7K1wUXk+362DpmJxjZtM6dHH9t2gXxS5RX
 plYpN0px32SyxosmmvrcsWrXrGvQIIm3KxarC1BBNmTawipQHHqsjxCEeA4fHcSG
 kwhUtGtzCnOy1uWBDM1hxsw7yaCbzuok5nxI3jFTDesZHvbTbMQPKoEf9B8mgfv0
 F2i7uql8KNtgD9Ltspww
 =/MaC
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/kraxel/tags/pull-vga-20160301-1' into staging

vga: minor cirrus/qxl bugfixes.

# gpg: Signature made Tue 01 Mar 2016 07:16:22 GMT using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>"

* remotes/kraxel/tags/pull-vga-20160301-1:
  qxl: lock current_async update in qxl_soft_reset
  cirrus_vga: fix off-by-one in blit_region_is_unsafe

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-01 10:34:19 +00:00
Peter Maydell
9c74a85304 -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
 
 iQIcBAABAgAGBQJW1KUwAAoJEL2+eyfA3jBXkYkP/3b48a1uEEF59ZhSR4ScSwuQ
 lqQgcT3zWsCQLzTHEpmcwhHdrw/T00uiPIxlQraP9ABSf0fRQFQL3e8zP5z7XEhu
 PkRJ4ieb6DmLWEvb5Nc1l168GI7k81lKmEc05nptDm+tvljCB36a+0y75CBZIklH
 PQUER9WwALj+WmkBI2woA91b850tpXcuMoPlpdpSaYb+897jK+gD9B5xsJDqFW4s
 paYQcuUG8dMOqPrzKDyKKIltTXgiMxz7xk1wZnbhNiq2nX8WiCR9GX+/G6k0Pql6
 oQCAyRJYNUJESmme3VZQ8W1EYW3okhy/sc825eVyrbd3qtQ5ZjVLn8IgyQgO+lUa
 VCa3i4dCLnlsVT7wYebGx6YxeYY25AxhO6FbJ+nnL1++sJztKTnFIXyeoaUD69uW
 hcG5G5LZvCcp9r1/jewT9FOc/aCO3VKRA/zHqulxzrjzAorsgSbmwaFUPVZvenfP
 cNiv9o45DxPdROStzEFpa1mA4mJsb7zzoutarhcUI6p4QV9TsR7aZ23HTb0AmU/c
 vREFJKuO+BlQaONNBv1Vp7jptrlLu1I29AAmhzGjmv5pmvo7ShSZ75CBInQami7X
 tbVJYXow2fYO3r8mHR3EghQbfWENIPgFBtAzhL5uOGHGusyKPbFM032jBSWbolqP
 QgQfenMOJBZTsD5GYyj7
 =CzWh
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging

# gpg: Signature made Mon 29 Feb 2016 20:08:16 GMT using RSA key ID C0DE3057
# gpg: Good signature from "Jeffrey Cody <jcody@redhat.com>"
# gpg:                 aka "Jeffrey Cody <jeff@codyprime.org>"
# gpg:                 aka "Jeffrey Cody <codyprime@gmail.com>"

* remotes/cody/tags/block-pull-request:
  iotests/124: Add cluster_size mismatch test
  block/backup: avoid copying less than full target clusters
  block/backup: make backup cluster size configurable
  mirror: Add mirror_wait_for_io
  mirror: Rewrite mirror_iteration
  vhdx: Simplify vhdx_set_shift_bits()
  vhdx: DIV_ROUND_UP() in vhdx_calc_bat_entries()
  iscsi: add support for getting CHAP password via QCryptoSecret API
  curl: add support for HTTP authentication parameters
  rbd: add support for getting password from QCryptoSecret object
  sheepdog: allow to delete snapshot
  block/nfs: add support for setting debug level

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-01 09:54:53 +00:00
Gerd Hoffmann
6575ccddf4 qapi: promote input-send-event to stable
With all fixups being in place now, we can promote input-send-event
to stable abi by removing the x- prefix.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2016-03-01 08:20:27 +01:00
Gerd Hoffmann
01df51432e qapi: rename InputAxis values.
Lowercase them.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2016-03-01 08:19:45 +01:00
Gerd Hoffmann
f22d0af076 qapi: rename input buttons
All lowercase, use-dash instead of CamelCase.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2016-03-01 08:19:07 +01:00
Gerd Hoffmann
b98d26e333 qapi: switch x-input-send-event from console to device+head
Use display device qdev id and head number instead of console index to
specify the QemuConsole.  This makes things consistent with input
devices (for input routing) and vnc server configuration, which both use
display and head too.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
2016-03-01 07:51:34 +01:00
Gerd Hoffmann
f2c1d54c18 console: add & use qemu_console_lookup_by_device_name
We have two places needing this, and a third one will come shortly.
So factor things out into a helper function to reduce code duplication.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
2016-03-01 07:51:34 +01:00
Gerd Hoffmann
05fa1c742f qxl: lock current_async update in qxl_soft_reset
This should fix a defect report from Coverity.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-01 07:51:32 +01:00
Paolo Bonzini
d2ba7ecb34 cirrus_vga: fix off-by-one in blit_region_is_unsafe
The "max" value is being compared with >=, but addr + width points to
the first byte that will _not_ be copied.  Laszlo suggested using a
"greater than" comparison, instead of subtracting one like it is
already done above for the height, so that max remains always positive.

The mistake is "safe"---it will reject some blits, but will never cause
out-of-bounds writes.

Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-id: 1455121059-18280-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-03-01 07:51:32 +01:00
John Snow
cc199b16cf iotests/124: Add cluster_size mismatch test
If a backing file isn't specified in the target image and the
cluster_size is larger than the bitmap granularity, we run the risk of
creating bitmaps with allocated clusters but empty/no data which will
prevent the proper reading of the backup in the future.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 1456433911-24718-4-git-send-email-jsnow@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:55:14 -05:00
John Snow
4c9bca7e39 block/backup: avoid copying less than full target clusters
During incremental backups, if the target has a cluster size that is
larger than the backup cluster size and we are backing up to a target
that cannot (for whichever reason) pull clusters up from a backing image,
we may inadvertantly create unusable incremental backup images.

For example:

If the bitmap tracks changes at a 64KB granularity and we transmit 64KB
of data at a time but the target uses a 128KB cluster size, it is
possible that only half of a target cluster will be recognized as dirty
by the backup block job. When the cluster is allocated on the target
image but only half populated with data, we lose the ability to
distinguish between zero padding and uninitialized data.

This does not happen if the target image has a backing file that points
to the last known good backup.

Even if we have a backing file, though, it's likely going to be faster
to just buffer the redundant data ourselves from the live image than
fetching it from the backing file, so let's just always round up to the
target granularity.

The same logic applies to backup modes top, none, and full. Copying
fractional clusters without the guarantee of COW is dangerous, but even
if we can rely on COW, it's likely better to just re-copy the data.

Reported-by: Fam Zheng <famz@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 1456433911-24718-3-git-send-email-jsnow@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:55:14 -05:00
John Snow
16096a4d47 block/backup: make backup cluster size configurable
64K might not always be appropriate, make this a runtime value.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 1456433911-24718-2-git-send-email-jsnow@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:55:14 -05:00
Fam Zheng
21cd917ff5 mirror: Add mirror_wait_for_io
The three lines are duplicated a number of times now, refactor a
function.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1454637630-10585-3-git-send-email-famz@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:54:31 -05:00
Fam Zheng
e5b43573e2 mirror: Rewrite mirror_iteration
The "pnum < nb_sectors" condition in deciding whether to actually copy
data is unnecessarily strict, and the qiov initialization is
unnecessarily for bdrv_aio_write_zeroes and bdrv_aio_discard.

Rewrite mirror_iteration to fix both flaws.

The output of iotests 109 is updated because we now report the offset
and len slightly differently in mirroring progress.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1454637630-10585-2-git-send-email-famz@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:54:31 -05:00
Max Reitz
04a3615860 vhdx: Simplify vhdx_set_shift_bits()
For values which are powers of two (and we do assume all of these to
be), sizeof(x) * 8 - 1 - clz(x) == ctz(x). Therefore, use ctz().

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450451066-13335-3-git-send-email-mreitz@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:54:31 -05:00
Max Reitz
939901dcd2 vhdx: DIV_ROUND_UP() in vhdx_calc_bat_entries()
We have DIV_ROUND_UP(), so we can use it to produce more easily readable
code. It may be slower than the bit shifting currently performed
(because it actually performs a division), but since
vhdx_calc_bat_entries() is never used in a hot path, this is completely
fine.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450451066-13335-2-git-send-email-mreitz@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:54:31 -05:00
Daniel P. Berrange
b189346eb1 iscsi: add support for getting CHAP password via QCryptoSecret API
The iSCSI driver currently accepts the CHAP password in plain text
as a block driver property. This change adds a new "password-secret"
property that accepts the ID of a QCryptoSecret instance.

  $QEMU \
     -object secret,id=sec0,filename=/home/berrange/example.pw \
     -drive driver=iscsi,url=iscsi://example.com/target-foo/lun1,\
            user=dan,password-secret=sec0

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1453385961-10718-4-git-send-email-berrange@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:54:31 -05:00
Daniel P. Berrange
1bff960642 curl: add support for HTTP authentication parameters
If connecting to a web server which has authentication
turned on, QEMU gets a 401 as curl has not been configured
with any authentication credentials.

This adds 4 new parameters to the curl block driver
options 'username', 'password-secret', 'proxy-username'
and 'proxy-password-secret'. Passwords are provided using
the recently added 'secret' object type

 $QEMU \
     -object secret,id=sec0,filename=/home/berrange/example.pw \
     -object secret,id=sec1,filename=/home/berrange/proxy.pw \
     -drive driver=http,url=http://example.com/some.img,\
            username=dan,password-secret=sec0,\
            proxy-username=dan,proxy-password-secret=sec1

Of course it is possible to use the same secret for both the
proxy & server passwords if desired, or omit the proxy auth
details, or the server auth details as required.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1453385961-10718-3-git-send-email-berrange@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:54:31 -05:00
Daniel P. Berrange
60390a2192 rbd: add support for getting password from QCryptoSecret object
Currently RBD passwords must be provided on the command line
via

  $QEMU -drive file=rbd:pool/image:id=myname:\
               key=QVFDVm41aE82SHpGQWhBQXEwTkN2OGp0SmNJY0UrSE9CbE1RMUE=:\
               auth_supported=cephx

This is insecure because the key is visible in the OS process
listing.

This adds support for an 'password-secret' parameter in the RBD
parameters that can be used with the QCryptoSecret object to
provide the password via a file:

  echo "QVFDVm41aE82SHpGQWhBQXEwTkN2OGp0SmNJY0UrSE9CbE1RMUE=" > poolkey.b64
  $QEMU -object secret,id=secret0,file=poolkey.b64,format=base64 \
        -drive driver=rbd,filename=rbd:pool/image:id=myname:\
               auth_supported=cephx,password-secret=secret0

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1453385961-10718-2-git-send-email-berrange@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:54:30 -05:00
Vasiliy Tolstov
eab8eb8db3 sheepdog: allow to delete snapshot
This patch implements a blockdriver function bdrv_snapshot_delete() in
the sheepdog driver. With the new function, snapshots of sheepdog can
be deleted from libvirt.

Cc: Jeff Cody <jcody@redhat.com>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
Message-id: 1450873346-22334-1-git-send-email-mitake.hitoshi@lab.ntt.co.jp
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:54:30 -05:00
Peter Lieven
7725b8bf12 block/nfs: add support for setting debug level
recent libnfs versions support logging debug messages. Add
support for it in qemu through an URL parameter.

Example:
 qemu -cdrom nfs://127.0.0.1/iso/my.iso?debug=2

Signed-off-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 1447052973-14513-1-git-send-email-pl@kamp.de
Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29 14:54:30 -05:00
Peter Maydell
071608b519 usb: redirect bugfix, MAINTAINERS update.
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJW1CcCAAoJEEy22O7T6HE47tQQAIbvlJvX2x208k9BeKejRItz
 QFwyqTR/HM8ISCUvUijDwlD2ZQWKQkg+gOcUElHHZF5IfmH6fVI7Gl3/PSiHAJTv
 jISVwocVk7byTzdxpRWIeDshQ/6WwaSH9vNaI90jTjfkq0zleKwqWJIUxyG198X1
 D4OZhBYVu5V3pZwpkY0faXAIlbGnNd+D0klMdUfJFv8RZr00Axb9Q8oRm5ftSFSF
 Z2/muIGfltkqg5KZX+tOKVUEV+WK3XfxVCVfK8Oq5yPaK6HA2P8eiqynTQ9j7I2r
 ATbr4YFLdbj0lgJEu7ypI1CkUACTTJ2k1rpe0lHmLXezyVqlutSV0wU16/kekrvn
 uuPXoyB1n5KqSh2zXmeQHNV3kgFzqhuqmbJI6HeUCcrlHkXBJe/4tdeuomB2tqqh
 7Q1igD10o5E/kTFiTWheowLrdOQsDzPCDlQveqJHfzZpJktDG5r1E3DqTKkFnTlv
 gMwcLPWIb1TvtBVbtnYZGavGgGmjuLLhSebl7cM2xKbOkdVo/7ZkyeCgPBiVMp+U
 rT+GZI8hIuZIlcjejw7iJ05kuj1y9BMbFpNEKrNYPCvmBmonkxvoKnK+cQamvN+R
 yAEdtSZV3mFhNMjC9k1EnBza4aH/5tZ4zNQ1dFLPJ8r/Bl/NOE4Tsesm0Tley3TK
 cSds5BddGaieJXUJisV3
 =c06t
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/kraxel/tags/pull-usb-20160229-1' into staging

usb: redirect bugfix, MAINTAINERS update.

# gpg: Signature made Mon 29 Feb 2016 11:09:54 GMT using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>"

* remotes/kraxel/tags/pull-usb-20160229-1:
  usb-redirect: Avoid double free of data
  MAINTAINERS: Add some missing entries for USB related files

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-29 12:24:26 +00:00
Peter Maydell
1da90c34c9 ui: spice dmabuf fix, MAINTAINERS updates.
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJW1CBLAAoJEEy22O7T6HE40KEQAKych2mHPzYo5nrxI5sHEOWW
 VmYBzeisPMF5s90GEEO6hBAgLgMT4dkfl1S51FxTF2xixtjuFqZacZCo2leQ6dki
 BBhHynOWsFFCxAgPN8393qlZakTaOSJ3xDfn8Z7IS9wBSSWcPJcHoIuUHzGKbIHh
 TGwC+Ots0nSRWmyjwCA/s848Auj5VwMVZ0itzPBeXAhiSqfdt60GiJ9VpqlB14aA
 +gO0Jx0xV8AP5BPfsTSzSFgkSpK6IEVX65tJGuM+fL4cRKtmE68X3CgJZL9tSibd
 XFf3OZVzlwEzamsBRjIANpf04sn6bAbbX/6GQ86Sosv4N93zHIMBu/SZ7eAyen2K
 2qj4jmeWP6xhui4MXz6hsBgzVajl8ugiPPvl9ThL0yEiP8MDXWA8RCBjfuH0WNUo
 kEgXBu/8d8oKRjrnHM5ci8kBLNKiyPoFaaJwH3l010l0HLf9U4LBwTjUN2aHJfoN
 oQq2fL0kHXlNvVfTyIKowjvlcXOhNGYKILTz33UweuvDU1RaCFZf8vzUpTOLEBoI
 ZNKTaXVLhHzb4DiAWtVadW2x/Ic42fg5yufLkN+c03dm1VkMhe2AZ34Vj+I2qH3t
 L6HZRcZGgaIu21BhcifB6BE59JqIWDKNzyUysaC0GGxHhgZ5x0MbUZfvNve8Qh7m
 wNp9b8zQzaLL4uHShbid
 =167W
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/kraxel/tags/pull-ui-20160229-1' into staging

ui: spice dmabuf fix, MAINTAINERS updates.

# gpg: Signature made Mon 29 Feb 2016 10:41:15 GMT using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>"

* remotes/kraxel/tags/pull-ui-20160229-1:
  MAINTAINERS: Add an entry for the include/ui/ folder
  MAINTAINERS: Add spice-display.h to the SPICE section
  spice/gl: Enable dmabuf only for spice >= 0.13.1

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-29 11:49:50 +00:00
Peter Maydell
3ff430aa91 fw_cfg: unbreak migration compatibility for 2.4 and earlier machines
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJW0B7OAAoJEEy22O7T6HE42gUQANOj1qljpRhHvdcigHYgN22v
 JqLeRZ0BP6ZLvX8vZngkbXf2jwpcknVLydazBoj5P16r4CzkpX9zH60jeGbmu7Or
 Q0u9ln4fOwKGH5q5r2FWk6tOn0MyFuG+pcrRqPTloY04X5KvXpTKj+w7ZfhgVrrd
 vqWLioblwp2nDvmIZajlpB3CwDNdiY7NKPDn0XPR3VDrPwtOVT1AumH/SZsIbOL+
 utF+IjPWrqYxq65wRw0XhMbniJZgdbm0wZH7Gfr3asIMYIOWboqLdkXey9AisTFA
 FVFLXjsDrtXIQDX0wVeIrz4g0LAnBQQoRdtaZDrIrF2qScfq0ypkwo2aTNlOunAa
 9T0wqnJI9Dn4zrtAU/L00OtWhhA2alw51J94uuROWGZRV3y9XRkmOgW+xhB/5QI6
 5bgUTsyn0eLypIJa6fPQiuDW58PfXTFXm3/BH6eSuFt+BLmw0FBrDveKCL8r5fU5
 n7rpazsTxuEfHp6utrUoe/dHBPMJWnQoLHEmBtdYTAJIWXBI8twXXgdlG0SlCwCD
 DKlQCoMk/UUnBqcoSg/P5CtL9d7G9NffCDgoI1MEfWfhZ94ZgnJ/6f7V9yf4JERr
 no+8WUcRL+1lvG4nRf57pthIBNOXZDagtaLiVtzODvhX+FNma/GKMTRT4j0fdeOo
 lIOd3fhmZYLt88unw2Hv
 =zch3
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/kraxel/tags/pull-fw-cfg-20160226-1' into staging

fw_cfg: unbreak migration compatibility for 2.4 and earlier machines

# gpg: Signature made Fri 26 Feb 2016 09:45:50 GMT using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>"

* remotes/kraxel/tags/pull-fw-cfg-20160226-1:
  fw_cfg: unbreak migration compatibility for 2.4 and earlier machines

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-29 11:24:36 +00:00
Peter Maydell
35227e6a09 ppc patch queue for 2016-02-29
Some more accumulated patches for target-ppc, pseries machine type and
 related devices to fit in before the qemu-2.6 soft freeze.
     * Mostly bugfixes and small cleanups for spapr and Mac platforms
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJW0+uiAAoJEGw4ysog2bOS9AsP/3pA9pmzjU3lvDQ88r/bzlZf
 Si+kDC8uovIuccvvy9SLuaRE9ObzdSOwWNTgxREC/I2i3q9y3qpL5Lu6XAyTBaZb
 lDq0zmZxt48QWpR2IDGD0/VosHerB+ZoX+dFBJ9Gx2WHGgAKRhCTgLtfia3zKc8B
 YRNPrJBoQJ73YGA33Lk9zyq55nEQnR9r8LqDFnTe1njv+1qSg5+FhypoHVmr97S0
 skMai8wweN7zEgUP9M3TjQFiEHJvDsafiMiCisxr97MP1JlgrDjMhHeCD+yrGukC
 t8s9Ag7hc2CSToRhmyMtqawNEh6+c0JN/SyALMq7Cm8K5K7DUFy2pVCMxO2ZkBxh
 kiZLVjdygd8DzZcKUdL4Dsx2VInXA1OPkublHDfEdDUgT+GRL442RklAJz/g9AZY
 t0lCLIFGi4ETTlqweSIYUl+7eX74ug9F+skycaEeb+GXECQ66dPt+WbKugKiVqwN
 Dsyusrd5QrYFnRXaQrNDmjMCprm0cK8KnOwCPrCJo6ImMcX7deLNJa7O85WwCuS3
 GggdhIA121P2dQX5j94OHMI9dGCVfjqSYf5vqemk8AdzIjPjrEwF1jJXftSPWDql
 xBfQnLqDX3ubhR0jaumOYefAY7Rtj17wKG5sgThRzIfjybFNjWF5+nLXjZB2caAm
 KLgHIDOFL8LL211ICL8k
 =LrPY
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.6-20160229' into staging

ppc patch queue for 2016-02-29

Some more accumulated patches for target-ppc, pseries machine type and
related devices to fit in before the qemu-2.6 soft freeze.
    * Mostly bugfixes and small cleanups for spapr and Mac platforms

# gpg: Signature made Mon 29 Feb 2016 06:56:34 GMT using RSA key ID 20D9B392
# gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>"
# gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>"
# gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-2.6-20160229:
  xics: report errors with the QEMU Error API
  migration: allow machine to enforce configuration section migration
  spapr: skip configuration section during migration of older machines
  dbdma: warn when using unassigned channel
  spapr: disable vmdesc submission for old machines
  spapr_pci: fix irq leak in RTAS ibm,change-msi
  spapr_pci: kill useless variable in rtas_ibm_change_msi()
  spapr_rng: disable hotpluggability

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-29 10:51:11 +00:00
Fam Zheng
e8ce12d9ea usb-redirect: Avoid double free of data
If dropping packets, data is freed, the caller's loop should not continue.

Reported by ccc-analyzer.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1456301288-1592-1-git-send-email-famz@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-02-29 11:45:26 +01:00
Thomas Huth
beded0ff7f MAINTAINERS: Add some missing entries for USB related files
USB-related docs and include files should go into the USB
section of the MAINTAINERS file.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-id: 1456392967-20274-2-git-send-email-thuth@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-02-29 11:45:26 +01:00
Thomas Huth
e220656ce1 MAINTAINERS: Add an entry for the include/ui/ folder
The ui/ folder is listed in the "Graphics" section, so I think
the "include/ui/" folder should be listed there, too.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-id: 1456392967-20274-4-git-send-email-thuth@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-02-29 10:54:32 +01:00
Thomas Huth
438528a3e7 MAINTAINERS: Add spice-display.h to the SPICE section
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-id: 1456392967-20274-3-git-send-email-thuth@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-02-29 10:54:32 +01:00
Michal Privoznik
9f5c6d06ad spice/gl: Enable dmabuf only for spice >= 0.13.1
After 474114b7 the dmabuf feature is enabled whenever spice
greater than or equal to spice 0.13.0 is found. This is because
two new functions are required: spice_qxl_gl_scanout and
spice_qxl_gl_draw_async. These were, however, introduce in 0.13.1
release. Well, technically they haven't been released yet, but
for sure they are not going to be part of 0.13.0 release (for the
ABI stability sake).

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Message-id: 1a724e97cb587624d6f6009c15395496bccfa32b.1456317738.git.mprivozn@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-02-29 10:54:32 +01:00
Greg Kurz
a005b3ef50 xics: report errors with the QEMU Error API
Using the return value to report errors is error prone:
- xics_alloc() returns -1 on error but spapr_vio_busdev_realize() errors
  on 0
- xics_alloc_block() returns the unclear value of ics->offset - 1 on error
  but both rtas_ibm_change_msi() and spapr_phb_realize() error on 0

This patch adds an errp argument to xics_alloc() and xics_alloc_block() to
report errors. The return value of these functions is a valid IRQ number
if errp is NULL. It is undefined otherwise.

The corresponding error traces get promotted to error messages. Note that
the "can't allocate IRQ" error message in spapr_vio_busdev_realize() also
moves to xics_alloc(). Similar error message consolidation isn't really
applicable to xics_alloc_block() because callers have extra context (device
config address, MSI or MSIX).

This fixes the issues mentioned above.

Based on previous work from Brian W. Hart.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
Greg Kurz
902c053d83 migration: allow machine to enforce configuration section migration
Migration of pseries-2.3 doesn't have configuration section. Unfortunately,
QEMU 2.4/2.4.1/2.5 are buggy and always stream and expect the configuration
section, and break migration both ways.

This patch introduces a property which allows to enforce a configuration
section for machines who don't have one.

It can be set at startup:

-machine enforce-config-section=on

or later from the QEMU monitor:

qom-set /machine enforce-config-section on

It is up to the tooling to set or unset this property according to the
version of the QEMU at the other end of the pipe.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
Greg Kurz
09b5e30da5 spapr: skip configuration section during migration of older machines
Since QEMU 2.4, we have a configuration section in the migration stream.
This must be skipped for older machines, like it is already done for x86.

This patch fixes the migration of pseries-2.3 from/to QEMU 2.3, but it
breaks migration of the same machine from/to QEMU 2.4/2.4.1/2.5. We do
that anyway because QEMU 2.3 is likely to be more widely deployed than
newer QEMU versions.

Fixes: 61964c23e5
Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
Hervé Poussineau
2d7d06d847 dbdma: warn when using unassigned channel
With this, it's easier to know if a guest uses an invalid and/or unimplemented
DMA channel.

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
Greg Kurz
cba0e7796b spapr: disable vmdesc submission for old machines
Since QEMU 2.3, we have a vmdesc section in the migration stream.
This section is not mandatory but when migrating a pseries-2.2
machine from QEMU 2.2, you get a warning at the destination:

qemu-system-ppc64: Expected vmdescription section, but got 0

The warning goes away if we decide to skip vmdesc as well for
older pseries, like it is already done for pc's.

This can only be observed with -cpu POWER7 because POWER8
cannot migrate from QEMU 2.2 to 2.3 (insns_flags2 mismatch).

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
Greg Kurz
ce266b75fe spapr_pci: fix irq leak in RTAS ibm,change-msi
This RTAS call is used to request new interrupts or to free all interrupts.

If the driver has already allocated interrupts and asks again for a non-null
number of irqs, then the rtas_ibm_change_msi() function will silently leak
the previous interrupts.

It happens because xics_free() is only called when the driver releases all
interrupts (!req_num case). Note that the previously allocated spapr_pci_msi
is not leaked because the GHashTable is created with destroy functions and
g_hash_table_insert() hence frees the old value.

This patch makes sure any previously allocated MSIs are released when a
new allocation succeeds.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
Greg Kurz
d4a63ac8b1 spapr_pci: kill useless variable in rtas_ibm_change_msi()
The num local variable is initialized to zero and has no writer.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
Greg Kurz
3d0db3e74d spapr_rng: disable hotpluggability
It is currently possible to hotplug a spapr_rng device but QEMU crashes
when we try to hot unplug:

ERROR:hw/core/qdev.c:295:qdev_unplug: assertion failed: (hotplug_ctrl)
Aborted

This happens because spapr_rng isn't plugged to any bus and sPAPR does
not provide hotplug support for it: qdev_get_hotplug_handler() hence
return NULL and we hit the assertion.

And anyway, it doesn't make much sense to unplug this device since hcalls
cannot be unregistered. Even the idea of hotplugging a RNG device instead
of declaring it on the QEMU command line looks weird.

This patch simply disables hotpluggability for the spapr-rng class.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
Peter Maydell
6e378dd214 target-arm queue:
* Clean up handling of bad mode switches writing to CPSR, and implement
    the ARMv8 requirement that they set PSTATE.IL
  * Implement MDCR_EL3.TPM and MDCR_EL2.TPM traps on perf monitor
    register accesses
  * Don't implement stellaris-pl061-only registers on generic-pl061
  * Fix SD card handling for raspi
  * Add missing include files to MAINTAINERS
  * Mark CNTHP_TVAL_EL2 as ARM_CP_NO_RAW
  * Make reserved ranges in ID_AA64* spaces RAZ, not UNDEF
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCAAGBQJW0GzrAAoJEDwlJe0UNgzebMsP/RWlWngvO4lXax+EvXZkIqkL
 Q+V74VaiVNrlWGjbN6PSl13PoihdN4dn3SxFD/1OKEmko4Yr4iQ7i4eVpMq5J2dG
 DSEeSUXcnxyr2Ypz46RbEYiTs2yCNS+KlxgVvTeHlN/KQx2zFQ9kBgXMWm6AdTpw
 kdJqFGxNt9suKsMEJ1jk/FO3myaYqzRLlfhFFSAcuNYZN0aidnoRBzNUWQzWei8c
 GT7sB1VYHNZEty0m1taaB4OjIjVF9RMg5ee6r7QpDYvycMCTrXY6beyEmFPD5XUL
 lLjeyBYmM1EBqGxt+7DMZe5EBTDJ2CICCMy72CspbYxr6kqjLpfNvnRbbrBJ+U7A
 aWoKaEfUhkD7dlYaW1y/hTsRbeswbMChNiwbqYulfivCACWS0XHa35OLbMzxuqOD
 QhGDIpx2Hzwj+5t52MM9kz76oFy6BLKtAs9wdVcjsNNwuxIYCiLaBP+XoUQSJVjZ
 5Cb5YMaxqV9vEiFbbSpRHuEN/IzU27W/HylosXmNOl2N8U/hN0LOgF5smYdoRQZP
 zRYCPGCjsoeOE12mn6610EQ3JykWMr5rDW4KVG+5chsYDojy8DXuQL9N6j+RTcM5
 yIIEkny0/QVyFA4EnMg9g1m7boXOPP0BLO1n0dImk23T85G9zzloLaUPW1Z9DBpM
 n+/kNrH1x9+xOdvcvJe3
 =QMDl
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20160226' into staging

target-arm queue:
 * Clean up handling of bad mode switches writing to CPSR, and implement
   the ARMv8 requirement that they set PSTATE.IL
 * Implement MDCR_EL3.TPM and MDCR_EL2.TPM traps on perf monitor
   register accesses
 * Don't implement stellaris-pl061-only registers on generic-pl061
 * Fix SD card handling for raspi
 * Add missing include files to MAINTAINERS
 * Mark CNTHP_TVAL_EL2 as ARM_CP_NO_RAW
 * Make reserved ranges in ID_AA64* spaces RAZ, not UNDEF

# gpg: Signature made Fri 26 Feb 2016 15:19:07 GMT using RSA key ID 14360CDE
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"
# gpg:                 aka "Peter Maydell <pmaydell@gmail.com>"
# gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>"

* remotes/pmaydell/tags/pull-target-arm-20160226:
  target-arm: Make reserved ranges in ID_AA64* spaces RAZ, not UNDEF
  target-arm: Mark CNTHP_TVAL_EL2 as ARM_CP_NO_RAW
  sdhci: add quirk property for card insert interrupt status on Raspberry Pi
  sdhci: Revert "add optional quirk property to disable card insertion/removal interrupts"
  MAINTAINERS: Add some missing ARM related header files
  raspi: fix SD card with recent sdhci changes
  ARM: PL061: Checking register r/w accesses to reserved area
  target-arm: Implement MDCR_EL3.TPM and MDCR_EL2.TPM traps
  target-arm: Fix handling of SDCR for 32-bit code
  target-arm: Make Monitor->NS PL1 mode changes illegal if HCR.TGE is 1
  target-arm: Make mode switches from Hyp via CPS and MRS illegal
  target-arm: In v8, make illegal AArch32 mode changes set PSTATE.IL
  target-arm: Forbid mode switch to Mon from Secure EL1
  target-arm: Add Hyp mode checks to bad_mode_switch()
  target-arm: Add comment about not implementing NSACR.RFR
  target-arm: In cpsr_write() ignore mode switches from User mode
  linux-user: Use restrictive mask when calling cpsr_write()
  target-arm: Raw CPSR writes should skip checks and bank switching
  target-arm: Add write_type argument to cpsr_write()
  target-arm: Give CPSR setting on 32-bit exception return its own helper

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-26 16:02:00 +00:00
Peter Maydell
aa53d5bfc3 migration pull
- fix a qcow2 assert
  - fix for older distros (CentOS 5)
  - documentation for vmstate flags
  - minor code rearrangement
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJW0GwDAAoJEB6aO1+FQIO2XFAP/0Kkoesdxs8KZF8nMRSw5geF
 d0HXY71rD6gz9alSY8oRrMaKPD3xNGBKvSg+/bOVtLbzSgKXpEXK9hLRL86wvoh2
 eia1dVO0tiXsRHNEfiJiHAGRRQSgAAVZy6RXzgvshU1TnYe3Ylcaod97Kt+qI9e6
 gN+02RqjsmuXkqQLHhe19snFugUe1PX5mbS27Sci2MgoSRyeZ9lioklMw6gYsGya
 qvSi/5870ghf5bHh5wmfJXnQiRvltzgDxgCx3cP5DT8va5qh+E7B//UVg+KPvciT
 d8AQtcgwIleWy3/fvUIv12gS3Mm3Ea+XhxTvx6VFtnbH2pxclqlJeTl3YCxDZ7bT
 qvCz+WC3z/LTtq4RVnKLzN4Jzf52HE8+DvpikL+9e2dZSenV0rwEm8v6sJyYv4jy
 9UcnDli6pCEblLjHHtsDbVpo87VX6P6PNOtz8elP2NmfPx6wcbSZqzg5pjILwIK0
 /KbgZfOyIK1I4AHbGahaJPRfjN1FTS+hU6t3h+BEH/RBSryxEKzS+tkH9HW8s1Vw
 7j5lykrbViCAH7YxMez2DxbeL6QBDjXhYk3fJl0+i/5QhbmgtG3QGNF9jzFDgojT
 53KuFLD+pjtxla7+pMIsxd2ayYTLz6OEOtaNHrBEhg2VJbN6oyRSzXXQDSYAg8Z2
 6birWMtMm0t24dXnFqHG
 =9bL1
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/amit-migration/tags/migration-for-2.6-5' into staging

migration pull
 - fix a qcow2 assert
 - fix for older distros (CentOS 5)
 - documentation for vmstate flags
 - minor code rearrangement

# gpg: Signature made Fri 26 Feb 2016 15:15:15 GMT using RSA key ID 854083B6
# gpg: Good signature from "Amit Shah <amit@amitshah.net>"
# gpg:                 aka "Amit Shah <amit@kernel.org>"
# gpg:                 aka "Amit Shah <amitshah@gmx.net>"

* remotes/amit-migration/tags/migration-for-2.6-5:
  migration (postcopy): move bdrv_invalidate_cache_all of of coroutine context
  migration (ordinary): move bdrv_invalidate_cache_all of of coroutine context
  migration/vmstate: document VMStateFlags
  MAINTAINERS: Add docs/migration.txt to the "Migration" section
  migration/postcopy-ram: Guard use of sys/eventfd.h with CONFIG_EVENTFD
  migration: reorder code to make it symmetric

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-26 15:21:26 +00:00
Denis V. Lunev
ea6a55bcc0 migration (postcopy): move bdrv_invalidate_cache_all of of coroutine context
There is a possibility to hit an assert in qcow2_get_specific_info that
s->qcow_version is undefined. This happens when VM in starting from
suspended state, i.e. it processes incoming migration, and in the same
time 'info block' is called.

The problem is that qcow2_invalidate_cache() closes the image and
memset()s BDRVQcowState in the middle.

The patch moves processing of bdrv_invalidate_cache_all out of
coroutine context for postcopy migration to avoid that. This function
is called with the following stack:
  process_incoming_migration_co
  qemu_loadvm_state
  qemu_loadvm_state_main
  loadvm_process_command
  loadvm_postcopy_handle_run

Signed-off-by: Denis V. Lunev <den@openvz.org>
Tested-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Juan Quintela <quintela@redhat.com>
CC: Amit Shah <amit.shah@redhat.com>
Message-Id: <1456304019-10507-3-git-send-email-den@openvz.org>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
2016-02-26 20:40:08 +05:30
Denis V. Lunev
0aa6aefc9c migration (ordinary): move bdrv_invalidate_cache_all of of coroutine context
There is a possibility to hit an assert in qcow2_get_specific_info that
s->qcow_version is undefined. This happens when VM in starting from
suspended state, i.e. it processes incoming migration, and in the same
time 'info block' is called.

The problem is that qcow2_invalidate_cache() closes the image and
memset()s BDRVQcowState in the middle.

The patch moves processing of bdrv_invalidate_cache_all out of
coroutine context for standard migration to avoid that.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Fam Zheng <famz@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Juan Quintela <quintela@redhat.com>
CC: Amit Shah <amit.shah@redhat.com>
Message-Id: <1456304019-10507-2-git-send-email-den@openvz.org>

[Amit: Fix a use-after-free bug]

Signed-off-by: Amit Shah <amit.shah@redhat.com>
2016-02-26 20:39:50 +05:30
Peter Maydell
e20d84c140 target-arm: Make reserved ranges in ID_AA64* spaces RAZ, not UNDEF
The v8 ARM ARM defines that unused spaces in the ID_AA64* system
register ranges are Reserved and must RAZ, rather than being UNDEF.
Implement this.

In particular, ARM v8.2 adds a new feature register ID_AA64MMFR2,
and newer versions of the Linux kernel will attempt to read this,
which causes them not to boot up on versions of QEMU missing this fix.

Since the encoding .opc0 = 3, .opc1 = 0, .crn = 0, .crm = 2, .opc2 = 6
is actually defined in ARMv8 (as ID_MMFR4), we give it an entry in
the ARMCPU struct so CPUs can override it, though since none do
this too will just RAZ.

Cc: qemu-stable@nongnu.org
Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1455890863-11203-1-git-send-email-peter.maydell@linaro.org
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
2016-02-26 15:09:42 +00:00
Edgar E. Iglesias
d44ec15630 target-arm: Mark CNTHP_TVAL_EL2 as ARM_CP_NO_RAW
Mark CNTHP_TVAL_EL2 as ARM_CP_NO_RAW due to the register not
having any underlying state. This fixes an issue with booting
KVM enabled kernels when EL2 is on.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Message-id: 1456490739-19343-1-git-send-email-edgar.iglesias@gmail.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-26 15:09:42 +00:00
Andrew Baumann
0a7ac9f9e7 sdhci: add quirk property for card insert interrupt status on Raspberry Pi
This quirk is a workaround for the following hardware behaviour, on
which UEFI (specifically, the bootloader for Windows on Pi2) depends:

1. at boot with an SD card present, the interrupt status/enable
   registers are initially zero
2. upon enabling it in the interrupt enable register, the card insert
   bit in the interrupt status register is immediately set
3. after a subsequent controller reset, the card insert interrupt does
   not fire, even if enabled in the interrupt enable register

Signed-off-by: Andrew Baumann <Andrew.Baumann@microsoft.com>
Message-id: 1456436130-7048-3-git-send-email-Andrew.Baumann@microsoft.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-26 15:09:42 +00:00
Andrew Baumann
5c1bc9a234 sdhci: Revert "add optional quirk property to disable card insertion/removal interrupts"
This reverts commit 723697551a.

This change was poorly tested on my part. It squelched card insertion
interrupts on reset, but that was not necessary because sdhci_reset()
clears all the registers (via the call to memset), so the subsequent
sdhci_insert_eject_cb() call never sees the card insert interrupt
enabled. However, not calling the insert_eject_cb results in prnsts
remaining 0, when it actually needs to be updated to indicate card
presence and R/O status.

Signed-off-by: Andrew Baumann <Andrew.Baumann@microsoft.com>
Message-id: 1456436130-7048-2-git-send-email-Andrew.Baumann@microsoft.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-26 15:09:42 +00:00
Thomas Huth
ed0db8663a MAINTAINERS: Add some missing ARM related header files
Some header files in the include/hw/arm/ directory can be assigned
to entries in the MAINTAINERS file.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-id: 1456399324-24259-1-git-send-email-thuth@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-26 15:09:42 +00:00
Andrew Baumann
a55b53a2f4 raspi: fix SD card with recent sdhci changes
Recent changes to sdhci broke SD on raspi. This change mirrors
the logic to create the SD card device at the board level.

Signed-off-by: Andrew Baumann <Andrew.Baumann@microsoft.com>
Message-id: 1456351128-5560-1-git-send-email-Andrew.Baumann@microsoft.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-26 15:09:42 +00:00
Wei Huang
09aa3bf382 ARM: PL061: Checking register r/w accesses to reserved area
pl061.c emulates two GPIO devices, ARM PL061 and TI Stellaris, which
share the same read/write functions (pl061_read and pl061_write).
However PL061 and Stellaris have different GPIO register definitions
and pl061_read()/pl061_write() doesn't check it. This patch enforces
checking on offset, preventing R/W into the reserved memory area.

Signed-off-by: Wei Huang <wei@redhat.com>
Message-id: 1455814580-17699-1-git-send-email-wei@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-02-26 15:09:42 +00:00