Commit Graph

68953 Commits

Author SHA1 Message Date
Laszlo Ersek
174404af92 tests/uefi-test-tools/build.sh: work around TianoCore#1607
The edk2-stabe201903 release introduced Python3 support to edk2's
BaseTools; however the Python3 enablement breaks in a corner case (which
is nevertheless supported by the edk2 community), namely the in-module
parallelization that we utilize.

This is tracked under
<https://bugzilla.tianocore.org/show_bug.cgi?id=1607>. For now, work
around the issue (in advance) by forcing Python2. (The workaround is a
no-op before we move to edk2-stabe201903 in the roms/edk2 submodule.)

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17 15:38:35 +02:00
Laszlo Ersek
461de3c560 roms/edk2-funcs.sh: require gcc-4.8+ for building i386 and x86_64
Adapt the qemu_edk2_get_toolchain() function in "roms/edk2-funcs.sh" in
advance to edk2 commit 8d7cdfae8cb8 ("OvmfPkg: require GCC48 or later",
2019-01-08), which is part of the "edk2-stable201903" tag.

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17 15:38:35 +02:00
Laszlo Ersek
65a109ab4b roms: lift "edk2-funcs.sh" from "tests/uefi-test-tools/build.sh"
Extract the dense logic for architecture and toolchain massaging from
"tests/uefi-test-tools/build.sh", to a set of small functions. We'll reuse
these functions for building full platform firmware images.

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17 15:38:35 +02:00
Peter Maydell
eeba63fc7f Update version for v4.0.0-rc4 release
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-16 21:53:00 +01:00
Daniel P. Berrangé
375cb86d9f usb-mtp: fix bounds check for guest provided filename
The ObjectInfo struct has a variable length array containing the UTF-16
encoded filename. The number of characters of trailing data is given by
the 'length' field in the struct and this must be validated against the
size of the data packet received from the guest.

Since the data is UTF-16, we must convert the byte count we have to a
character count before validating. This must take care to truncate if
a malicious guest sent an odd number of bytes.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Bandan Das <bsd@redhat.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-16 20:43:39 +01:00
Peter Maydell
dbfc49b69a Block layer patches:
- qcow2: Fix potential corruption for preallocated resize with external data file
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJcteVnAAoJEH8JsnLIjy/WNxMP/1Vca3Ws2lt/lHDqvyQtwbfu
 L0ZAEyZBonoVzxSRgtSj+ZDfgKKTCECDtCAB1mDxFK3GfbvlCDGf20UvOKeDXtLX
 nMfllTnvPOk1lveKjTu82r0aOOnnfaZF6fbJkaV214zipXXQIB1x3J724n+/0kvI
 AlYpgOtskNnAIYAL233IIuktvVJiPJsvsdKGhswcCVSmMcXZ9N+/1wd9sWIdxglW
 YpmkOBZfZRIG6T52ZNXLoeCZdSLpozPJPmAvUbfBdcevOjT2ljQ9Sk+j87mv0SWg
 Bk+Nc7aCC61SPlkjc2A1KtJi68rP6zTFyXMkjC9tXLPf6bMSJVTY8Xv8x8lgscf5
 9xIUhnJHNgILASI6KvJuHjrn0HU4ck4L5k1M3FMrQ/LbnI4wHPHmp4HGLxh/9NnU
 M70uUwVyWgZfFh20D6HvY7bA9Wv5JA3vh9EFwZMn/ZNyKqnAPyIl/DttILgjDEmM
 WItok/l3ri1wXFlaCIWrwm++LJhKFlnyJTfbuHZ96xWYil7cc111ler+WM0h+PFD
 cxsakE1efpOfbBcVNeLzDwNpt1AkxsUQbnTh37dICR7WbqbuXpcmXTb5xK3yYK2P
 WiQRnBZuKk8oGjhBpYtWt/yW5V8hZrZTRNO8u73vz5p+PnPsZFgiVYt2UXnQaPzy
 bKgnpYfa+GrGR/TexOQu
 =ezFB
 -----END PGP SIGNATURE-----

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

Block layer patches:

- qcow2: Fix potential corruption for preallocated resize with external data file

# gpg: Signature made Tue 16 Apr 2019 15:23:35 BST
# gpg:                using RSA key 7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* remotes/kevin/tags/for-upstream:
  qcow2: Fix preallocation bdrv_pwrite to wrong file

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-16 15:33:38 +01:00
Kevin Wolf
93e32b3e20 qcow2: Fix preallocation bdrv_pwrite to wrong file
With an external data file, preallocate_co() must write the final byte
to the external data file, not to the qcow2 image file.

This is harmless for preallocation of newly created images (only the
qcow2 file size is increased to the virtual disk size while it should be
much smaller), but with preallocated resize, it could in theory cause
visible corruption if the metadata of the image is larger than the data
(e.g. lots of bitmaps).

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-04-16 16:23:24 +02:00
Marc-André Lureau
a9b305ba29 socket: allow wait=false for client socket
Commit 767abe7 ("chardev: forbid 'wait' option with client sockets")
is a bit too strict. Current libvirt always set wait=false, and will
thus fail to add client chardev.

Make the code more permissive, allowing wait=false with client socket
chardevs. Deprecate usage of 'wait' with client sockets.

Fixes: 767abe7f49
Cc: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-id: 20190415163337.2795-1-marcandre.lureau@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-16 10:40:43 +01:00
Peter Maydell
677746b39f Slirp updates
Dr. David Alan Gilbert (1):
   slirp: Gcc 9 -O3 fix
 -----BEGIN PGP SIGNATURE-----
 
 iQIyBAABCgAdFiEE5h27FdQXK97JfpLZ21UOifD6VPMFAly0x/MACgkQ21UOifD6
 VPOLBQ/3UNeMla5djuv7ZnsQdGUoaRbZiHRIIFm5S30tpX7DozRd/Wtx9Cyt2+/w
 GsfnNR+7b+rtzfYFqaBlU5RTsd6pqThX9ODcZ/80ecOn8RCgdjeipH7sZpj9wYne
 xjO+23SpWmKgnO798JmJou9w/URX4tmp9tqZJF1722BAbcgd48vIlztHl0gAaypP
 bytSvTmxuTmERLsuKJ6NbrEVM3W19upHEeUuCj3wmB50oU3WCoUcIkolfd7WUQ8D
 lMjkATFMa8lC0+feIo7ICNOeD/9Z9vRn+ffmPj9+Gt8aLI/8akzxIIYNGBKcnT2C
 ERkQFAOlZ34a39xcWMqJOOWFUonM+nEYrw3Fg6CHEREXuRMOp3fV1kKS+xq4jUf+
 miRxqw5jEcPYyxATfYFYcfIXSaKGSlaQ4UGjVANNUN8tLC1FKod5xD3KfDxik+3o
 SeLXrPRNrkHcj1OcpHNzL+mhnMvu9reLWiV/VccmgN6YAugPm19R7r3bLqbcCIkT
 jWzT2/AFg+L+ShAHyZVwbFeepI1CYx2ZstAmpX2VYYg4l7IUfozoOG8SwEn31MI9
 yQ9ZUfe4v8mPIzEMnZlgF9w6gclSfxSR3lKOB1TWnRGgyLIo0GAphQieWNajzM8g
 rUM+b8FGJWlXoLBT2nMOq0Va3zUiqeRTG2iyypBA7aASmYpmdw==
 =qwoq
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into staging

Slirp updates

Dr. David Alan Gilbert (1):
  slirp: Gcc 9 -O3 fix

# gpg: Signature made Mon 15 Apr 2019 19:05:39 BST
# gpg:                using RSA key E61DBB15D4172BDEC97E92D9DB550E89F0FA54F3
# gpg: Good signature from "Samuel Thibault <samuel.thibault@aquilenet.fr>" [unknown]
# gpg:                 aka "Samuel Thibault <sthibault@debian.org>" [marginal]
# gpg:                 aka "Samuel Thibault <samuel.thibault@gnu.org>" [unknown]
# gpg:                 aka "Samuel Thibault <samuel.thibault@inria.fr>" [marginal]
# gpg:                 aka "Samuel Thibault <samuel.thibault@labri.fr>" [marginal]
# gpg:                 aka "Samuel Thibault <samuel.thibault@ens-lyon.org>" [marginal]
# gpg:                 aka "Samuel Thibault <samuel.thibault@u-bordeaux.fr>" [unknown]
# 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: 900C B024 B679 31D4 0F82  304B D017 8C76 7D06 9EE6
#      Subkey fingerprint: E61D BB15 D417 2BDE C97E  92D9 DB55 0E89 F0FA 54F3

* remotes/thibault/tags/samuel-thibault:
  slirp: Gcc 9 -O3 fix

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-16 09:27:35 +01:00
Dr. David Alan Gilbert
6fabae61a9 slirp: Gcc 9 -O3 fix
Gcc 9 needs some convincing that sopreprbuf really is going to fill
in iov in the call from soreadbuf, even though the failure case
shouldn't happen.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20190415121740.9881-1-dgilbert@redhat.com>
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
2019-04-15 20:01:18 +02:00
Peter Maydell
afccfc0c4c Block layer patches:
- iotests fixes
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJcsLb5AAoJEH8JsnLIjy/WtTIQAJBiNOGPVQoenGjxUhacFLB2
 Lylqif8kc0OXemhyiu6V36HCQbUH6+QY1NyjStiJXfzd9yMLyRpOFPhnZpfOZJuh
 xNeln6GxmSDyD5d+NlfVVvJylDzk13mV/s3RkTkw0VW7FwygfMWH4h7pa8jJT/b6
 dFdvBZB/+GhhYUVquxiNSYgIQ5KwK/oovZQnkeq//KVSf2wdHq9i7dvIT4BIXj5Z
 aINQlk48OBmlGmevMzhS99AKZpAz2j4zGVagrwj9dCrkDc29d1TOw75UcPTLw0OS
 2FqhHI+P435+O5VTQxEVW0sx5C5N8FNkjsA0E33XkgdSLHZSFWuyG73H8HtjwCkB
 BuQ3G+JQ5AexvCWdz+zBaE/aKbmcopasXcpzV+DxXVBXmj6Gx7rMvKY8RYiBwZWc
 oIPUCPc2vwKgnx3KPnAAJoKbhpiEhiXPQam20rIoySyzuEDHOQN/kiDQQB+b+PPK
 aYkdWHknkurG+ioUq1F5OwCw5cOw1AKbVNmtRFKD59wBQB/G/gDGgtlWhEALFMyf
 0ZpKaH+c+QJPbaMagCMgwPJ8DgKLb6yJGLwmK/M2CbIYW/2bVMel65YRT67Z+l2H
 Va0vxFqMeVkSRcezUAAXbxMaaLHa9AMQV1V+KAXguYPa7Uqz7p05d9N88r7q87Ui
 FNE+xchmUSdS695h0Gkl
 =46wR
 -----END PGP SIGNATURE-----

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

Block layer patches:

- iotests fixes

# gpg: Signature made Fri 12 Apr 2019 17:04:09 BST
# gpg:                using RSA key 7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* remotes/kevin/tags/for-upstream:
  iotest: Fix 241 to run in generic directory
  iotests: Let 245 pass on tmpfs

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-12 17:06:49 +01:00
Eric Blake
9749636b00 iotest: Fix 241 to run in generic directory
Filter the qemu-nbd server output to get rid of a direct reference
to my build directory.

Fixes: e9dce9cb
Reported-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2019-04-12 18:03:01 +02:00
Max Reitz
23e1d05411 iotests: Let 245 pass on tmpfs
tmpfs does not support O_DIRECT.  Detect this case, and skip flipping
@direct if the filesystem does not support it.

Fixes: bf3e50f623
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2019-04-12 18:03:01 +02:00
John Snow
13c24edaa7 qemu-img: fix .hx and .texi disparity
It turns out that having options listed in three places continues to be
a bad idea. I'm still toying with the idea of an improved infrastructure
here, but in the meantime, another bandaid.

There are three locations:
(1) .hx file, formatted as texi
(2) .hx file, formatted as human readable.
(3) .texi file, as section headers, formatted as texi.

You can compare the two summaries within the .hx file like so:

Human-readable command summaries:
`./qemu-img --help | grep 'Command syntax' -A14`
Detokenized texi command summaries:
`grep "@item" qemu-img-cmds.hx | sed -E 's|@var\{([^\}]*?)\}|\1|g'`

You can compare the two separate texi summaries like so:

Texi command summaries:
`grep "@item" qemu-img-cmds.hx"`
Texi command headers:
grep -E "@item.*@var" qemu-img.texi | tail -14

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 20190409210655.777-1-jsnow@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-12 14:17:10 +01:00
Gerd Hoffmann
e1be98540e curses: fix wchar_t printf warning
On some systems wchar_t is "long int", on others just "int".
So go cast to "long int" and adjust the printf format accordingly.

Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190402073018.17747-1-kraxel@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-12 12:58:00 +01:00
Thomas Huth
4a33fac546 pc-bios/s390: Update firmware images
s390-ccw.img contains support for booting from vfio-ccw dasd passthrough
devices now, and s390-netboot.img is updated since there were changes
to the code that is shared between s390-ccw.img and s390-netboot.img.

Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
2880469c95 s390-bios: Use control unit type to find bootable devices
When the user does not specify which device to boot from then we end
up guessing. Instead of simply grabbing the first available device let's
be a little bit smarter and only choose devices that might be bootable
like disk, and not console devices.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Message-Id: <1554388475-18329-17-git-send-email-jjherne@linux.ibm.com>
[thuth: Added fix for virtio_is_supported() not being called anymore]
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
efa47d36da s390-bios: Support booting from real dasd device
Allows guest to boot from a vfio configured real dasd device.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <1554388475-18329-16-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
69333c36dc s390-bios: Add channel command codes/structs needed for dasd-ipl
The dasd IPL procedure needs to execute a few previously unused
channel commands. Let's define them and their associated data
structures.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1554388475-18329-15-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
3668cb7ce8 s390-bios: Use control unit type to determine boot method
The boot method is different depending on which device type we are
booting from. Let's examine the control unit type to determine if we're
a virtio device. We'll eventually add a case to check for a real dasd device
here as well.

Since we have to call enable_subchannel() in main now, might as well
remove that call from virtio.c : run_ccw(). This requires adding some
additional enable_subchannel calls to not break calls to
virtio_is_supported().

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1554388475-18329-14-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
9de6cbb152 s390-bios: Refactor virtio to run channel programs via cio
Now that we have a Channel I/O library let's modify virtio boot code to
make use of it for running channel programs.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1554388475-18329-13-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
7b361db37b s390-bios: Factor finding boot device out of virtio code path
Make a new routine find_boot_device to locate the boot device for all
cases, not just virtio.

The error message for the case where no boot device has been specified
and a suitable boot device cannot be auto detected was specific to
virtio devices. We update this message to remove virtio specific wording.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Farhan Ali <alifm@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <1554388475-18329-12-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
930072d2bf s390-bios: Extend find_dev() for non-virtio devices
We need a method for finding the subchannel of a dasd device. Let's
modify find_dev to handle this since it mostly does what we need. Up to
this point find_dev has been specific to only virtio devices.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Acked-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <1554388475-18329-11-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
86c58705bb s390-bios: cio error handling
Add verbose error output for when unexpected i/o errors happen. This eases the
burden of debugging and reporting i/o errors. No error information is printed
in the success case, here is an example of what is output on error:

cio device error
  ssid  : 0x0000000000000000
  cssid : 0x0000000000000000
  sch_no: 0x0000000000000000

Interrupt Response Block Data:
    Function Ctrl : [Start]
    Activity Ctrl : [Start-Pending]
    Status Ctrl : [Alert] [Primary] [Secondary] [Status-Pending]
    Device Status : [Unit-Check]
    Channel Status :
    cpa=: 0x000000007f8d6038
    prev_ccw=: 0x0000000000000000
    this_ccw=: 0x0000000000000000
Eckd Dasd Sense Data (fmt 32-bytes):
    Sense Condition Flags :
    Residual Count     =: 0x0000000000000000
    Phys Drive ID      =: 0x000000000000009e
    low cyl address    =: 0x0000000000000000
    head addr & hi cyl =: 0x0000000000000000
    format/message     =: 0x0000000000000008
    fmt-dependent[0-7] =: 0x0000000000000004
    fmt-dependent[8-15]=: 0xe561282305082fff
    prog action code   =: 0x0000000000000016
    Configuration info =: 0x00000000000040e0
    mcode / hi-cyl     =: 0x0000000000000000
    cyl & head addr [0]=: 0x0000000000000000
    cyl & head addr [1]=: 0x0000000000000000
    cyl & head addr [2]=: 0x0000000000000000

The Sense Data section is currently only printed for ECKD DASD.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <1554388475-18329-10-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
3083a1bbb8 s390-bios: Support for running format-0/1 channel programs
Introduce a library function for executing format-0 and format-1
channel programs and waiting for their completion before continuing
execution.

Add cu_type() to channel io library. This will be used to query control
unit type which is used to determine if we are booting a virtio device or a
real dasd device.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Farhan Ali <alifm@linux.ibm.com>
Message-Id: <1554388475-18329-9-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
1fb3e5cde8 s390-bios: ptr2u32 and u32toptr
Introduce inline functions to convert between pointers and unsigned 32-bit
ints. These are used to hide the ugliness required to  avoid compiler
warnings.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1554388475-18329-8-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
c95df3d108 s390-bios: Map low core memory
Create a new header for basic architecture specific definitions and add a
mapping of low core memory. This mapping will be used by the real dasd boot
process.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1554388475-18329-7-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
120d04103e s390-bios: Decouple channel i/o logic from virtio
Create a separate library for channel i/o related code. This decouples
channel i/o operations from virtio and allows us to make use of them for
the real dasd boot path.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1554388475-18329-6-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
d96c5db77f s390-bios: Clean up cio.h
Add proper typedefs to all structs and modify all bit fields to use consistent
formatting.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Farhan Ali <alifm@linux.ibm.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1554388475-18329-5-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
a5f6e0975b s390-bios: decouple common boot logic from virtio
Create a boot_setup function to handle getting boot information from
the machine/hypervisor. This decouples common boot logic from the
virtio code path and allows us to make use of it for the real dasd boot
scenario.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Acked-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Reviewed-by: Collin Walling <walling@linux.ibm.com
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Farhan Ali <alifm@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <1554388475-18329-4-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
87f910c142 s390-bios: decouple cio setup from virtio
Move channel i/o setup code out to a separate function. This decouples cio
setup from the virtio code path and allows us to make use of it for booting
dasd devices.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Acked-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Reviewed-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Farhan Ali <alifm@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <1554388475-18329-3-git-send-email-jjherne@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:40:35 +02:00
Jason J. Herne
44445d8668 s390 vfio-ccw: Add bootindex property and IPLB data
Add bootindex property and iplb data for vfio-ccw devices. This allows us to
forward boot information into the bios for vfio-ccw devices.

Refactor s390_get_ccw_device() to return device type. This prevents us from
having to use messy casting logic in several places.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Acked-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1554388475-18329-2-git-send-email-jjherne@linux.ibm.com>
[thuth: fixed "typedef struct VFIOCCWDevice" build failure with clang]
Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-04-12 12:39:52 +02:00
Peter Maydell
9e4a484b4a ppc patch queue for 2018-04-12
Here's a last minute pull request for 4.0.  Turns out my last pull
 request, to fix a regression in extended config space access for the
 pseries machine didn't fix things hard enough.  This PR has a single
 patch which improves the fix to work in more cases.
 
 It's a ghastly, ghastly hack, but it's simple and localized.  I
 already have patches almost ready to go in 4.1 that provides a simpler
 and cleaner solution to all this.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEdfRlhq5hpmzETofcbDjKyiDZs5IFAlywI1gACgkQbDjKyiDZ
 s5JDchAAy5LBsVDPH3W/X3Btbrfmk8aY92pWbfZZBfCKVTRYD2HrQ9bqUgK8rDXe
 TIPhVLhZsZdxJX6aAMRgymeO8vDdoksSmldGSQe9nBrnywgwoWBMEC4P5anVNGQv
 8SSZBuhBaea3lBk8mF2vgJsP9QiLtQvHy/l9lTDaUSVNgws3fqGf5/YBjx7h6E+R
 aUdgTvlDvPkm14vZN7W1bkpGYk3J74rVo6qu91zRD9hKzHTuFnRxZE4EQpOKvaNa
 Tq8we05kfKdct5JoJXj+NvsT77lgynyt0AXT/TGtRdS2cgZ3JtHq2ZD/93dBMS/d
 A5fNClEQ45XW/0dLMzzTN4xP3yII5N4mY78kB58L5PNezxCa+7MvxW/2QEHFskyi
 MaWXN/2Dchx9cBvQuueulpaQHUiAYpFVIG9S0OPxG/SDdyqo929F2Z/P152scp3a
 ChG9JKVgXtp3JHMWlBPFdOPJhNhtUN9HiqTrydbVka1rMJyAU+8hXpo96BvPZGdf
 oH+nEqoDiJLGHp930esQ0F7wTQbSaIF+nEVkF8Q71NLDELnpTBMOc02TLhLocuqJ
 cwlDHkw+LN+h+gdzxKtOMMVmL3MG47zsgvY8pgqKItP5i7k3gqEq4lUc75P6Athe
 ULVHYQukowD4ns5ngBPZXZyv0zq7EAa8xoT/FAMx92UcNdshqKg=
 =sN2O
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-4.0-20190412' into staging

ppc patch queue for 2018-04-12

Here's a last minute pull request for 4.0.  Turns out my last pull
request, to fix a regression in extended config space access for the
pseries machine didn't fix things hard enough.  This PR has a single
patch which improves the fix to work in more cases.

It's a ghastly, ghastly hack, but it's simple and localized.  I
already have patches almost ready to go in 4.1 that provides a simpler
and cleaner solution to all this.

# gpg: Signature made Fri 12 Apr 2019 06:34:16 BST
# gpg:                using RSA key 75F46586AE61A66CC44E87DC6C38CACA20D9B392
# gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>" [full]
# gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>" [full]
# gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>" [full]
# gpg:                 aka "David Gibson (kernel.org) <dwg@kernel.org>" [unknown]
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-4.0-20190412:
  spapr_pci: Fix broken naming of PCI bus

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-12 11:23:14 +01:00
Greg Kurz
4560116e42 spapr_pci: Fix broken naming of PCI bus
Recent commit 5cf0d326a0 fixed a regression which was preventing the
guest to access the extended config space of a PCIe device. This was
done by introducing a new PCI bus subtype for PAPR. The original fix
was causing PCI busses to be named "spapr-pci-host-bridge-root-bus.N"
instead of "pci.N", which was making upper layers unhappy of course.
This got worked around by hardcoding the PCI bus name to "pci.0", but
this only works for the default PHB. And we're now hitting:

# qemu-system-ppc64 \
             -device spapr-pci-host-bridge,index=1 \
             -device e1000e,bus=pci.0 \
             -device e1000e,bus=pci.1
qemu-system-ppc64: -device e1000e,bus=pci.1: Bus 'pci.1' not found

David already posted some patches [1] to control PCI extended config
space accesses with a new flag in the base PCI bus class instead of
subtyping. These patches are a bit more intrusive though, and
are targetted for 4.1.

When no name is passed to pci_register_bus(), the core device code
generates a lowercase name based on the QOM typename. The typename
for the base PCI bus class is "PCI", hence the "pci.0", "pci.1"
bus names. Rename the type of the PAPR PCI bus to "pci", so that
the QOM code can generate proper names. This is a hack but it is
enough to fix the regression. And all this will be reworked properly
in 4.1.

[1] https://patchwork.ozlabs.org/project/qemu-devel/list/?series=100486

Fixes: 5cf0d326a0
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <155500034416.646888.1307366522340665522.stgit@bahia.lab.toulouse-stg.fr.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-04-12 12:23:02 +10:00
Peter Maydell
532cc6da74 Update version for v4.0.0-rc3 release
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-10 15:38:59 +01:00
Peter Maydell
6523516f32 Single device tree fix for 4.0
A single patch to avoid an overflow when loading device trees.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEE9sSsRtSTSGjTuM6PIeENKd+XcFQFAlytMDAACgkQIeENKd+X
 cFRsGwf/ZdJ+HKAClxK2oFb2Z6bk1kqb1zbeJ1rQlSHD7r9CHnVCs3DBqnY7Oilw
 4VGhZiMdS6zCDRb+g+rKBFpfRU3XTygKYTr9na+ADpLcSGeLZlwbbDDFvABvKPpx
 4MDVemNRCyaHHdJeZpRxTlALUFBeNCRQWGtUcCp1BP/xjRQc1IbMj/6gEi7rSD13
 y7zFVfwLM7QiJpQHTw9VBAgCtLVfRPP7S27Ey+CnKwf97kqLsLspZw0nXfNgm9sk
 vrZ1XWcYDO/5BusYo9Kcdie8C1ykiSGMtJax5DFnOhNjK9A8tIx70v24dL5mQMJg
 HKzHuXeX4wdL0L12+fBRsL1wAZDtfg==
 =6l+a
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/alistair/tags/pull-device-tree-20190409-1' into staging

Single device tree fix for 4.0

A single patch to avoid an overflow when loading device trees.

# gpg: Signature made Wed 10 Apr 2019 00:52:16 BST
# gpg:                using RSA key F6C4AC46D4934868D3B8CE8F21E10D29DF977054
# gpg: Good signature from "Alistair Francis <alistair@alistair23.me>" [full]
# Primary key fingerprint: F6C4 AC46 D493 4868 D3B8  CE8F 21E1 0D29 DF97 7054

* remotes/alistair/tags/pull-device-tree-20190409-1:
  device_tree: Fix integer overflowing in load_device_tree()

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-10 08:57:19 +01:00
Markus Armbruster
065e6298a7 device_tree: Fix integer overflowing in load_device_tree()
If the value of get_image_size() exceeds INT_MAX / 2 - 10000, the
computation of @dt_size overflows to a negative number, which then
gets converted to a very large size_t for g_malloc0() and
load_image_size().  In the (fortunately improbable) case g_malloc0()
succeeds and load_image_size() survives, we'd assign the negative
number to *sizep.  What that would do to the callers I can't say, but
it's unlikely to be good.

Fix by rejecting images whose size would overflow.

Reported-by: Kurtis Miller <kurtis.miller@nccgroup.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20190409174018.25798-1-armbru@redhat.com>
2019-04-09 16:35:40 -07:00
Peter Maydell
f151f8aca5 migration/ram.c: Fix use-after-free in multifd_recv_unfill_packet()
Coverity points out (CID 1400442) that in this code:

    if (packet->pages_alloc > p->pages->allocated) {
        multifd_pages_clear(p->pages);
        multifd_pages_init(packet->pages_alloc);
    }

we free p->pages in multifd_pages_clear() but continue to
use it in the following code. We also leak memory, because
multifd_pages_init() returns the pointer to a new MultiFDPages_t
struct but we are ignoring its return value.

Fix both of these bugs by adding the missing assignment of
the newly created struct to p->pages.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Message-id: 20190409151830.6024-1-peter.maydell@linaro.org
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-04-09 20:46:34 +01:00
Peter Maydell
4b9a21c344 * fixes for Alpine and SuSE
* fix crash when hot-plugging nvdimm on older machine types
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQEcBAABAgAGBQJcrMmTAAoJEL/70l94x66DrZYH/jHgRDg+8OucuAdobG5UAaMR
 24doCVFvblyjYvB1+GPw3lsU7B1BOQ7ihPGmAGV5hEhZIequYfM8aC2Fm5ZvHEwv
 rFtMiau5hYcLSkG6iQvNeEsUajZoD5tJJ4X437R5kr4IdvL2DIRrhGFEsAHi/obf
 9ZV5klaT3A87CEO9dIG22Or8e/qRcVUN3LKQ2ZZAv6Ij05g7nf+mwtolKbFUTtG4
 xxog0T05fREQXFmjLWEwl2QyCF11/dVOBeYwwRdppd8a43avBoi24lOc4NKa+KXs
 WWOkWK7EPgXVQ99TVmuoIvt4mJNGChl8ubfPPUK7SykO2iuLqv4CE9PlCJK27IE=
 =FfJt
 -----END PGP SIGNATURE-----

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

* fixes for Alpine and SuSE
* fix crash when hot-plugging nvdimm on older machine types

# gpg: Signature made Tue 09 Apr 2019 17:34:27 BST
# gpg:                using RSA key BFFBD25F78C7AE83
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
# 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:
  tests: Make check-block a phony target
  hw/i386/pc: Fix crash when hot-plugging nvdimm on older machine types
  include/qemu/bswap.h: Use __builtin_memcpy() in accessor functions
  roms: Allow passing configure options to the EDK2 build tools
  roms: Rename the EFIROM variable to avoid clashing with iPXE

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-09 17:36:01 +01:00
Markus Armbruster
3e20c81ed8 tests: Make check-block a phony target
Fixes: b93b63f574 "test makefile overhaul"

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190319072104.32591-1-armbru@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-04-09 18:34:21 +02:00
Thomas Huth
ae909496e9 hw/i386/pc: Fix crash when hot-plugging nvdimm on older machine types
QEMU currently crashes when you try to hot-plug an "nvdimm" device
on older machine types:

$ qemu-system-x86_64 -monitor stdio -M pc-1.1
QEMU 3.1.92 monitor - type 'help' for more information
(qemu) device_add nvdimm,id=nvdimmn1
qemu-system-x86_64: /home/thuth/devel/qemu/util/error.c:57: error_setv:
 Assertion `*errp == ((void *)0)' failed.
Aborted (core dumped)

The call to hotplug_handler_pre_plug() in pc_memory_pre_plug() has been
added recently before the check whether nvdimm is enabled. It should
be done after the check. And while we're at it, also check the errp
after the hotplug_handler_pre_plug(), otherwise errors are silently
ignored here.

Fixes: 9040e6dfa8
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190407092314.11066-1-thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-04-09 18:34:21 +02:00
Peter Maydell
77b1757090 include/qemu/bswap.h: Use __builtin_memcpy() in accessor functions
In the accessor functions ld*_he_p() and st*_he_p() we use memcpy()
to perform a load or store to a pointer which might not be aligned
for the size of the type. We rely on the compiler to optimize this
memcpy() into an efficient load or store instruction where possible.
This is required for good performance, but at the moment it is also
required for correct operation, because some users of these functions
require that the access is atomic if the pointer is aligned, which
will only be the case if the compiler has optimized out the memcpy().
(The particular example where we discovered this is the virtio
vring_avail_idx() which calls virtio_lduw_phys_cached() which
eventually ends up calling lduw_he_p().)

Unfortunately some compile environments, such as the fortify-source
setup used in Alpine Linux, define memcpy() to a wrapper function
in a way that inhibits this compiler optimization.

The correct long-term fix here is to add a set of functions for
doing atomic accesses into AddressSpaces (and to other relevant
families of accessor functions like the virtio_*_phys_cached()
ones), and make sure that callsites which want atomic behaviour
use the correct functions.

In the meantime, switch to using __builtin_memcpy() in the
bswap.h accessor functions. This will make us robust against things
like this fortify library in the short term. In the longer term
it will mean that we don't end up with these functions being really
badly-performing even if the semantics of the out-of-line memcpy()
are correct.

Reported-by: Fernando Casas Schössow <casasfernando@outlook.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20190318112938.8298-1-peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-04-09 18:34:21 +02:00
Philippe Mathieu-Daudé
1cab464136 roms: Allow passing configure options to the EDK2 build tools
Since commit f590a812c2 we build the EDK2 EfiRom utility
unconditionally.

Some distributions require to use extra compiler/linker flags,
i.e. SUSE which enforces the PIE protection (see [*]).

EDK2 build tools already provide a set of variables for that,
use them to allow the caller to easily inject compiler/linker
options..

Now build scripts can pass extra options, example:

  $ make -C roms \
      EDK2_BASETOOLS_OPTFLAGS='-fPIE' \
      efirom

[*] https://lists.opensuse.org/opensuse-factory/2017-06/msg00403.html

Reported-by: Olaf Hering <olaf@aepfle.de>
Suggested-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20190409134536.15548-3-philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-04-09 18:33:55 +02:00
Philippe Mathieu-Daudé
d912e795e0 roms: Rename the EFIROM variable to avoid clashing with iPXE
The iPXE's 'veryclean' recipe removes $(EFIROM) even if the EFIROM
macro originates from elsewhere:

  $ git checkout f590a812c21~
  $ make -C roms clean EFIROM=$(type -P EfiRom)
  make: Entering directory '/source/qemu/roms'
  [...]
  make -C ipxe/src veryclean
  make[1]: Entering directory '/source/qemu/roms/ipxe/src'
  rm -f bin{,-*}/*.* bin{,-*}/.certificate.* bin{,-*}/.certificates.* bin{,-*}/.private_key.* bin{,-*}/errors bin{,-*}/NIC ./util/zbin ./util/elf2efi32 ./util/elf2efi64 /usr/bin/EfiRom ./util/efifatbin ./util/iccfix ./util/einfo TAGS bin{,-*}/symtab
  rm: cannot remove '/usr/bin/EfiRom': Permission denied
  make[1]: *** [Makefile.housekeeping:1564: clean] Error 1
  make[1]: Leaving directory '/source/qemu/roms/ipxe/src'
  make: *** [Makefile:152: clean] Error 2
  make: Leaving directory '/source/qemu/roms'

Before f590a812c2 this variable could be overridden or unset,
and the 'veryclean' Makefile rule would not complain.

Commit f590a812c2 enforces this variable to the Intel EfiRom
tool provided by the EDK2 project.

To avoid the name clash and make the difference between the
projects obvious, rename the variable used by the EDK2 project
as EDK2_EFIROM.

Fixes: f590a812c2
Reported-by: Olaf Hering <olaf@aepfle.de>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20190409134536.15548-2-philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-04-09 18:33:45 +02:00
Peter Maydell
8cb2ca3d74 target/i386: Generate #UD for LOCK on a register increment
Fix a TCG crash due to attempting an atomic increment
operation without having set up the address first.
This is a similar case to that dealt with in commit
e84fcd7f66, and we fix it in the same way.

Fixes: https://bugs.launchpad.net/qemu/+bug/1807675
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20190328104750.25046-1-peter.maydell@linaro.org
2019-04-09 13:29:32 +01:00
Peter Maydell
120cba7ff1 ppc patch queue 2019-04-09
This is a small, hard freeze, pull request which fixes a regression on
 the pseries machine handling of PCI-E extended config space accesses.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEdfRlhq5hpmzETofcbDjKyiDZs5IFAlysQxQACgkQbDjKyiDZ
 s5KZkxAAgVi1n2oBroYnXwqJoalm5WYntJhkKBzmQqLFaOFqnhK7110eQ/Vyc2OZ
 rn9QUODczxuUH0McdW3McfXa0J/ZHP9sZhmtl06okfVodT8Yx3UXq11pYFzRbhrx
 SWpCzgWK04SfDsKxak5d9uah/p6vOkmojCLI8+s0npb4uv3hBpOScQ3OCrwyqvZL
 R4715SiqV2T2J4BBhBpsXNE4NRFKuA3AQlKDqt15iWHpKkk11NMscXP+n5cKsIUl
 ZXcjSByYNhAGHUCMZvK1Oht64+FSnkZg1Z7l3SWvLT5wxyHHvfuFBAxlSysveqvE
 7quWpoHsjMn2sgyolUM4PY2IdEFmgnxBN4nYJVxhAQmgRteIAa8ybT/yYEJA9gx2
 Dyl7D5eBW9SAwEfETa8Ilf0JqHeWwZcs7hY8za/si+CQ9syCI/TMI6PYpUY7PUqx
 UjeyilcmFfzloS5Ex9GYFYQVICJ1EEczUZbTJgIcSizjJFNyi7tgAofEydrGon9e
 98HMCz9MIlOzINNf0gleS5UsaKnQGQtusPuplN8/9kAhhgEMYLCwFgHyNJb8BmFa
 SBy4m18P5idDC+ljh7bQ043RJwrY4+JDO6+7z/lU19Im7ZYz9EZuIHGobmWf0jg0
 AQSuR7PLbG92NwYHjTU/JDSNomLM+B+QOfr/Qg81cQ08w/41oPo=
 =56np
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-4.0-20190409' into staging

ppc patch queue 2019-04-09

This is a small, hard freeze, pull request which fixes a regression on
the pseries machine handling of PCI-E extended config space accesses.

# gpg: Signature made Tue 09 Apr 2019 08:00:36 BST
# gpg:                using RSA key 75F46586AE61A66CC44E87DC6C38CACA20D9B392
# gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>" [full]
# gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>" [full]
# gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>" [full]
# gpg:                 aka "David Gibson (kernel.org) <dwg@kernel.org>" [unknown]
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-4.0-20190409:
  spapr_pci: Fix extended config space accesses
  pci: Allow PCI bus subtypes to support extended config space accesses

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-09 12:58:50 +01:00
Peter Maydell
248987f92c fix gettid() clash with new glibc
-----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJcq6KmAAoJEPMMOL0/L748fAkP/1YcBpk93iLN3/IBNby0LhGZ
 V0TVUEN6cDeGb409ejqszRaJYg83gwNpBFbZnpkP57DbcRf200Iyvi2hwCYGAckh
 otGSSQP/fj/FNZkj7D/TkzitYj3sM1aOA3w9G6fKd6Z3htrY9R2Xitv9/vsDAoDN
 QUh0U6ysjuRmLKPPM63yJQjvMnTWSAy6tvWmbLwcJ6Uf8BKOnxZsPQPWiT/pJRjb
 smCjTa4pJ6tcpQnjd/Uxmbxa9TO8aqkqnLm3WXSXtMEx0TG+XwoX6Y67bUG9Fjll
 wPhxashHp+b0jL2jqFE26ac5siKUwlRXNqeJKTy6d9pP9bcMskbCFgL18hPj549s
 SQDz5zKMnbxoIQaK744cbBN2pikhxG2VNMahyDn+nOsBmqO9we8eiD8cmNLpDIi+
 lGtnYY3imLVBeCxb1kGM/iiDiKKq6cY0W8nwIyYNYbWy+3CuSYYGfxTjs2tI0Rvx
 iOgaqtpGdNB1gme+P8U/I85EhIMTarEdKWJ900T2NdbKUr9Z/3sj8lBBq/aTHJxH
 ARYCm5G9G5WdO3ELiKj1ys4hgyHsrhad6sn1dOyahz/IDP008TJ3YsFTxZyji5Nq
 3Ajgs865L7mne630Gg06oWjk/BreeT6r4uIKKv936LNy8N6NE+QLPlBHYxDfc7Qa
 ZeeXPN2yqTP0fuoc+z4l
 =EX4I
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-4.0-pull-request' into staging

fix gettid() clash with new glibc

# gpg: Signature made Mon 08 Apr 2019 20:36:06 BST
# gpg:                using RSA key F30C38BD3F2FBE3C
# gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [full]
# gpg:                 aka "Laurent Vivier <laurent@vivier.eu>" [full]
# gpg:                 aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" [full]
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C

* remotes/vivier2/tags/linux-user-for-4.0-pull-request:
  linux-user: rename gettid() to sys_gettid() to avoid clash with glibc
  linux-user: assume __NR_gettid always exists

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-09 10:02:30 +01:00
Greg Kurz
5cf0d326a0 spapr_pci: Fix extended config space accesses
The PAPR PHB acts as a legacy PCI bus but it allows PCIe extended
config space accesses anyway (for pseries-2.9 and newer machine
types).

Introduce a specific PCI bus subtype to inform the common PCI code
about that.

Fixes: c2077e2ca0
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <155414130834.574858.16502276132110219890.stgit@bahia.lan>
[dwg: Apply fix so we don't rename the default pci bus, breaking everything]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-04-09 15:03:10 +10:00
Greg Kurz
1c685a9026 pci: Allow PCI bus subtypes to support extended config space accesses
Some PHB implementations, eg. PAPR used on pseries machine, act like
a regular PCI bus rather than a PCIe bus, but allow access to the
PCIe extended config space anyway.

Introduce a new PCI bus class method to modelize this behaviour and
use it when adjusting the config space size limit during accesses.

No behaviour change for existing PCI bus types.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <155414130271.574858.4253514266378127489.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-04-09 09:14:47 +10:00
Peter Maydell
7fe1427b57 nbd patches for 2019-04-08
- Fix minor issues in recent alignment patches
 -----BEGIN PGP SIGNATURE-----
 
 iQEcBAABCAAGBQJcq5i8AAoJEKeha0olJ0NqYnwH/ijn04VFDiJs2UJ/Xbc8xIof
 QcwwTB1GaHGxkptmWPndJgtApqJEKCpoY7lMWLEfoulthNLydv5IUwqjWNUrBYL+
 c76oItDlrCZYfR6DJMKtGceANOW4avBBdh1SCYHSw+DTwg5vq5zv1uGkrSsRYWe6
 5w3Qb3I9M/7F/Y/2bLzHe8SanVRYoLk+ouVo22wIj59LBYKrQ0oRa04k1kDhJ6Qv
 HWtkRUSEMfd6WuV3P8n93MDSNii7CNw9gr5tWCH5bxPv4evNhukd6eyE0EMTso0C
 Mmby+rjdlzSLi5KJbvke6c4HQ1geQyrdrt4KKj4AOKioZRc9FmjuuctXqwfZTx4=
 =HeBS
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2019-04-08' into staging

nbd patches for 2019-04-08

- Fix minor issues in recent alignment patches

# gpg: Signature made Mon 08 Apr 2019 19:53:48 BST
# gpg:                using RSA key A7A16B4A2527436A
# gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full]
# gpg:                 aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full]
# gpg:                 aka "[jpeg image of size 6874]" [full]
# Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A

* remotes/ericb/tags/pull-nbd-2019-04-08:
  nbd/client: Fix error message for server with unusable sizing
  nbd/server: Don't fail NBD_OPT_INFO for byte-aligned sources
  nbd/server: Trace client noncompliance on unaligned requests
  nbd/server: Fix blockstatus trace

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-08 20:10:21 +01:00