Commit Graph

57201 Commits

Author SHA1 Message Date
Peter Maydell
53fb28d10d Pull request
v2:
  * v1 emails 2/3 and 3/3 weren't sent due to an email failure
  * Included Sergio's updated wording in the commit description
 -----BEGIN PGP SIGNATURE-----
 
 iQEcBAABAgAGBQJaA1cBAAoJEJykq7OBq3PIj30IAKezw19VQGkiTlAMIOYRTthR
 wS3LvMy7RZHrgu2lt/UWi8dSV3LP/lHgYVNg2ub8lMYU9Oa6Pvf+kFE7+uX5/lSj
 evfHTeUprEOS3JxDY6V1YFbvJ9ImsIAFKm7B2LIUzIdwhWkWKC3l2/iHoZ+IdYlm
 8m8P64HQEAva7XAgoO8OBq/FMFNuKFUX1LJH89BOMVqefccG2Mj0CRY/TkOSL7LR
 9rYtWS/WalY593bzu0R8G/W6ta8wL9SE6mXGwlvd3GZq2o2c++lheLjpH0x/7702
 f/yZog+T1devVKk+FzDdG1B8acCSW62V2O5ucm3pNFFSXPKkUtxAEOpRKYngl9M=
 =YBHk
 -----END PGP SIGNATURE-----

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

Pull request

v2:
 * v1 emails 2/3 and 3/3 weren't sent due to an email failure
 * Included Sergio's updated wording in the commit description

# gpg: Signature made Wed 08 Nov 2017 19:12:01 GMT
# gpg:                using RSA key 0x9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>"
# gpg:                 aka "Stefan Hajnoczi <stefanha@gmail.com>"
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* remotes/stefanha/tags/block-pull-request:
  util/async: use atomic_mb_set in qemu_bh_cancel
  tests-aio-multithread: fix /aio/multi/schedule race condition

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-10 17:25:15 +00:00
Peter Maydell
4ffa88c99c Merge qcrypto 2017/11/08 v1
-----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJaAuU+AAoJEL6G67QVEE/fsnkP/jdqkt5suVfAgGHIi4nsUNZI
 eaKuOEX26rIy6oaX11XmsEdLtxWMkEN2PaaD9axBbxhhfi1SuXY757Zgfhv3OV86
 sYWfvdCilkOY2sgU/xPLwh9NP/JaomYxFJvEBBTVUqd/QF/r3f0URTPipg+qiwWM
 EFtLi39+Tfmsjd6AsgLif0yXQTSEVWYUpCDC3whYDG+5xk8x3wgKCKNpYmk+cc8n
 SoUUP8njEX6jrqgF9syiSDrz3fLOebhdyA91K6RiCyuMHG/J+dyQ8ZywapTdhjlA
 lwfdyzbFxgcMj6tEUMv1UL40LiA5TRhBXxbfmMP3Ah84yONQI3HeONi6axGpxQF5
 MLaBPc06sNx8bokgK+SOVOx61DPRhiUcVHeYlOYyaaJG9bFaTYvhi/nDqjcPYRsk
 z+x2Gn5t5xikX0kFFZKZKXmdbDKGhTQvNT5Zbfv4+F7JYrqHJIS/LIvF4E6bxMT6
 t93eL+AIq+2lZ1cbmJNGanPinppMZb0nPnPumqTRLmlSEC799Y0ANIJ4SA+xrGec
 FV8EDcijs0Tmto9eYkBfaqFvHnsWKn7KQtGzstKvq4vMWc1Dc3oaNM/zhuE0ifJF
 U9L1gRwCFfM2RoeUVIwBUCDfnCDEx45xOwSctmQW0v9H+1ZiSDNFO4KqIrvNGg+M
 xF15fh/59fUYE/yP7g2w
 =+xi3
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/berrange/tags/pull-qcrypto-2017-11-08-1' into staging

Merge qcrypto 2017/11/08 v1

# gpg: Signature made Wed 08 Nov 2017 11:06:38 GMT
# gpg:                using RSA key 0xBE86EBB415104FDF
# gpg: Good signature from "Daniel P. Berrange <dan@berrange.com>"
# gpg:                 aka "Daniel P. Berrange <berrange@redhat.com>"
# Primary key fingerprint: DAF3 A6FD B26B 6291 2D0E  8E3F BE86 EBB4 1510 4FDF

* remotes/berrange/tags/pull-qcrypto-2017-11-08-1:
  crypto: afalg: fix a NULL pointer dereference
  tests: Run the luks tests in test-crypto-block only if encryption is available

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-10 16:01:35 +00:00
Peter Maydell
6058bfb00a ppc patch queue 2017-11-08
Here's the current set of accumulated ppc patches for qemu-2.11.
 Since we're now in hard freeze these are all bugfixes (although some
 fix a bug by way of a cleanup).
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEdfRlhq5hpmzETofcbDjKyiDZs5IFAloCu/4ACgkQbDjKyiDZ
 s5J6Rg/9EAvtmp6LZPi8B0rr7GPhIXFIKkYL1u1K7QKLwPqH26bboB9Wji6TY296
 TtnJ/NRzv73Lw1ehKSf4i/TWYYX6JCBZtQVP1x35plTLJaPA7Zy5vOFbH2NTGkDs
 YMEu7QHJEJavIM7c7lC6KdSnaL4wB34KFoHAO564pAndbBXHocdXhWo8w+AUtRP1
 v8IrnWr/ageb+Pc5PXgkTFIrtqtXNfvSxiRjd6derBVdx0dtUxM1k/mlQ2rBTfhQ
 h8GmbdUMVKva9TDWbzOxylcuf0v1IQTC+S6P1LPvFvjxjtDnPBunvfiCNb2C3GZ8
 sY3lsnvatqrOSBMIv69GCuM0PWK5NY5/Vz/3eYfBA4vCLu8IRrfLyUPONcPiSyOt
 hDDSOmEUKfC9isOEui5o2J50h0/YXo1Aa6+l2shtgoDeM8wnFkNQJWyHz1eqwkTy
 WE9VFq1pjtFjbZS4hY4ANoXpHg6ylFS+quD1LcYqm4hxAQGcl8XlqkGg7hnulyiS
 aUIr99ICd8SkoyDauAUROz2+8ppbkRZI0fRQb98rMZS2m6fhbnZpOMFRv9asVY/Z
 04HyjC1/hklmnGpBSW/kV6n0Ib/oGqI4E7KGQ5zWsxP7TmAuKNDafTx7646ajVGn
 QpePaIDKBGxbXqt6gXDVmVNkeL+ayIAv/yqnMwd3yo46Sl0784s=
 =ogfh
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.11-20171108' into staging

ppc patch queue 2017-11-08

Here's the current set of accumulated ppc patches for qemu-2.11.
Since we're now in hard freeze these are all bugfixes (although some
fix a bug by way of a cleanup).

# gpg: Signature made Wed 08 Nov 2017 08:10:38 GMT
# gpg:                using RSA key 0x6C38CACA20D9B392
# 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:                 aka "David Gibson (kernel.org) <dwg@kernel.org>"
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-2.11-20171108:
  e500: ppce500_init_mpic() return device instead of IRQ array
  hw/display/sm501: Fix comment in sm501_sysbus_class_init()
  ppc: fix setting of compat mode

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-10 15:05:56 +00:00
Sergio Lopez
ef6dada8b4 util/async: use atomic_mb_set in qemu_bh_cancel
Commit b7a745d added a qemu_bh_cancel call to the completion function
as an optimization to prevent it from unnecessarily rescheduling itself.

This completion function is scheduled from worker_thread, after setting
the state of a ThreadPoolElement to THREAD_DONE.

This was considered to be safe, as the completion function restarts the
loop just after the call to qemu_bh_cancel. But, as this loop lacks a HW
memory barrier, the read of req->state may actually happen _before_ the
call, seeing it still as THREAD_QUEUED, and ending the completion
function without having processed a pending TPE linked at pool->head:

         worker thread             |            I/O thread
------------------------------------------------------------------------
                                   | speculatively read req->state
req->state = THREAD_DONE;          |
qemu_bh_schedule(p->completion_bh) |
  bh->scheduled = 1;               |
                                   | qemu_bh_cancel(p->completion_bh)
                                   |   bh->scheduled = 0;
                                   | if (req->state == THREAD_DONE)
                                   |   // sees THREAD_QUEUED

The source of the misunderstanding was that qemu_bh_cancel is now being
used by the _consumer_ rather than the producer, and therefore now needs
to have acquire semantics just like e.g. aio_bh_poll.

In some situations, if there are no other independent requests in the
same aio context that could eventually trigger the scheduling of the
completion function, the omitted TPE and all operations pending on it
will get stuck forever.

[Added Sergio's updated wording about the HW memory barrier.
--Stefan]

Signed-off-by: Sergio Lopez <slp@redhat.com>
Message-id: 20171108063447.2842-1-slp@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2017-11-08 19:09:15 +00:00
Longpeng
f1710638ed crypto: afalg: fix a NULL pointer dereference
Test-crypto-hash calls qcrypto_hash_bytesv/digest/base64 with
errp=NULL, this will cause a NULL pointer dereference if afalg_driver
doesn't support requested algos:

    ret = qcrypto_hash_afalg_driver.hash_bytesv(alg, iov, niov,
                                                result, resultlen,
                                                errp);
    if (ret == 0) {
        return ret;
    }

    error_free(*errp);  // <--- here

Because the error message is thrown away immediately, we should
just pass NULL to hash_bytesv(). There is also the same problem in
afalg-backend cipher & hmac, let's fix them together.

Reviewed-by: Eric Blake <eblake@redhat.com>
Reported-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Longpeng <longpeng2@huawei.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-11-08 11:05:09 +00:00
Thomas Huth
b417a7624c tests: Run the luks tests in test-crypto-block only if encryption is available
The test-crypto-block currently fails if encryption has not been
compiled into QEMU:

TEST: tests/test-crypto-block... (pid=22231)
  /crypto/block/qcow:                                                  OK
  /crypto/block/luks/default:
  Unexpected error in qcrypto_pbkdf2() at qemu/crypto/pbkdf-stub.c:41:
FAIL
GTester: last random seed: R02Sbbb5b6f299c6727f41bb50ba4aa6ef5c
(pid=22237)
  /crypto/block/luks/aes-256-cbc-plain64:
  Unexpected error in qcrypto_pbkdf2() at qemu/crypto/pbkdf-stub.c:41:
FAIL
GTester: last random seed: R02S3e27992a5ab4cc95e141c4ed3c7f0d2e
(pid=22239)
  /crypto/block/luks/aes-256-cbc-essiv:
  Unexpected error in qcrypto_pbkdf2() at qemu/crypto/pbkdf-stub.c:41:
FAIL
GTester: last random seed: R02S51b52bb02a66c42d8b331fd305384f53
(pid=22241)
FAIL: tests/test-crypto-block

So run the luks test only if the required encryption support is available.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-11-08 11:03:46 +00:00
Stefan Hajnoczi
fb0c43f34e tests-aio-multithread: fix /aio/multi/schedule race condition
test_multi_co_schedule_entry() set to_schedule[id] in the final loop
iteration before terminating the coroutine.  There is a race condition
where the main thread attempts to enter the terminating or terminated
coroutine when signalling coroutines to stop:

  atomic_mb_set(&now_stopping, true);
  for (i = 0; i < NUM_CONTEXTS; i++) {
      ctx_run(i, finish_cb, NULL);  <--- enters dead coroutine!
      to_schedule[i] = NULL;
  }

Make sure only to set to_schedule[id] if this coroutine really needs to
be scheduled!

Reported-by: "R.Nageswara Sastry" <nasastry@in.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20171106190233.1175-1-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2017-11-08 09:22:55 +00:00
Michael Davidsaver
c91c187f71 e500: ppce500_init_mpic() return device instead of IRQ array
Actual number of interrupt pins isn't known
in ppce500_init_mpic() so a hardcoded number
was used, which causes a crash with older openpic.

Instead, return the DeviceState* and change ppce500_init()
to call qdev_get_gpio_in() to get only the irq pins
which are needed.

Signed-off-by: Michael Davidsaver <mdavidsaver@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2017-11-08 13:21:37 +11:00
Thomas Huth
79b217dedb hw/display/sm501: Fix comment in sm501_sysbus_class_init()
The "cannot_instantiate_with_device_add_yet" flag has been renamed
to "user_creatable" a while ago.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2017-11-08 13:21:37 +11:00
Greg Kurz
e4f0c6bb1a ppc: fix setting of compat mode
While trying to make KVM PR usable again, commit 5dfaa532ae introduced a
regression: the current compat_pvr value is passed to KVM instead of the
new one. This means that we always pass 0 instead of the max-cpu-compat
PVR during the initial machine reset. And at CAS time, we either pass
the PVR from the command line or even don't call kvmppc_set_compat() at
all, ie, the PCR will not be set as expected.

For example if we start a big endian fedora26 guest in power7 compat
mode on a POWER8 host, we get this in the guest:

$ cat /proc/cpuinfo
processor       : 0
cpu             : POWER7 (architected), altivec supported
clock           : 4024.000000MHz
revision        : 2.0 (pvr 004d 0200)

timebase        : 512000000
platform        : pSeries
model           : IBM pSeries (emulated by qemu)
machine         : CHRP IBM pSeries (emulated by qemu)
MMU             : Hash

but the guest can still execute POWER8 instructions, and the following
program succeeds:

int main()
{
        asm("vncipher 0,0,0"); // ISA 2.07 instruction
}

Let's pass the new compat_pvr to kvmppc_set_compat() and the program fails
with SIGILL as expected.

Reported-by: Nageswara R Sastry <rnsastry@linux.vnet.ibm.com>
Signed-off-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2017-11-08 13:21:37 +11:00
Peter Maydell
b0fbe46ad8 Update version for v2.11.0-rc0 release
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 16:05:28 +00:00
Peter Maydell
5ca7a3cba4 Pull IO 2017/11/06 v2
-----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJaAcStAAoJEL6G67QVEE/fWU8QAIG1s9gMe4NOqN5hqX7BxLgf
 EBqQxzu2kE61Flq2NhgKh9EWdnb2q4Ig6p1etz1m2a0BAV6KayeFEi3iJq2+bCq7
 odZgmXNmGBlBj2YbdBFy4E1ku5pr6ZmUHKE4ukHJs2ODm0eGFiQNnPIohXaXVltj
 4F2PrC9rcfhB3kiMPZO5Ak+D4cDj+m0WP2aZw1PHzZKAefIHEIIksSPsKXRu5jBk
 mw6nKB9g3B99UR/txd8BF73FEAaVEVy6ExAJK4cbU8t7t7vtYmotYdn0KOYqxBhM
 ZCWz2v+/RkX5vJSBWHRkxjF0vRqQSGlemZ8ov9pUk9nYa1xi9vyJ/LIFkh2YmoGv
 3n/jLzq1X4e/tA5d9RuwHiHO45sKlQBYs7z6h8D+exZO22F6BY2of2mp96VXayzD
 bGKT94Bpcb32YUUeuCLfSQBjXK0jUPEot1+JHLINkVH+iIau9v0/VHrTslGq32RI
 Y02aGU5bUkGZpzoBG4kw7FCH8S3odzFW5DY3Dzl0km3h2qX+dbv+yeQEhVGuIv1d
 2j9WRm8YkmvS+YWmfHFMbe7Kaf/PGORT0Z5lxu2g5DRI24azynCS4BswrOtvhJ61
 YFA+8/w6s3WLCQeCP56V9BLJOLUGTK2XX/e2xjM7Wg8kf0v3xpdCoD+lZy7mrJ5f
 CSXL9PFs0Z0ORZvAs/fN
 =6Ty4
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/berrange/tags/pull-2017-11-06-2' into staging

Pull IO 2017/11/06 v2

# gpg: Signature made Tue 07 Nov 2017 14:35:25 GMT
# gpg:                using RSA key 0xBE86EBB415104FDF
# gpg: Good signature from "Daniel P. Berrange <dan@berrange.com>"
# gpg:                 aka "Daniel P. Berrange <berrange@redhat.com>"
# Primary key fingerprint: DAF3 A6FD B26B 6291 2D0E  8E3F BE86 EBB4 1510 4FDF

* remotes/berrange/tags/pull-2017-11-06-2:
  sockets: avoid leak of listen file descriptor

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 14:43:35 +00:00
Daniel P. Berrange
10a7b7e6fd sockets: avoid leak of listen file descriptor
If we iterate over the full port range without successfully binding+listening
on the socket, we'll try the next address, whereupon we overwrite the slisten
file descriptor variable without closing it.

Rather than having two places where we open + close socket FDs on different
iterations of nested for loops, re-arrange the code to always open+close
within the same loop iteration.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-11-07 14:10:20 +00:00
Peter Maydell
a4f0537db0 target-arm queue:
* arm_gicv3_its: Don't abort on table save failure
  * arm_gicv3_its: Fix the VM termination in vm_change_state_handler()
  * translate.c: Fix usermode big-endian AArch32 LDREXD and STREXD
  * hw/arm: Mark the "fsl,imx31/25/6" devices with user_creatable = false
  * arm: implement cache/shareability attribute bits for PAR registers
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCAAGBQJaAbZGAAoJEDwlJe0UNgzesTAP/R7/cm8sIV5bQxAvFdXZ9tKH
 0V8/SmrKm5XE6LoZC+yOo4vh5+ypwvNvcYeoRLUuThYEtmCKBouteVkB1VJqbQO3
 6VX6n600O4DZcOSkKlhrfJpaYtox+zqrbgQ/VFEbZ8ICBoZevdsLDgoxaI+lw8bo
 c0nz39ophHQ3H4R+gF7wXt6Am4pvYx2C6SnhmVetKqBfMZsMpVvgm1X6yboUUa1W
 1mfjdLS499JIPJwwDl8QZtcIAzOucg7FS+CNwgZ/Rfd3Cx3uBw32E16i9WJlPbUi
 IJFf+CwubiFN54MUWgOAbWNH4nUSTNQzWthWNzdRUhUSxrIb72j8vHUsDlASx8nx
 wzPiVWLkx8k9ef5GlQ5sL4l3NDZuM52YeJ7Chq5JOjnQCuNBYptuKFETXKSNe8Lw
 qSvPysZp6ZVNkeTQLr1xwngJQxIkxloP2jPknlbJXnAjHztPHA39lg4sNFj+u3hR
 RvG5BsyRJM2ccbo8Jk497qtwowplAji8M79YuZFkt+aiAutP8iYTbwoW6IIAopt4
 RNn+CAvIkLcS6JWBIbhI6gvCk4eczvjaS77w20K2EthAmQtpx5i/AP4p9fxX4ulq
 Hokg6rHXeA61TNgXhRlKc/G+Y+gWRlMwiJk5BYrmR3dibRKYLjFVRU3JRsfDo/5l
 5zPuoBHv1CG0NDYsrQBU
 =6ocu
 -----END PGP SIGNATURE-----

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

target-arm queue:
 * arm_gicv3_its: Don't abort on table save failure
 * arm_gicv3_its: Fix the VM termination in vm_change_state_handler()
 * translate.c: Fix usermode big-endian AArch32 LDREXD and STREXD
 * hw/arm: Mark the "fsl,imx31/25/6" devices with user_creatable = false
 * arm: implement cache/shareability attribute bits for PAR registers

# gpg: Signature made Tue 07 Nov 2017 13:33:58 GMT
# gpg:                using RSA key 0x3C2525ED14360CDE
# 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>"
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20171107:
  hw/intc/arm_gicv3_its: Don't abort on table save failure
  hw/intc/arm_gicv3_its: Fix the VM termination in vm_change_state_handler()
  translate.c: Fix usermode big-endian AArch32 LDREXD and STREXD
  hw/arm: Mark the "fsl,imx31" device with user_creatable = false
  hw/arm: Mark the "fsl,imx25" device with user_creatable = false
  hw/arm: Mark the "fsl,imx6" device with user_creatable = false
  arm: implement cache/shareability attribute bits for PAR registers

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 13:54:41 +00:00
Eric Auger
8a7348b5d6 hw/intc/arm_gicv3_its: Don't abort on table save failure
The ITS is not fully properly reset at the moment. Caches are
not emptied.

After a reset, in case we attempt to save the state before
the bound devices have registered their MSIs and after the
1st level table has been allocated by the ITS driver
(device BASER is valid), the first level entries are still
invalid. If the device cache is not empty (devices registered
before the reset), vgic_its_save_device_tables fails with -EINVAL.
This causes a QEMU abort().

Cc: qemu-stable@nongnu.org
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reported-by: wanghaibin <wanghaibin.wang@huawei.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 13:03:52 +00:00
Shanker Donthineni
3a575cd2c2 hw/intc/arm_gicv3_its: Fix the VM termination in vm_change_state_handler()
The commit cddafd8f35 ("hw/intc/arm_gicv3_its: Implement state save
/restore") breaks the backward compatibility with the older kernels
where vITS save/restore support is not available. The vmstate function
vm_change_state_handler() should not be registered if the running kernel
doesn't support ITS save/restore feature. Otherwise VM instance will be
killed whenever vmstate callback function is invoked.

Observed a virtual machine shutdown with QEMU-2.10+linux-4.11 when testing
the reboot command "virsh reboot <domain> --mode acpi" instead of reboot.

KVM Error: 'KVM_SET_DEVICE_ATTR failed: Group 4 attr 0x00000000000001'

Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-id: 1509712671-16299-1-git-send-email-shankerd@codeaurora.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 13:03:51 +00:00
Peter Maydell
3448d47b31 translate.c: Fix usermode big-endian AArch32 LDREXD and STREXD
For AArch32 LDREXD and STREXD, architecturally the 32-bit word at the
lowest address is always Rt and the one at addr+4 is Rt2, even if the
CPU is big-endian. Our implementation does these with a single
64-bit store, so if we're big-endian then we need to put the two
32-bit halves together in the opposite order to little-endian,
so that they end up in the right places. We were trying to do
this with the gen_aa32_frob64() function, but that is not correct
for the usermode emulator, because there there is a distinction
between "load a 64 bit value" (which does a BE 64-bit access
and doesn't need swapping) and "load two 32 bit values as one
64 bit access" (where we still need to do the swapping, like
system mode BE32).

Fixes: https://bugs.launchpad.net/qemu/+bug/1725267
Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 1509622400-13351-1-git-send-email-peter.maydell@linaro.org
2017-11-07 13:03:51 +00:00
Thomas Huth
e4e05b7b3e hw/arm: Mark the "fsl,imx31" device with user_creatable = false
QEMU currently crashes when the user tries to instantiate the fsl,imx31
device manually:

$ aarch64-softmmu/qemu-system-aarch64 -M kzm -device fsl,,imx31
**
ERROR:/home/thuth/devel/qemu/tcg/tcg.c:538:tcg_register_thread:
 assertion failed: (n < max_cpus)
Aborted (core dumped)

The kzm board (which is the one that uses this CPU type) only supports
one CPU, and the realize function of the "fsl,imx31" device also uses
serial_hds[] directly, so this device clearly can not be instantiated
twice and thus we should mark it with user_creatable = false.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-id: 1509519537-6964-4-git-send-email-thuth@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 13:03:51 +00:00
Thomas Huth
5e0c7044b9 hw/arm: Mark the "fsl,imx25" device with user_creatable = false
QEMU currently crashes when the user tries to instantiate the fsl,imx25
device manually:

$ aarch64-softmmu/qemu-system-aarch64 -S -M imx25-pdk -device fsl,,imx25
**
ERROR:/home/thuth/devel/qemu/tcg/tcg.c:538:tcg_register_thread:
 assertion failed: (n < max_cpus)

The imx25-pdk board (which is the one that uses this CPU type) only
supports one CPU, and the realize function of the "fsl,imx25" device
also uses serial_hds[] directly, so this device clearly can not be
instantiated twice and thus we should mark it with user_creatable = 0.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-id: 1509519537-6964-3-git-send-email-thuth@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 13:03:51 +00:00
Thomas Huth
70fbd3c4bf hw/arm: Mark the "fsl,imx6" device with user_creatable = false
This device causes QEMU to abort if the user tries to instantiate it:

$ qemu-system-aarch64 -M sabrelite -smp 1,maxcpus=2 -device fsl,,imx6
Unexpected error in qemu_chr_fe_init() at chardev/char-fe.c:222:
qemu-system-aarch64: -device fsl,,imx6: Device 'serial0' is in use
Aborted (core dumped)

The device uses serial_hds[] directly in its realize function, so it
can not be instantiated again by the user.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-id: 1509519537-6964-2-git-send-email-thuth@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 13:03:51 +00:00
Andrew Baumann
5b2d261d60 arm: implement cache/shareability attribute bits for PAR registers
On a successful address translation instruction, PAR is supposed to
contain cacheability and shareability attributes determined by the
translation. We previously returned 0 for these bits (in line with the
general strategy of ignoring caches and memory attributes), but some
guest OSes may depend on them.

This patch collects the attribute bits in the page-table walk, and
updates PAR with the correct attributes for all LPAE translations.
Short descriptor formats still return 0 for these bits, as in the
prior implementation.

Signed-off-by: Andrew Baumann <Andrew.Baumann@microsoft.com>
Message-id: 20171031223830.4608-1-Andrew.Baumann@microsoft.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 13:03:51 +00:00
Peter Maydell
5853e92207 cocoa queue:
* make scrolling work in GUI monitor windows
  * change ungrab to ctrl-alt-g (matching gtk)
  * pass unused ctrl-alt combos to guest
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCAAGBQJaAYekAAoJEDwlJe0UNgzeNHAP/3TIuXoH/HNnFrVWpbKxx4Bj
 V9n4yUNNZhEJneipwDF6knws+OXR2EwolkapUymKgD4wCwQp6rga6gfeytp7ArOw
 A4MX0WGGAROFmbO4fWabOe7YbFM7rYSy+vPNPL/7hEhypYS6/FKULFoWHEG+Dbv8
 XaORoDnmCheUe7hJlc+56GiQ+fYJfN5kocKMnujeo8lq86Rba9iIbZcThCDFtea3
 4CtJE6/1SMpmJLQf6sIQRRBkXPGWGv1qtWis4FcRSk0sYn4OEMcM3eapDZUlJASO
 cBpOeoHI1L64BbyfQklBhi0v+5Nek32KZNJiY49kwSL0JKRtBMhBVKkDtnNXpaLm
 eA5WiwsQttYCqnyBUCWqybExGjzBjUy0TCClSMUdu1G47Wf5a1OzMtqY2CzXVgaF
 0l2ZAOtIud6KACIr9D9ti+z4kTLDhddvg3NOSZA7RTo1hspUZv2Of/+97Ao1MBFk
 gmrC7zm94OwOQXzwPpu38XJBD8Gtxu8O3TNCD2DrWmAcS7zamRE2IP41wjHqUuCz
 fTihyds3ng0BtBYeRyzVQ5Hdd9UCNk8CB/SLKkz7/U1Vt1PiiuAi5kxQ97WvYHsg
 8fRpmgU+wTUjIbp+Ww8tsGZkzInmSjfEGjBsm6MjwWgntEIVD1WqieEZMfk4rAZ8
 7k/MR5amCS9nn3IF5uAI
 =RIdQ
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/pmaydell/tags/pull-cocoa-20171107' into staging

cocoa queue:
 * make scrolling work in GUI monitor windows
 * change ungrab to ctrl-alt-g (matching gtk)
 * pass unused ctrl-alt combos to guest

# gpg: Signature made Tue 07 Nov 2017 10:15:00 GMT
# gpg:                using RSA key 0x3C2525ED14360CDE
# 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>"
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-cocoa-20171107:
  ui/cocoa.m: Send ctrl-alt key combos to guest if QEMU isn't using them
  ui/cocoa.m: move ungrab to ctrl-alt-g
  ui/cocoa.m: Make scrolling work again in GUI monitor windows

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 12:19:48 +00:00
Peter Maydell
0e82cdd012 Merge build 2017/11/07 v1
-----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJaAYeZAAoJEL6G67QVEE/fuCwP/3TgBkGEyqsH4CrYLtpOZLZF
 0eRx8vzBNhuCgIuiMItAbxKHSJKHhhTZIad6J0tJOTYhtEfLZHKh3USSF28KcaYd
 8/8aYRZdaMO4QK66Lfl/PwebZ5FiD5xb9qTJ9SkHARsHeIogwTcGAkvDhcdVzFtw
 RC7thETESoEpdx6FtVEl95+nfK3C9Fltm9LR6i9u2gsbvoVPp+w3EflhEBlCCdrJ
 Kdc0+GX0EWsVZ7NoU79vUQ5LswGUn+ZwSZB5DLVeCWXbKbgAKCBIwZNet06p60RD
 RuNyG8ivH+s6pSKTqgTIKPeZkwtqnVmjqBVfUEZsTEDgvtYpaXb25XyZLdDbBUCS
 a06RkB03xZVgVY15HL9X7bhVhZVZ56WuLokvHi4LbXjga3+V7ldOcBh21BbUhGnD
 NAuR186SeyCG84HdhSFKebA6xDQMjoLrqo0Y9YfTZUjX2jLlDzpeP337RSKyaO1B
 eLFLekx1PU4OS+QPG+TOjN8fplxNdv46xoW+VgGClDVjOSbnrUQRRe4GfaLuJRqs
 jXs+k9Me3oJWit6UG2gv3sWOGxqGMZKvjTsVKvi1HaQKx2bgd+bzNL7VurvqiEy9
 QLyLP5lYX7riuLnrkavJUxt0vWPVEmfzdL+hrTLTb/cXc5qH0FFBQx0yaTgAmCwA
 /cUrxI2xu2VZKwUXH/Xs
 =TdMN
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/berrange/tags/pull-build-2017-11-07-1' into staging

Merge build 2017/11/07 v1

# gpg: Signature made Tue 07 Nov 2017 10:14:49 GMT
# gpg:                using RSA key 0xBE86EBB415104FDF
# gpg: Good signature from "Daniel P. Berrange <dan@berrange.com>"
# gpg:                 aka "Daniel P. Berrange <berrange@redhat.com>"
# Primary key fingerprint: DAF3 A6FD B26B 6291 2D0E  8E3F BE86 EBB4 1510 4FDF

* remotes/berrange/tags/pull-build-2017-11-07-1:
  build: remove use of MAKELEVEL optimization in submodule handling
  build: delay check for empty git submodule list
  build: don't fail if given a git submodule which does not exist
  build: allow automatic git submodule updates to be disabled
  build: don't create temporary files in source dir
  build: allow setting a custom GIT binary for transparent proxying

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 11:42:57 +00:00
Peter Maydell
d2b8c0910e This fixes a bad errno returned to the guest and a trivial coding style nit.
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEtIKLr5QxQM7yo0kQcdTV5YIvc9YFAloApVQACgkQcdTV5YIv
 c9aLCA/8CJyTPSTVRTdRb0oF9aB8s6NynFKkkkU7aRqjvwIM47TEy96nmBA/W8e8
 4A5Wohwh5RJeJS8EzyamGFHKi1dcd6DOsPIm9G8A3eztGNO8zV5rmLx2LfqCLWyZ
 NojVyMTFVoaX/yphBNFtC19QsoDbm0UV3EP9bx+oWYYO1d5HmuAoB8czzIMSp4qj
 mkbrZ8RKO+8w+Y4pQ66oslg8GliSRKtiaMR5CTcHAkNy1juVWw5ISujfD1LjU7W+
 0y7nVlnhomTfce+K8wc2DkovDczDtomom4fQWHR0FXzzUUoO/RN/yzzDfByfN65g
 9U3GkY7fD/hrSBMTObPF8/F0B9sSOzbX4u4w0xiJ8w2dm2pFPeJegWEBkuNFxVBJ
 929vI/9ZGnMzOuS5k7aJqHl29KemRTQ/5BkSR7e/pLniT6sZvs9ttJEomzCiuopQ
 gZpAbwEMA+VzEqRsUk8lsi08vKnDH2eFOjC01W/FjKzeLw2t0o6EAqRfztrReKT3
 P34C+8DocQEXQBGZCq45ZjzUhcH94gJrg9bkHSkn4cCyALoMaLIJyF4soYuCCKfn
 HJrF3rZrFDsDJ9DAVlCuPV7qSufoXwgZSaZIuAp9wZtB/XwMfdKV38K4mkzqWihT
 Jf2iNZRnuhNnlvI5q4d+/YZIJ+099mnCuojFV2NsjIPL9ziNmZs=
 =qH6G
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/gkurz/tags/for-upstream' into staging

This fixes a bad errno returned to the guest and a trivial coding style nit.

# gpg: Signature made Mon 06 Nov 2017 18:09:24 GMT
# gpg:                using RSA key 0x71D4D5E5822F73D6
# gpg: Good signature from "Greg Kurz <groug@kaod.org>"
# gpg:                 aka "Gregory Kurz <gregory.kurz@free.fr>"
# gpg:                 aka "[jpeg image of size 3330]"
# Primary key fingerprint: B482 8BAF 9431 40CE F2A3  4910 71D4 D5E5 822F 73D6

* remotes/gkurz/tags/for-upstream:
  9pfs: fix v9fs_mark_fids_unreclaim() return value
  9pfs: drop one user of struct V9fsFidState

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 10:59:07 +00:00
Peter Maydell
ef2088f9af ui/cocoa.m: Send ctrl-alt key combos to guest if QEMU isn't using them
Send those ctrl-alt key combos that QEMU doesn't treat specially to
the guest rather than ignoring them.

All the case where we do special handling of ctrl-alt-X exit the
event handling using a "return" statement, so we can simply allow
the rest to fall through into the normal key handling by deleting
the now-spurious "else".

We take the opportunity to clean up some oddly-formatted and
now rather uninformative comments by removing them.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 10:14:14 +00:00
John Arbuckle
5929e36cac ui/cocoa.m: move ungrab to ctrl-alt-g
Currently the cocoa user interface relis on the user pushing
control-alt to ungrab the mouse.  This is patch changes the key
combination to control-alt-g to be in line with the GTK user
interface.

Signed-off-by: John Arbuckle <programmingkidx@gmail.com>
Message-id: 20171102213907.11443-1-programmingkidx@gmail.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 10:14:14 +00:00
John Arbuckle
9c3a418eac ui/cocoa.m: Make scrolling work again in GUI monitor windows
Make scrolling in the monitor work, by correctly passing through
control+key combinations.

Signed-off-by: John Arbuckle <programmingkidx@gmail.com>
Message-id: 20171101154607.1582-1-programmingkidx@gmail.com
[PMM: fixed coding style nits; cleaned up commit message]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-07 10:14:14 +00:00
Greg Kurz
267fcadf32 9pfs: fix v9fs_mark_fids_unreclaim() return value
The return value of v9fs_mark_fids_unreclaim() is then propagated to
pdu_complete(). It should be a negative errno, not -1.

Signed-off-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
2017-11-06 18:05:35 +01:00
Greg Kurz
21cf9edf4f 9pfs: drop one user of struct V9fsFidState
To comply with QEMU coding style.

Signed-off-by: Greg Kurz <groug@kaod.org>
2017-11-06 18:05:35 +01:00
Peter Maydell
299d1ea9bb MIPS patches 2017-11-06
Changes:
 Update email addresses of Yongbok Kim, James Hogan and Paul Burton.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.5 (GNU/Linux)
 
 iQIVAwUAWgCCEiI464bV95fCAQLUWA/8D6Cliyogxl8hdFrjU30f0FzHoCanbl/M
 d8tn/KhG+7ams0dxhpZUT3hR77gdId0CufnLa68MGbXy3enGTgP9jwjG/IWW6pjB
 95fLIT8tKhcrNNNRr4IXdV8IZUOmjTnrh8GnqH/BSzIxByCx3tPfz3psLC1EBIFb
 JfOac6MEiyG9a0KHy1Ne5PXYgLrolfUoh0eAcALp0ynK7aGUvX6Rp4HYnhm9HIjX
 mnHR/4tdIEqwhvlqyotgZ6XKEuYBK5pvPi+KoITDgsV2l0avtJGDxDr2xUziyFOm
 sLt1m1q4DC8AU1zV/xNvgWuX90Jacncq1ep7ZK/5jp/JxUA+L9Bw71XaLK0iELxE
 iQxhR283FB1xcq7dfC7LKF04MSe29+v12zIViv3tk1CAPUJ/J/UJ5t/ClM4oRIoe
 mTc6DpSAGUDEVCHB39YxGBKdGwSbFObZVF980SS8k8aQLOATF1PoPuzrkJs4dAvt
 IPj6ULJe7C0IdsJ+zT21jR4HBMmopa2sbmS2jjMDypYvudxHp+GjlC6921BV5KUw
 TLX0cndriSQlP3Oo0pU95xHjE9elJ/A1arwR/Tk6fgK8tHC5TNBE1vVK9kqV5uhM
 d4uya1AOFbbqhP5YOrKfOCLSNVluF9ThVljSYwq5GJxFzW05at/H2BDGXNyB+sik
 p6wiYgNGw5s=
 =OxmK
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/yongbok/tags/mips-20171106' into staging

MIPS patches 2017-11-06

Changes:
Update email addresses of Yongbok Kim, James Hogan and Paul Burton.

# gpg: Signature made Mon 06 Nov 2017 15:38:58 GMT
# gpg:                using RSA key 0x2238EB86D5F797C2
# gpg: Good signature from "Yongbok Kim <yongbok.kim@mips.com>"
# gpg:                 aka "Yongbok Kim <yongbok.kim@imgtec.com>"
# 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: 8600 4CF5 3415 A5D9 4CFA  2B5C 2238 EB86 D5F7 97C2

* remotes/yongbok/tags/mips-20171106:
  MAINTAINERS: Update Paul Burton's email address
  MAINTAINERS: Update James Hogan's email address
  MAINTAINERS: Update Yongbok Kim's email address

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-06 16:13:10 +00:00
Paul Burton
94d973bdaa MAINTAINERS: Update Paul Burton's email address
Update my email address from paul.burton@imgtec.com to
paul.burton@mips.com, since MIPS will soon no longer be a part of
Imagination Technologies & as such the @imgtec.com address will soon
cease to function.

A mapping is added in .mailmap such that git reports the new @mips.com
address, and get_maintainer.pl in turn reports it when examining git
history. Whilst here add a mapping for my also-defunct
paul@archlinuxmips.org email address too.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: Laurent Vivier <laurent@vivier.eu>
Cc: Michael Tokarev <mjt@tls.msk.ru>
Cc: Yongbok Kim <yongbok.kim@imgtec.com>
Cc: Yongbok Kim <yongbok.kim@mips.com>
Cc: qemu-devel@nongnu.org
Cc: qemu-trivial@nongnu.org
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[Yongbok Kim:
  Updated message subject]
Signed-off-by: Yongbok Kim <yongbok.kim@imgtec.com>
2017-11-06 07:36:43 -08:00
James Hogan
a7a2d7d2a0 MAINTAINERS: Update James Hogan's email address
Update my imgtec.com email address to my kernel.org one in MAINTAINERS
as MIPS will soon no longer be part of Imagination Technologies, and add
a mapping in .mailcap so get_maintainer.pl reports the right address.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Michael Tokarev <mjt@tls.msk.ru>
Cc: Laurent Vivier <laurent@vivier.eu>
Cc: qemu-devel@nongnu.org
Cc: qemu-trivial@nongnu.org
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
[Yongbok Kim:
  Updated message subject]
Signed-off-by: Yongbok Kim <yongbok.kim@imgtec.com>
2017-11-06 07:36:43 -08:00
Yongbok Kim
0eb4e1f33a MAINTAINERS: Update Yongbok Kim's email address
Update my email address to mips.com

Signed-off-by: Yongbok Kim <yongbok.kim@imgtec.com>
2017-11-06 07:36:42 -08:00
Daniel P. Berrange
c4b01c7c51 build: remove use of MAKELEVEL optimization in submodule handling
The Makefile attempts to optimize the handling of submodules by using MAKELEVEL
to only check the submodule status when running from the top level make
invokation. This causes problems for people who are using a makefile of their
own to in turn invoke QEMU's makefile, as MAKELEVEL is already set to 1 (or
more) when QEMU's makefile runs.

This optimization should not really be needed, since the git-submodule.sh
script is already used to detect if a submodule update is required. This by
removing the MAKELEVEL check, we at most add an extra 'git-submodule.sh status'
call to each make level, the overhead of which is lost in noise of building
QEMU.

Reviewed-by: Greg Kurz <groug@kaod.org>
Tested-by: Greg Kurz <groug@kaod.org>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-11-06 12:49:20 +00:00
Peter Maydell
d24aaf2a29 -----BEGIN PGP SIGNATURE-----
iQEcBAABAgAGBQJaAEVyAAoJEJykq7OBq3PI9ZEIAIkcTGr7O4iAKIZTvT/HA8i4
 QO2GHs/WvojDgLEqqqqOEVH+1HrcsCx0UneXQqwKe665jnOaRN2e+m/p51xnWi9B
 kM1a1HumK/L7LvIk5FJReL8JjHQuYkW40q5NQ7mgHf535Ur2QxmLlMtx9qYCR6vF
 WMPqNGjqnD3m42/oxMN9lL+cM1fDY0WnZEEGIj9UdDqI7dbBjUIyhE6f44+xgDgl
 EdYx9kdEMgVLxeLilPe8wZE2Aw0FtpXbEFJMOEbeoDhdKzO2UU/3CGPe1MdIXRzN
 72ITxMrBZcWT+jPvSmuSkcU+LsfPoTJEZ27TO5ARoGKjuvgQiEOete/hDXoSpOI=
 =xgU+
 -----END PGP SIGNATURE-----

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

# gpg: Signature made Mon 06 Nov 2017 11:20:18 GMT
# gpg:                using RSA key 0x9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>"
# gpg:                 aka "Stefan Hajnoczi <stefanha@gmail.com>"
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* remotes/stefanha/tags/block-pull-request:
  aio-posix: drop QEMU_AIO_POLL_MAX_NS env var

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-06 11:24:14 +00:00
Daniel P. Berrange
49ad3cfa67 build: delay check for empty git submodule list
We short circuit the git submodule update when passed an empty module list.
This accidentally causes the 'status' command to write to the status file. The
test needs to be delayed into the individual commands to avoid this premature
writing of the status file.

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-11-06 11:05:24 +00:00
Daniel P. Berrange
37b5e74e28 build: don't fail if given a git submodule which does not exist
If going back in time in git history, across a commit that introduces a new
submodule, the 'git-submodule.sh' script will fail, causing rebuild to fail.

This is because config-host.mak contains a GIT_SUBMODULES variable that lists
a submodule that only exists in the later commit. config-host.mak won't get
repopulated until config.status is invoked, but make won't get this far due to
the submodule error.

This change makes 'git-submodule.sh' check whether each module is known to git
and drops any which are not present. A warning message will be printed when any
submodule is dropped in this manner.

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-11-06 11:05:12 +00:00
Stefan Hajnoczi
ef9115dd7c aio-posix: drop QEMU_AIO_POLL_MAX_NS env var
This hunk should not have been merged but I forgot to remove it.  Let's
remove it before it slips into a QEMU release.

¯\_(ツ)_/¯

Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20171103154041.12617-1-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2017-11-06 11:04:38 +00:00
Daniel P. Berrange
f62bbee55d build: allow automatic git submodule updates to be disabled
Some people building QEMU use VPATH builds where the source directory is on a
read-only volume. In such a case 'scripts/git-submodules.sh update' will always
fail and users are required to run it manually themselves on their original
writable source directory.

While this is already supported, it is nice to give users a command line flag
to configure to permanently disable automatic submodule updates, as it means
they won't get hard to diagnose failures from git-submodules.sh at an arbitrary
later date.

This patch thus introduces a flag '--disable-git-update' which will prevent
'make' from ever running 'scripts/git-submodules.sh update'. It will still run
the 'status' command to determine if a submodule update is needed, but when it
does this it'll simply stop and print a message instructing the developer what
todo. eg

$ ./configure  --target-list=x86_64-softmmu --disable-git-update
...snip...

$ make
  GEN     config-host.h
  GEN     trace/generated-tcg-tracers.h
  GEN     trace/generated-helpers-wrappers.h
  GEN     trace/generated-helpers.h
  GEN     trace/generated-helpers.c
  GEN     module_block.h

GIT submodule checkout is out of date. Please run
  scripts/git-submodule.sh update ui/keycodemapdb
from the source directory checkout /home/berrange/src/virt/qemu

make: *** [Makefile:31: git-submodule-update] Error 1

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-11-06 11:04:36 +00:00
Daniel P. Berrange
96089f6d0e build: don't create temporary files in source dir
There are cases where users do VPATH builds with the source directory being on
a read-only volume. In such a case they have to manually run the command
'git-submodule.sh ...modules...' ahead of time. When checking for status we
should not then write into the source dir.

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-11-06 11:04:30 +00:00
Daniel P. Berrange
cc84d63a42 build: allow setting a custom GIT binary for transparent proxying
Some users can't run a bare 'git' command, due to need for a transparent
proxying solution such as 'tsocks'. This adds an argument to configure to
let users specify such a thing:

  ./configure --with-git="tsocks git"

The submodule script is also updated to give the user a hint about using this
flag, if we fail to checkout modules.

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-11-06 11:03:45 +00:00
Peter Maydell
ec7a8bf0b8 * Remove legacy KVM PCI device assignment
* Fix qemu-pr-helper.c compilation on older compilers
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAln/F6QUHHBib256aW5p
 QHJlZGhhdC5jb20ACgkQv/vSX3jHroM1Nwf/WY/pAgBHX7uST5422O0saVmWLDSf
 knFkm5rLf5OhJ0GXluyk8S4x5lD1sqQfGJPHcr6DCnZHFTznA93UeMa+1IPxYd3X
 gr5J4ANFyHwKZ7jNB/64EuckTMSVyGrbtb4B40FJSyQ3aWvIx09VO7ev4I/Yz89M
 xxbeTM0Y0jNGF87bAnOvZLR42vx6lp/9Z0/mxRMC/CyxHcAk8nCbwh9NhzA4OnPg
 bj2c+pGRa4NCbdK7JE7FgwnM7MQGGiIULuQRf45le1Ybt60fAS/S9kdgqFXNnlyJ
 8MB5Y2IEyarEDu6h6h/CFA2Dvo4PSfktEyICL0QZXtSFZE0kbKvrQxWWyg==
 =1CGc
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging

* Remove legacy KVM PCI device assignment
* Fix qemu-pr-helper.c compilation on older compilers

# gpg: Signature made Sun 05 Nov 2017 13:52:36 GMT
# gpg:                using RSA key 0xBFFBD25F78C7AE83
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>"
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* remotes/bonzini/tags/for-upstream:
  build: disable -Wmissing-braces on older compilers
  pci-assign: Remove

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-06 10:04:16 +00:00
Paolo Bonzini
20bc94a2b8 build: disable -Wmissing-braces on older compilers
GCC 4.9 and newer stopped warning for missing braces around the
"universal" C zero initializer {0}.  One such initializer sneaked
into scsi/qemu-pr-helper.c and is breaking the build with such
older GCC versions.

Detect the lack of support for the idiom, and disable the warning
in that case.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2017-11-05 14:52:10 +01:00
Paolo Bonzini
ab37bfc7d6 pci-assign: Remove
Legacy PCI device assignment has been removed from Linux in 4.12,
and had been deprecated 2 years ago there.  We can remove it from
QEMU as well.

The ROM loading code was shared with Xen PCI passthrough, so move
it to hw/xen.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2017-11-05 14:52:10 +01:00
Peter Maydell
b33afc4156 One fix for win32/64 cross compiles.
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJZ+wfCAAoJEPvQ2wlanipEW7QH/2acWM0OysndgO7fJFEoCL6L
 uqC8H52nrBESeqzz9JJHVimv73bl5Uogo9gdvB2aoaVpyq4dTl5LP72WVlvx1YsX
 Nxpagf5ilEzRGbneHQtkItIRDEQzJm/76J8bX5dd2gqz572g8OavOr1Thr7FTw1m
 vun+zY5Heujq81XLLScK2Ig2WbI72Zj4KJ8AdwhtvL8H0GbehULhKFiDNhHd9Z8r
 Hy79V9U4nG0bBFQqqithJn2uqvlNY+2seSZRyJg/+42mX3Irxn3gwLeE5BUGOyPw
 6/XjR6m1aoew5OIUqMXeyPZhH680ZqssuYRS2f5afVeAgCYjWaV+KLmPqDVxvBs=
 =bQLe
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/stsquad/tags/pull-ci-updates-for-softfreeze-021117-2' into staging

One fix for win32/64 cross compiles.

# gpg: Signature made Thu 02 Nov 2017 11:55:46 GMT
# gpg:                using RSA key 0xFBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>"
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8  DF35 FBD0 DB09 5A9E 2A44

* remotes/stsquad/tags/pull-ci-updates-for-softfreeze-021117-2:
  docker: add python stdlib dependency (required by keycodemapdb)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-03 10:08:34 +00:00
Peter Maydell
9c4da1fa2b Queued tcg patches
-----BEGIN PGP SIGNATURE-----
 
 iQEcBAABAgAGBQJZ/CrmAAoJEGTfOOivfiFfUP4IALDxb3kXUGYELNfQR8+P1Bnk
 x4p5dbDCfyIvMFGIngbjaCYlv/sMIcY780yQLZN0W+hUfr7//2kRemzNPoGWpY1p
 w/tsKzKn/EIpXoKruD12q5qUL6ceIabwuUdDQ5Ezc4tTAz/Nd1kiMA1IA+7i3Gfb
 E9F/0LbG+wXSTD87A7T754dsSLSszL0RaFwx6nJYxk876CjKv9mjJAPlmA23PKTa
 W8Qsk4+Ou5mP0/jyxBEQ4KAgY+LE2maP///diPuZKy7iQbhWwogga7VX1ek/o+4T
 74J1ye/5SSeISGJpIW18PmR0Vcf44eqz1aMavvFRwIw8Wr6bHQ9mcQlpakWjuWo=
 =ncG6
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20171103' into staging

Queued tcg patches

# gpg: Signature made Fri 03 Nov 2017 08:37:58 GMT
# gpg:                using RSA key 0x64DF38E8AF7E215F
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>"
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F

* remotes/rth/tags/pull-tcg-20171103:
  cpu-exec: Exit exclusive region on longjmp from step_atomic
  tcg/s390x: Use constant pool for prologue
  tcg: Allow constant pool entries in the prologue

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-03 09:31:34 +00:00
Peter Maydell
426eeecdf5 cpu-exec: Exit exclusive region on longjmp from step_atomic
Commit ac03ee5331 narrowed the scope of the exclusive
region so it only covers when we're executing the TB, not when
we're generating it. However it missed that there is more than
one execution path out of cpu_tb_exec -- if the atomic insn
causes an exception then the code will longjmp out, skipping
the code to end the exclusive region. This causes QEMU to hang
the next time the CPU calls start_exclusive(), waiting for
itself to exit the region.

Move the "end the region" code out to the end of the
function so that it is run for both normal exit and also
for exit-via-longjmp. We have to use a volatile bool flag
to decide whether we need to end the region, because we
can longjump out of the codegen as well as the execution.

(For some reason this only reproduces for me with a clang
optimized build, not a gcc debug build.)

Reviewed-by: Emilio G. Cota <cota@braap.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Fixes: ac03ee5331
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <1509640536-32160-1-git-send-email-peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2017-11-03 09:34:21 +01:00
Richard Henderson
ba2c747992 tcg/s390x: Use constant pool for prologue
Rather than have separate code only used for guest_base,
rely on a recent change to handle constant pool entries.

Cc: qemu-s390x@nongnu.org
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2017-11-03 09:33:45 +01:00
Richard Henderson
5b38ee3161 tcg: Allow constant pool entries in the prologue
Both ARMv6 and AArch64 currently may drop complex guest_base values
into the constant pool.  But generic code wasn't expecting that, and
the pool is not emitted.  Correct that.

Tested-by: Emilio G. Cota <cota@braap.org>
Tested-by: Laurent Desnogues <laurent.desnogues@gmail.com>
Reported-by: Laurent Desnogues <laurent.desnogues@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2017-11-03 09:33:45 +01:00
Kamil Rytarowski
094611b426 oslib-posix: Use sysctl(2) call to resolve exec_dir on NetBSD
NetBSD 8.0(beta) ships with KERN_PROC_PATHNAME in sysctl(2).
Older NetBSD versions can use argv[0] parsing fallback.

This code section is partly shared with FreeBSD.

Signed-off-by: Kamil Rytarowski <n54@gmx.com>
Message-id: 20171028194833.23858-1-n54@gmx.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-11-02 16:19:34 +00:00