qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 77c763: pc-bios/s390-ccw: Remove duplicate bl


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 77c763: pc-bios/s390-ccw: Remove duplicate blk_factor adju...
Date: Tue, 30 May 2017 10:18:00 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 77c76392b0e3c613730ef5932348c3156c3de60f
      
https://github.com/qemu/qemu/commit/77c76392b0e3c613730ef5932348c3156c3de60f
  Author: Eric Farman <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M pc-bios/s390-ccw/virtio-scsi.c

  Log Message:
  -----------
  pc-bios/s390-ccw: Remove duplicate blk_factor adjustment

When using virtio-scsi, we multiply the READ(10) data_size by
a block factor twice when building the I/O.  This is fine,
since it's only 1 for SCSI disks, but let's clean it up.

Signed-off-by: Eric Farman <address@hidden>
Reviewed-by: Christian Borntraeger <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 98d3c524359fda04337c8369b617f2d5ef37bf5f
      
https://github.com/qemu/qemu/commit/98d3c524359fda04337c8369b617f2d5ef37bf5f
  Author: Eric Farman <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M pc-bios/s390-ccw/virtio-scsi.c

  Log Message:
  -----------
  pc-bios/s390-ccw: Move SCSI block factor to outer read

Simple refactoring so that the blk_factor adjustment is
moved into virtio_scsi_read_many routine, in preparation
for another change.

Signed-off-by: Eric Farman <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 5ffd4a3c2d75db3ed31752d0936f96719ee0257b
      
https://github.com/qemu/qemu/commit/5ffd4a3c2d75db3ed31752d0936f96719ee0257b
  Author: Eric Farman <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M pc-bios/s390-ccw/s390-ccw.h
    M pc-bios/s390-ccw/virtio-scsi.c

  Log Message:
  -----------
  pc-bios/s390-ccw: Break up virtio-scsi read into multiples

A virtio-scsi request that goes through the host sd driver and exceeds
the maximum transfer size is automatically broken up for us.  But the
equivalent request going to the sg driver presumes that any length
requirements have already been honored.

Let's use the max_sectors field on the virtio-scsi controller device,
and break up all requests (both sd and sg) to avoid this problem.

Signed-off-by: Eric Farman <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 9c12359c577c61ed23f07f7f379434cab2aa1ab2
      
https://github.com/qemu/qemu/commit/9c12359c577c61ed23f07f7f379434cab2aa1ab2
  Author: Eric Farman <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M pc-bios/s390-ccw/scsi.h
    M pc-bios/s390-ccw/virtio-scsi.c

  Log Message:
  -----------
  pc-bios/s390-ccw: Refactor scsi_inquiry function

If we want to issue any of the SCSI Inquiry EVPD pages,
which we do, we could use this function to issue both types
of commands with a little bit of refactoring.

Signed-off-by: Eric Farman <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 8edfe85bef669d676ad17cd84b4e3dce43b110e4
      
https://github.com/qemu/qemu/commit/8edfe85bef669d676ad17cd84b4e3dce43b110e4
  Author: Eric Farman <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M pc-bios/s390-ccw/scsi.h
    M pc-bios/s390-ccw/virtio-scsi.c

  Log Message:
  -----------
  pc-bios/s390-ccw: Get list of supported VPD pages

The "Supported Pages" Inquiry EVPD page is mandatory for all SCSI devices,
and is used as a gateway for what VPD pages the device actually supports.
Let's issue this Inquiry, and dump that list with the debug facility.

Signed-off-by: Eric Farman <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: fe921fc8b7e92020bb140079a9f47f14fb8e9075
      
https://github.com/qemu/qemu/commit/fe921fc8b7e92020bb140079a9f47f14fb8e9075
  Author: Eric Farman <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M pc-bios/s390-ccw/scsi.h
    M pc-bios/s390-ccw/virtio-scsi.c
    M pc-bios/s390-ccw/virtio.h

  Log Message:
  -----------
  pc-bios/s390-ccw: Get Block Limits VPD device data

The "Block Limits" Inquiry VPD page is optional for any SCSI device,
but if it's supported it provides a hint of the maximum I/O transfer
length for this particular device. If this page is supported by the
disk, let's issue that Inquiry and use the minimum of it and the
SCSI controller limit. That will cover this scenario:

  qemu-system-s390x ...
    -device virtio-scsi-ccw,id=scsi0,max_sectors=32768 ...
    -drive file=/dev/sda,if=none,id=drive0,format=raw ...
    -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,
      drive=drive0,id=disk0,max_io_size=1048576

controller: 32768 sectors x 512 bytes/sector = 16777216 bytes
      disk:                                     1048576 bytes

Now that we have a limit for a virtio-scsi disk, compare that with the
limit for the virtio-scsi controller when we actually build the I/O.
The minimum of these two limits should be the one we use.

Signed-off-by: Eric Farman <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: de4e3ae408ad29ca820ae68e09976e14d80289a6
      
https://github.com/qemu/qemu/commit/de4e3ae408ad29ca820ae68e09976e14d80289a6
  Author: Eric Farman <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M pc-bios/s390-ccw/virtio-scsi.c
    M pc-bios/s390-ccw/virtio-scsi.h

  Log Message:
  -----------
  pc-bios/s390-ccw: Build a reasonable max_sectors limit

Now that we've read all the possible limits that have been defined for
a virtio-scsi controller and the disk we're booting from, it's possible
that we are STILL going to exceed the limits of the host device.
For example, a "-device scsi-generic" device does not support the
Block Limits VPD page.

So, let's fallback to something that seems to work for most boot
configurations if larger values were specified (including if nothing
was explicitly specified, and we took default values).

Signed-off-by: Eric Farman <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: f881bbdf72178166e88fdd8cc8b40e1812efb53c
      
https://github.com/qemu/qemu/commit/f881bbdf72178166e88fdd8cc8b40e1812efb53c
  Author: Eric Farman <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M pc-bios/s390-ccw.img

  Log Message:
  -----------
  pc-bios/s390-ccw.img: rebuild image

Contains the following commits:
- pc-bios/s390-ccw: Remove duplicate blk_factor adjustment
- pc-bios/s390-ccw: Move SCSI block factor to outer read
- pc-bios/s390-ccw: Break up virtio-scsi read into multiples
- pc-bios/s390-ccw: Refactor scsi_inquiry function
- pc-bios/s390-ccw: Get list of supported EVPD pages
- pc-bios/s390-ccw: Get Block Limits VPD device data
- pc-bios/s390-ccw: Build a reasonable max_sectors limit

Signed-off-by: Eric Farman <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 74c98e20a604b9db58284b8727688df70e9bf643
      
https://github.com/qemu/qemu/commit/74c98e20a604b9db58284b8727688df70e9bf643
  Author: Cornelia Huck <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M include/standard-headers/asm-x86/hyperv.h
    M include/standard-headers/linux/input-event-codes.h
    M include/standard-headers/linux/input.h
    M include/standard-headers/linux/pci_regs.h
    M linux-headers/asm-arm/kvm.h
    M linux-headers/asm-arm/unistd-common.h
    M linux-headers/asm-arm64/kvm.h
    M linux-headers/asm-powerpc/kvm.h
    M linux-headers/asm-powerpc/unistd.h
    M linux-headers/asm-s390/kvm.h
    M linux-headers/asm-s390/unistd.h
    M linux-headers/asm-x86/kvm.h
    M linux-headers/asm-x86/unistd_32.h
    M linux-headers/asm-x86/unistd_64.h
    M linux-headers/asm-x86/unistd_x32.h
    M linux-headers/linux/kvm.h
    M linux-headers/linux/userfaultfd.h
    M linux-headers/linux/vfio.h
    A linux-headers/linux/vfio_ccw.h
    M scripts/update-linux-headers.sh

  Log Message:
  -----------
  linux-headers: update

Update against Linux v4.12-rc1.

Also include the new vfio_ccw.h header.

Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 274250c30158f60aefb46088a7bb0d711061226c
      
https://github.com/qemu/qemu/commit/274250c30158f60aefb46088a7bb0d711061226c
  Author: Xiao Feng Ren <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M hw/s390x/s390-virtio-ccw.c
    M include/hw/s390x/s390-virtio-ccw.h
    M qemu-options.hx
    M target/s390x/cpu.h

  Log Message:
  -----------
  s390x/css: add s390-squash-mcss machine option

We want to support real (i.e. not virtual) channel devices
even for guests that do not support MCSS-E (where guests may
see devices from any channel subsystem image at once). As all
virtio-ccw devices are in css 0xfe (and show up in the default
css 0 for guests not activating MCSS-E), we need an option to
squash both the virtio subchannels and e.g. passed-through
subchannels from their real css (0-3, or 0 for hosts not
activating MCSS-E) into the default css. This will be
exploited in a later patch.

Signed-off-by: Xiao Feng Ren <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 8f3cf0128cbac1ac19be8515dc184edb88dd5fb1
      
https://github.com/qemu/qemu/commit/8f3cf0128cbac1ac19be8515dc184edb88dd5fb1
  Author: Xiao Feng Ren <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M hw/s390x/css.c
    M include/hw/s390x/css.h

  Log Message:
  -----------
  s390x/css: realize css_sch_build_schib

The S390 virtual css support already has a mechanism to build a
virtual subchannel information block (schib) and provide virtual
subchannels to the guest. However, to pass-through subchannels to
a guest, we need to introduce a new mechanism to build its schib
according to the real device information. Thus we realize a new css
sch_build_schib function to extract the path_masks, chpids, chpid
type from sysfs. To reuse the existing code, we refactor
css_add_virtual_chpid to css_add_chpid.

Reviewed-by: Pierre Morel <address@hidden>
Signed-off-by: Xiao Feng Ren <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 817d4a6bc8bc6c2ad57ffdbab1a33c9b930ddde4
      
https://github.com/qemu/qemu/commit/817d4a6bc8bc6c2ad57ffdbab1a33c9b930ddde4
  Author: Dong Jia Shi <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M hw/s390x/3270-ccw.c
    M hw/s390x/css-bridge.c
    M hw/s390x/css.c
    M hw/s390x/s390-virtio-ccw.c
    M hw/s390x/virtio-ccw.c
    M include/hw/s390x/css-bridge.h
    M include/hw/s390x/css.h

  Log Message:
  -----------
  s390x/css: realize css_create_sch

The S390 virtual css support already has a mechanism to create a
virtual subchannel and provide it to the guest. However, to
pass-through subchannels to a guest, we need to introduce a new
mechanism to create the subchannel according to the real device
information. Thus we reconstruct css_create_virtual_sch to a new
css_create_sch function to handle all these cases and do allocation
and initialization of the subchannel according to the device type
and machine configuration.

Reviewed-by: Pierre Morel <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: a8eac9431ad060012348908f93d6421ae3c97300
      
https://github.com/qemu/qemu/commit/a8eac9431ad060012348908f93d6421ae3c97300
  Author: Dong Jia Shi <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M hw/s390x/Makefile.objs
    A hw/s390x/s390-ccw.c
    A include/hw/s390x/s390-ccw.h

  Log Message:
  -----------
  s390x/css: device support for s390-ccw passthrough

In order to support subchannels pass-through, we introduce a s390
subchannel device called "s390-ccw" to hold the real subchannel info.
The s390-ccw devices inherit from the abstract CcwDevice which connect
to the existing virtual-css-bus.

Reviewed-by: Eric Auger <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 1dcac3e15263674bb9c84feed6b35bb1f7bc1c6b
      
https://github.com/qemu/qemu/commit/1dcac3e15263674bb9c84feed6b35bb1f7bc1c6b
  Author: Xiao Feng Ren <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M default-configs/s390x-softmmu.mak
    M hw/vfio/Makefile.objs
    A hw/vfio/ccw.c
    M include/hw/vfio/vfio-common.h

  Log Message:
  -----------
  vfio/ccw: vfio based subchannel passthrough driver

We use the IOMMU_TYPE1 of VFIO to realize the subchannels
passthrough, implement a vfio based subchannels passthrough
driver called "vfio-ccw".

Support qemu parameters in the style of:
"-device vfio-ccw,sysfsdev=$mdev_file_path,devno=xx.x.xxxx'

Reviewed-by: Eric Auger <address@hidden>
Acked-by: Alex Williamson <address@hidden>
Signed-off-by: Xiao Feng Ren <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: c14e706ce9a4354c803e8f64bd12148831f888a3
      
https://github.com/qemu/qemu/commit/c14e706ce9a4354c803e8f64bd12148831f888a3
  Author: Dong Jia Shi <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M hw/vfio/ccw.c

  Log Message:
  -----------
  vfio/ccw: get io region info

vfio-ccw provides an MMIO region for I/O operations. We fetch its
information via ioctls here, then we can use it performing I/O
instructions and retrieving I/O results later on.

Reviewed-by: Eric Auger <address@hidden>
Acked-by: Alex Williamson <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 4886b3e9f00683324c0368b1dec8acb964f4a439
      
https://github.com/qemu/qemu/commit/4886b3e9f00683324c0368b1dec8acb964f4a439
  Author: Dong Jia Shi <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M hw/vfio/ccw.c

  Log Message:
  -----------
  vfio/ccw: get irqs info and set the eventfd fd

vfio-ccw resorts to the eventfd mechanism to communicate with userspace.
We fetch the irqs info via the ioctl VFIO_DEVICE_GET_IRQ_INFO,
register a event notifier to get the eventfd fd which is sent
to kernel via the ioctl VFIO_DEVICE_SET_IRQS, then we can implement
read operation once kernel sends the signal.

Reviewed-by: Eric Auger <address@hidden>
Acked-by: Alex Williamson <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 8ca2b376b47fff58f7ab6f16d86a66d4af3a2be2
      
https://github.com/qemu/qemu/commit/8ca2b376b47fff58f7ab6f16d86a66d4af3a2be2
  Author: Xiao Feng Ren <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M hw/s390x/css.c
    M hw/vfio/ccw.c
    M include/hw/s390x/css.h
    M include/hw/s390x/s390-ccw.h

  Log Message:
  -----------
  s390x/css: introduce and realize ccw-request callback

Introduce a new callback on subchannel to handle ccw-request.
Realize the callback in vfio-ccw device. Besides, resort to
the event notifier handler to handling the ccw-request results.
1. Pread the I/O results via MMIO region.
2. Update the scsw info to guest.
3. Inject an I/O interrupt to notify guest the I/O result.

Acked-by: Alex Williamson <address@hidden>
Signed-off-by: Xiao Feng Ren <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: bab482d7405f9fe3cac9c213d60f9ca9442c047b
      
https://github.com/qemu/qemu/commit/bab482d7405f9fe3cac9c213d60f9ca9442c047b
  Author: Xiao Feng Ren <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M hw/s390x/css.c
    M hw/s390x/s390-ccw.c
    M hw/s390x/virtio-ccw.c
    M include/hw/s390x/css.h
    M target/s390x/ioinst.c

  Log Message:
  -----------
  s390x/css: ccw translation infrastructure

Implement a basic infrastructure of handling channel I/O instruction
interception for passed through subchannels:
1. Branch the code path of instruction interception handling by
   SubChannel type.
2. For a passed-through subchannel, issue the ORB to kernel to do ccw
   translation and perform an I/O operation.
3. Assign different condition code based on the I/O result, or
   trigger a program check.

Signed-off-by: Xiao Feng Ren <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 334e76850bbbdc977656cc8a77ce101af00ba13d
      
https://github.com/qemu/qemu/commit/334e76850bbbdc977656cc8a77ce101af00ba13d
  Author: Dong Jia Shi <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M hw/vfio/ccw.c

  Log Message:
  -----------
  vfio/ccw: update sense data if a unit check is pending

Concurrent-sense data is currently not delivered. This patch stores
the concurrent-sense data to the subchannel if a unit check is pending
and the concurrent-sense bit is enabled. Then a TSCH can retreive the
right IRB data back to the guest.

Acked-by: Alex Williamson <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 5eb74557cdbac602117fa2d30e08a76b82fb0301
      
https://github.com/qemu/qemu/commit/5eb74557cdbac602117fa2d30e08a76b82fb0301
  Author: Dong Jia Shi <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: Add vfio-ccw maintainer

Add Cornelia Huck as the vfio-ccw maintainer.

Acked-by: Alex Williamson <address@hidden>
Signed-off-by: Dong Jia Shi <address@hidden>
Message-Id: <address@hidden>
[CH: add tree]
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: cb4f4bc3535f554daa3266aaa447843949a68193
      
https://github.com/qemu/qemu/commit/cb4f4bc3535f554daa3266aaa447843949a68193
  Author: Christian Borntraeger <address@hidden>
  Date:   2017-05-19 (Fri, 19 May 2017)

  Changed paths:
    M target/s390x/cpu.c
    M target/s390x/cpu.h

  Log Message:
  -----------
  s390/kvm: do not reset riccb on initial cpu reset

The riccb is kept unchanged during initial cpu reset. Move the data
structure to the other registers that are unchanged.

Signed-off-by: Christian Borntraeger <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: c6ff347c8078bb86f75d38955641cb73e9d5b309
      
https://github.com/qemu/qemu/commit/c6ff347c8078bb86f75d38955641cb73e9d5b309
  Author: Igor Mammedov <address@hidden>
  Date:   2017-05-22 (Mon, 22 May 2017)

  Changed paths:
    M hw/core/machine.c

  Log Message:
  -----------
  numa: Silence incomplete mapping warning under qtest

Silence "make check" warnings triggered by the numa/mon/cpus/partial
test case.

Suggested-by: Markus Armbruster <address@hidden>
Signed-off-by: Igor Mammedov <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: fe2f74af2b153719fa545ffa7e7a33342d9c928b
      
https://github.com/qemu/qemu/commit/fe2f74af2b153719fa545ffa7e7a33342d9c928b
  Author: Greg Kurz <address@hidden>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M scripts/qmp/qom-set

  Log Message:
  -----------
  scripts/qmp/qom-set: fix the value argument passed to srv.command()

When invoking the script with -s, we end up passing a bogus value
to QEMU:

$ ./scripts/qmp/qom-set -s /var/tmp/qmp-sock-exp /machine.accel kvm
{}
$ ./scripts/qmp/qom-get -s /var/tmp/qmp-sock-exp /machine.accel
/var/tmp/qmp-sock-exp

This happens because sys.argv[2] isn't necessarily the command line
argument that holds the value. It is sys.argv[4] when -s was also
passed.

Actually, the code already has a variable to handle that. This patch
simply uses it.

Signed-off-by: Greg Kurz <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: fc0f005958ac2cba0d1b081733e19ef055d59636
      
https://github.com/qemu/qemu/commit/fc0f005958ac2cba0d1b081733e19ef055d59636
  Author: Markus Armbruster <address@hidden>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M util/qemu-sockets.c

  Log Message:
  -----------
  sockets: Plug memory leak in socket_address_flatten()

socket_address_flatten() leaks a SocketAddress when its argument is
null.  Happens when opening a ChardevBackend of type 'udp' that is
configured without a local address.  Screwed up in commit bd269ebc due
to last minute semantic conflict resolution.  Spotted by Coverity.

Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: 7af88279e4972dd6bf735b620876d54b7a355c4d
      
https://github.com/qemu/qemu/commit/7af88279e4972dd6bf735b620876d54b7a355c4d
  Author: Eric Blake <address@hidden>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M vl.c

  Log Message:
  -----------
  shutdown: Simplify shutdown_signal

There is no signal 0 (kill(pid, 0) has special semantics to probe whether
a process is alive), rather than actually sending a signal 0).  So we
can use the simpler 0, instead of -1, for our sentinel of whether a
shutdown request due to a signal has happened.

Suggested-by: Markus Armbruster <address@hidden>
Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: aedbe19297907143f17b733a7ff0e0534377bed1
      
https://github.com/qemu/qemu/commit/aedbe19297907143f17b733a7ff0e0534377bed1
  Author: Eric Blake <address@hidden>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M hw/i386/xen/xen-hvm.c
    M include/sysemu/sysemu.h
    M migration/colo.c
    M migration/savevm.c
    M vl.c

  Log Message:
  -----------
  shutdown: Prepare for use of an enum in reset/shutdown_request

We want to track why a guest was shutdown; in particular, being able
to tell the difference between a guest request (such as ACPI request)
and host request (such as SIGINT) will prove useful to libvirt.
Since all requests eventually end up changing shutdown_requested in
vl.c, the logical change is to make that value track the reason,
rather than its current 0/1 contents.

Since command-line options control whether a reset request is turned
into a shutdown request instead, the same treatment is given to
reset_requested.

This patch adds an internal enum ShutdownCause that describes reasons
that a shutdown can be requested, and changes qemu_system_reset() to
pass the reason through, although for now nothing is actually changed
with regards to what gets reported.  The enum could be exported via
QAPI at a later date, if deemed necessary, but for now, there has not
been a request to expose that much detail to end clients.

For the most part, we turn 0 into SHUTDOWN_CAUSE_NONE, and 1 into
SHUTDOWN_CAUSE_HOST_ERROR; the only specific case where we have enough
information right now to use a different value is when we are reacting
to a host signal.  It will take a further patch to edit all call-sites
that can trigger a reset or shutdown request to properly pass in any
other reasons; this patch includes TODOs to point such places out.

qemu_system_reset() trades its 'bool report' parameter for a
'ShutdownCause reason', with all non-zero values having the same
effect; this lets us get rid of the weird #defines for VMRESET_*
as synonyms for bools.

Signed-off-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: 802f045a5f61b781df55e4492d896b4d20503ba7
      
https://github.com/qemu/qemu/commit/802f045a5f61b781df55e4492d896b4d20503ba7
  Author: Eric Blake <address@hidden>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M include/sysemu/replay.h
    M replay/replay-internal.h
    M replay/replay.c
    M vl.c

  Log Message:
  -----------
  shutdown: Preserve shutdown cause through replay

With the recent addition of ShutdownCause, we want to be able to pass
a cause through any shutdown request, and then faithfully replay that
cause when later replaying the same sequence.  The easiest way is to
expand the reply event mechanism to track a series of values for
EVENT_SHUTDOWN, one corresponding to each value of ShutdownCause.

We are free to change the replay stream as needed, since there are
already no guarantees about being able to use a replay stream by
any other version of qemu than the one that generated it.

The cause is not actually fed back until the next patch changes the
signature for requesting a shutdown; a TODO marks that upcoming change.

Yes, this uses the gcc/clang extension of a ranged case label,
but this is not the first time we've used non-C99 constructs.

Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: cf83f140059f21d4629ae4b61d468c3baef2bb4c
      
https://github.com/qemu/qemu/commit/cf83f140059f21d4629ae4b61d468c3baef2bb4c
  Author: Eric Blake <address@hidden>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M hw/acpi/core.c
    M hw/arm/highbank.c
    M hw/arm/integratorcp.c
    M hw/arm/musicpal.c
    M hw/arm/omap1.c
    M hw/arm/omap2.c
    M hw/arm/spitz.c
    M hw/arm/stellaris.c
    M hw/arm/tosa.c
    M hw/i386/pc.c
    M hw/i386/xen/xen-hvm.c
    M hw/input/pckbd.c
    M hw/ipmi/ipmi.c
    M hw/isa/lpc_ich9.c
    M hw/mips/boston.c
    M hw/mips/mips_malta.c
    M hw/mips/mips_r4k.c
    M hw/misc/arm_sysctl.c
    M hw/misc/cbus.c
    M hw/misc/macio/cuda.c
    M hw/misc/slavio_misc.c
    M hw/misc/zynq_slcr.c
    M hw/pci-host/apb.c
    M hw/pci-host/bonito.c
    M hw/pci-host/piix.c
    M hw/ppc/e500.c
    M hw/ppc/mpc8544_guts.c
    M hw/ppc/ppc.c
    M hw/ppc/ppc405_uc.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_rtas.c
    M hw/s390x/ipl.c
    M hw/sh4/r2d.c
    M hw/timer/etraxfs_timer.c
    M hw/timer/m48t59.c
    M hw/timer/milkymist-sysctl.c
    M hw/timer/pxa2xx_timer.c
    M hw/watchdog/watchdog.c
    M hw/xenpv/xen_domainbuild.c
    M hw/xtensa/xtfpga.c
    M include/sysemu/sysemu.h
    M kvm-all.c
    M os-win32.c
    M qmp.c
    M replay/replay.c
    M target/alpha/sys_helper.c
    M target/arm/psci.c
    M target/i386/excp_helper.c
    M target/i386/hax-all.c
    M target/i386/helper.c
    M target/i386/kvm.c
    M target/s390x/helper.c
    M target/s390x/kvm.c
    M target/s390x/misc_helper.c
    M target/sparc/int32_helper.c
    M trace-events
    M ui/cocoa.m
    M ui/sdl.c
    M ui/sdl2.c
    M vl.c

  Log Message:
  -----------
  shutdown: Add source information to SHUTDOWN and RESET

Time to wire up all the call sites that request a shutdown or
reset to use the enum added in the previous patch.

It would have been less churn to keep the common case with no
arguments as meaning guest-triggered, and only modified the
host-triggered code paths, via a wrapper function, but then we'd
still have to audit that I didn't miss any host-triggered spots;
changing the signature forces us to double-check that I correctly
categorized all callers.

Since command line options can change whether a guest reset request
causes an actual reset vs. a shutdown, it's easy to also add the
information to reset requests.

Signed-off-by: Eric Blake <address@hidden>
Acked-by: David Gibson <address@hidden> [ppc parts]
Reviewed-by: Mark Cave-Ayland <address@hidden> [SPARC part]
Reviewed-by: Cornelia Huck <address@hidden> [s390x parts]
Message-Id: <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: 08fba7ac9b618516a5f1d096f78a7e2837fe0594
      
https://github.com/qemu/qemu/commit/08fba7ac9b618516a5f1d096f78a7e2837fe0594
  Author: Eric Blake <address@hidden>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M include/sysemu/sysemu.h
    M qapi/event.json
    M tests/qemu-iotests/071.out
    M tests/qemu-iotests/081.out
    M tests/qemu-iotests/087.out
    M tests/qemu-iotests/094.out
    M tests/qemu-iotests/117.out
    M tests/qemu-iotests/119.out
    M tests/qemu-iotests/120.out
    M tests/qemu-iotests/140.out
    M tests/qemu-iotests/143.out
    M tests/qemu-iotests/156.out
    M vl.c

  Log Message:
  -----------
  shutdown: Expose bool cause in SHUTDOWN and RESET events

Libvirt would like to be able to distinguish between a SHUTDOWN
event triggered solely by guest request and one triggered by a
SIGTERM or other action on the host.  While qemu_kill_report() was
already able to give different output to stderr based on whether a
shutdown was triggered by a host signal (but NOT by a host UI event,
such as clicking the X on the window), that information was then
lost to management.  The previous patches improved things to use an
enum throughout all callsites, so now we have something ready to
expose through QMP.

Note that for now, the decision was to expose ONLY a boolean,
rather than promoting ShutdownCause to a QAPI enum; this is because
libvirt has not expressed an interest in anything finer-grained.
We can still add additional details, in a backwards-compatible
manner, if a need later arises (if the addition happens before 2.10,
we can replace the bool with an enum; otherwise, the enum will have
to be in addition to the bool); this patch merely adds a helper
shutdown_caused_by_guest() to map the internal enum into the
external boolean.

Update expected iotest outputs to match the new data (complete
coverage of the affected tests is obtained by -raw, -qcow2, and -nbd).

Here is output from 'virsh qemu-monitor-event --loop' with the
patch installed:

event SHUTDOWN at 1492639680.731251 for domain fedora_13: {"guest":true}
event STOP at 1492639680.732116 for domain fedora_13: <null>
event SHUTDOWN at 1492639680.732830 for domain fedora_13: {"guest":false}

Note that libvirt runs qemu with -no-shutdown: the first SHUTDOWN event
was triggered by an action I took directly in the guest (shutdown -h),
at which point qemu stops the vcpus and waits for libvirt to do any
final cleanups; the second SHUTDOWN event is the result of libvirt
sending SIGTERM now that it has completed cleanup.  Libvirt is already
smart enough to only feed the first qemu SHUTDOWN event to the end user
(remember, virsh qemu-monitor-event is a low-level debugging interface
that is explicitly unsupported by libvirt, so it sees things that normal
end users do not); changing qemu to emit SHUTDOWN only once is outside
the scope of this series.

See also https://bugzilla.redhat.com/1384007

Signed-off-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: 579cf1d104ba424654b2093e2555e1c2f12fcffb
      
https://github.com/qemu/qemu/commit/579cf1d104ba424654b2093e2555e1c2f12fcffb
  Author: Eric Blake <address@hidden>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M qemu-img.c
    M qemu-io.c

  Log Message:
  -----------
  block: Use QDict helpers for --force-share

Fam's addition of --force-share in commits 459571f7 and 335e9937
were developed prior to the addition of QDict scalar insertion
macros, but merged after the general cleanup in commit 46f5ac20.
Patch created mechanically by rerunning:

 spatch --sp-file scripts/coccinelle/qobject.cocci \
  --macro-file scripts/cocci-macro-file.h --dir . --in-place

Signed-off-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: 8c1bc1e9d770e7576fc272424dd48eb008ebff39
      
https://github.com/qemu/qemu/commit/8c1bc1e9d770e7576fc272424dd48eb008ebff39
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-05-23 (Tue, 23 May 2017)

  Changed paths:
    M qapi-schema.json

  Log Message:
  -----------
  qapi-schema: Remove obsolete note from ObjectTypeInfo

The "This command is experimental" note in ObjectTypeInfo is obsolete
since 2012.  Commit 5192082097549c5b3aa7c913c6853d97a68172cb removed the
warning from the qom-list-types command documentation, but we forgot to
remove the warning from ObjectTypeInfo.

Signed-off-by: Eduardo Habkost <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: a8b73734219802e226a5444ffd84d07a085edd28
      
https://github.com/qemu/qemu/commit/a8b73734219802e226a5444ffd84d07a085edd28
  Author: Nikunj A Dadhania <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M target/ppc/excp_helper.c

  Log Message:
  -----------
  target/ppc: reset reservation in do_rfi()

For transitioning back to userspace after the interrupt.

Suggested-by: Richard Henderson <address@hidden>
Signed-off-by: Nikunj A Dadhania <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: f63ebfe0ac9efc83ee6d3753e9b3ed7229d8b28a
      
https://github.com/qemu/qemu/commit/f63ebfe0ac9efc83ee6d3753e9b3ed7229d8b28a
  Author: Greg Kurz <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/intc/xics_spapr.c
    M hw/ppc/spapr.c
    M include/hw/ppc/xics.h

  Log Message:
  -----------
  ppc/xics: simplify prototype of xics_spapr_init()

This function only does hypercall and RTAS-call registration, and thus
never returns an error. This patch adapt the prototype to reflect that.

Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 175d2aa038c530d07a8eb5f483c6b1c4b3df43e0
      
https://github.com/qemu/qemu/commit/175d2aa038c530d07a8eb5f483c6b1c4b3df43e0
  Author: Greg Kurz <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: sanitize error handling in spapr_ics_create()

The spapr_ics_create() function handles errors in a rather convoluted
way, with two local Error * variables. Moreover, failing to parent the
ICS object to the machine should be considered as a bug but it is
currently ignored.

This patch addresses both issues.

Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: c8a98293f7fe672fc3b7a3caafede701fbb3180e
      
https://github.com/qemu/qemu/commit/c8a98293f7fe672fc3b7a3caafede701fbb3180e
  Author: Greg Kurz <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/ppc/spapr_cpu_core.c

  Log Message:
  -----------
  spapr-cpu-core: release ICP object when realization fails

While here we introduce a single error path to avoid code duplication.

Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 06ec79e865a4a496e762a83126d00d0ed39205f5
      
https://github.com/qemu/qemu/commit/06ec79e865a4a496e762a83126d00d0ed39205f5
  Author: Bharata B Rao <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_hcall.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr: Consolidate HPT freeing code into a routine

Consolidate the code that frees HPT into a separate routine
spapr_free_hpt() as the same chunk of code is called from two places.

Signed-off-by: Bharata B Rao <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: de86eccc0c836adfa8dbb94848096720177f5ccb
      
https://github.com/qemu/qemu/commit/de86eccc0c836adfa8dbb94848096720177f5ccb
  Author: Greg Kurz <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/intc/xics_kvm.c
    M include/hw/ppc/xics.h

  Log Message:
  -----------
  xics_kvm: cache already enabled vCPU ids

Since commit a45863bda90d ("xics_kvm: Don't enable KVM_CAP_IRQ_XICS if
already enabled"), we were able to re-hotplug a vCPU that had been hot-
unplugged ealier, thanks to a boolean flag in ICPState that we set when
enabling KVM_CAP_IRQ_XICS.

This could work because the lifecycle of all ICPState objects was the
same as the machine. Commit 5bc8d26de20c ("spapr: allocate the ICPState
object from under sPAPRCPUCore") broke this assumption and now we always
pass a freshly allocated ICPState object (ie, with the flag unset) to
icp_kvm_cpu_setup().

This cause re-hotplug to fail with:

Unable to connect CPU8 to kernel XICS: Device or resource busy

Let's fix this by caching all the vCPU ids for which KVM_CAP_IRQ_XICS was
enabled. This also drops the now useless boolean flag from ICPState.

Reported-by: Laurent Vivier <address@hidden>
Signed-off-by: Greg Kurz <address@hidden>
Tested-by: Laurent Vivier <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 07572c0653a60769df406c16136e2cc9234692f5
      
https://github.com/qemu/qemu/commit/07572c0653a60769df406c16136e2cc9234692f5
  Author: Greg Kurz <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: ensure core_slot isn't NULL in spapr_core_unplug()

If we go that far on the path of hot-removing a core and we find out that
the core-id is invalid, then we have a serious bug.

Let's make it explicit with an assert() instead of dereferencing a NULL
pointer.

This fixes Coverity issue CID 1375404.

Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: bff3063837a76b37a4bbbfe614324ca38e859f2b
      
https://github.com/qemu/qemu/commit/bff3063837a76b37a4bbbfe614324ca38e859f2b
  Author: Daniel Henrique Barboza <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/ppc/spapr_events.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  hw/ppc/spapr_events.c: removing 'exception' from sPAPREventLogEntry

Currenty we do not have any RTAS event that is reported by the
event-scan interface. The existing events, RTAS_LOG_TYPE_EPOW and
RTAS_LOG_TYPE_HOTPLUG, are being reported by the check-exception
interface and, as such, marked as 'exception=true'.

Commit 79853e18d9, 'spapr_events: event-scan RTAS interface', added
the event_scan interface because the guest kernel requires it to
initialize other required interfaces. It is acting since then as
a stub because no events that would be reported by it were added
since then. However, the existence of the 'exception' boolean adds
an unnecessary load in the future migration of the pending_events,
sPAPREventLogEntry QTAILQ that hosts the pending RTAS events.

To make the code cleaner and ease the future migration changes, this
patch makes the following changes:

- remove the 'exception' boolean that filter these events. There is
nothing to filter since all events are reported by check-exception;

- functions rtas_event_log_queue, rtas_event_log_dequeue and
rtas_event_log_contains don't receive the 'exception' boolean
as parameter;

- event_scan function was simplified. It was calling
'rtas_event_log_dequeue(mask, false)' that was always returning
'NULL' because we have no events that are created with
exception=false, thus in the end it would execute a jump to
'out_no_events' all the time. The function now assumes that
this will always be the case and all the remaining logic were
deleted.

In the future, when or if we add new RTAS events that should
be reported with the event_scan interface, we can refer to
the changes made in this patch to add the event_scan logic
back.

Signed-off-by: Daniel Henrique Barboza <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 249127d0dfeb2cf5e24d9353b6d54c91c1666ddc
      
https://github.com/qemu/qemu/commit/249127d0dfeb2cf5e24d9353b6d54c91c1666ddc
  Author: Greg Kurz <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/ppc/spapr_cpu_core.c

  Log Message:
  -----------
  spapr_cpu_core: drop reference on ICP object during CPU realization

When a piece of code allocates an object, it implicitely gets a reference
on it. If it then makes that object a child property of another object, it
should drop its own reference at some point otherwise the child object can
never be finalized. The current code hence leaks one ICP object per CPU
when hot-removing a core.

Failing to add a newly allocated ICP object to the CPU is a bug. While here,
let's ensure QEMU aborts if this ever happens.

Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 3d85885a1b1f389d38ae3c71e439635207cfcf4d
      
https://github.com/qemu/qemu/commit/3d85885a1b1f389d38ae3c71e439635207cfcf4d
  Author: Greg Kurz <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: fix error reporting in xics_system_init()

If the user explicitely asked for kernel-irqchip support and "xics-kvm"
initialization fails, we shouldn't fallback to emulated "xics" as we
do now. It is also awkward to print an error message when we have an
errp pointer argument.

Let's use the errp argument to report the error and let the caller decide.
This simplifies the code as we don't need a local Error * here.

Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 80c33d343f068012348869e16e579375c8911a04
      
https://github.com/qemu/qemu/commit/80c33d343f068012348869e16e579375c8911a04
  Author: David Gibson <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/ppc/spapr_hcall.c

  Log Message:
  -----------
  pseries: Split CAS PVR negotiation out into a separate function

Guests of the qemu machine type go through a feature negotiation process
known as "client architecture support" (CAS) during early boot.  This does
a number of things, one of which is finding a CPU compatibility mode which
can be supported by both guest and host.

In fact the CPU negotiation is probably the single most complex part of the
CAS process, so this splits it out into a helper function.  We've recently
made some mistakes in maintaining backward compatibility for old machine
types here.  Splitting this out will also make it easier to fix this.

This also adds a possibly useful error message if the negotiation fails
(i.e. if there isn't a CPU mode that's suitable for both guest and host).

Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>


  Commit: 459264ef24cf2d409b8baf2047fa86e697d6e9ab
      
https://github.com/qemu/qemu/commit/459264ef24cf2d409b8baf2047fa86e697d6e9ab
  Author: David Gibson <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  pseries: Restore support for total vcpus not a multiple of threads-per-core 
for old machine types

As of pseries-2.7 and later, we require the total number of guest vcpus to
be a multiple of the threads-per-core.  pseries-2.6 and earlier machine
types, however, are supposed to allow this for the sake of migration from
old qemu versions which allowed this.

Unfortunately, 8149e29 "pseries: Enforce homogeneous threads-per-core"
broke this by not considering the old machine type case.  This fixes it by
only applying the check when the machine type supports hotpluggable cpus.
By not-entirely-coincidence, that corresponds to the same time when we
started enforcing total threads being a multiple of threads-per-core.

Fixes: 8149e2992f7811355cc34721b79d69d1a3a667dd

Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Tested-by: Greg Kurz <address@hidden>


  Commit: c871bc70bb22d1d70451bc813ecb008fe98cc92b
      
https://github.com/qemu/qemu/commit/c871bc70bb22d1d70451bc813ecb008fe98cc92b
  Author: Laurent Vivier <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: add pre_plug function for memory

This allows to manage errors before the memory
has started to be hotplugged. We already have
the function for the CPU cores.

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
[dwg: Fixed a couple of style nits]
Signed-off-by: David Gibson <address@hidden>


  Commit: e1fe27a208d565bb4f52127e7d9f4fea911e0d94
      
https://github.com/qemu/qemu/commit/e1fe27a208d565bb4f52127e7d9f4fea911e0d94
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M MAINTAINERS
    M default-configs/s390x-softmmu.mak
    M hw/s390x/3270-ccw.c
    M hw/s390x/Makefile.objs
    M hw/s390x/css-bridge.c
    M hw/s390x/css.c
    A hw/s390x/s390-ccw.c
    M hw/s390x/s390-virtio-ccw.c
    M hw/s390x/virtio-ccw.c
    M hw/vfio/Makefile.objs
    A hw/vfio/ccw.c
    M include/hw/s390x/css-bridge.h
    M include/hw/s390x/css.h
    A include/hw/s390x/s390-ccw.h
    M include/hw/s390x/s390-virtio-ccw.h
    M include/hw/vfio/vfio-common.h
    M include/standard-headers/asm-x86/hyperv.h
    M include/standard-headers/linux/input-event-codes.h
    M include/standard-headers/linux/input.h
    M include/standard-headers/linux/pci_regs.h
    M linux-headers/asm-arm/kvm.h
    M linux-headers/asm-arm/unistd-common.h
    M linux-headers/asm-arm64/kvm.h
    M linux-headers/asm-powerpc/kvm.h
    M linux-headers/asm-powerpc/unistd.h
    M linux-headers/asm-s390/kvm.h
    M linux-headers/asm-s390/unistd.h
    M linux-headers/asm-x86/kvm.h
    M linux-headers/asm-x86/unistd_32.h
    M linux-headers/asm-x86/unistd_64.h
    M linux-headers/asm-x86/unistd_x32.h
    M linux-headers/linux/kvm.h
    M linux-headers/linux/userfaultfd.h
    M linux-headers/linux/vfio.h
    A linux-headers/linux/vfio_ccw.h
    M pc-bios/s390-ccw.img
    M pc-bios/s390-ccw/s390-ccw.h
    M pc-bios/s390-ccw/scsi.h
    M pc-bios/s390-ccw/virtio-scsi.c
    M pc-bios/s390-ccw/virtio-scsi.h
    M pc-bios/s390-ccw/virtio.h
    M qemu-options.hx
    M scripts/update-linux-headers.sh
    M target/s390x/cpu.c
    M target/s390x/cpu.h
    M target/s390x/ioinst.c

  Log Message:
  -----------
  Merge remote-tracking branch 'cohuck/tags/s390x-20170523' into staging

s390x updates:
- support for vfio-ccw to passthrough channel devices
- allow ccw bios to boot from scsi generic devices
- bugfix for initial reset

# gpg: Signature made Tue 23 May 2017 12:02:24 PM BST
# gpg:                using RSA key 0xDECF6B93C6F02FAF
# gpg: Good signature from "Cornelia Huck <address@hidden>"
# gpg:                 aka "Cornelia Huck <address@hidden>"
# gpg:                 aka "Cornelia Huck <address@hidden>"
# gpg:                 aka "Cornelia Huck <address@hidden>"
# Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0  18CE DECF 6B93 C6F0 2FAF

* cohuck/tags/s390x-20170523: (21 commits)
  s390/kvm: do not reset riccb on initial cpu reset
  MAINTAINERS: Add vfio-ccw maintainer
  vfio/ccw: update sense data if a unit check is pending
  s390x/css: ccw translation infrastructure
  s390x/css: introduce and realize ccw-request callback
  vfio/ccw: get irqs info and set the eventfd fd
  vfio/ccw: get io region info
  vfio/ccw: vfio based subchannel passthrough driver
  s390x/css: device support for s390-ccw passthrough
  s390x/css: realize css_create_sch
  s390x/css: realize css_sch_build_schib
  s390x/css: add s390-squash-mcss machine option
  linux-headers: update
  pc-bios/s390-ccw.img: rebuild image
  pc-bios/s390-ccw: Build a reasonable max_sectors limit
  pc-bios/s390-ccw: Get Block Limits VPD device data
  pc-bios/s390-ccw: Get list of supported VPD pages
  pc-bios/s390-ccw: Refactor scsi_inquiry function
  pc-bios/s390-ccw: Break up virtio-scsi read into multiples
  pc-bios/s390-ccw: Move SCSI block factor to outer read
  ...

Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 6573d9c63885aaf533366ab5c68318d1cf1a0fcc
      
https://github.com/qemu/qemu/commit/6573d9c63885aaf533366ab5c68318d1cf1a0fcc
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M blockjob.c

  Log Message:
  -----------
  blockjob: remove unnecessary check

!job is always checked prior to the call, drop it from here.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 9f086abbe43d29de2409e01d8fb2d68a6102afbc
      
https://github.com/qemu/qemu/commit/9f086abbe43d29de2409e01d8fb2d68a6102afbc
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M blockjob.c
    M include/block/blockjob_int.h

  Log Message:
  -----------
  blockjob: remove iostatus_reset callback

This is unused since commit 66a0fae ("blockjob: Don't touch BDS iostatus",
2016-05-19).

Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: John Snow <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 05b0d8e3b8a1ed1a5840a317ce4f7f4ebe53156f
      
https://github.com/qemu/qemu/commit/05b0d8e3b8a1ed1a5840a317ce4f7f4ebe53156f
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M block/backup.c
    M block/commit.c
    M block/mirror.c
    M blockjob.c
    M include/block/blockjob_int.h
    M tests/test-blockjob.c

  Log Message:
  -----------
  blockjob: introduce block_job_early_fail

Outside blockjob.c, block_job_unref is only used when a block job fails
to start, and block_job_ref is not used at all.  The reference counting
thus is pretty well hidden.  Introduce a separate function to be used
by block jobs; because block_job_ref and block_job_unref now become
static, move them earlier in blockjob.c.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: John Snow <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: f321dcb57f50be177250c7c5ba4b6334e9cb6ca5
      
https://github.com/qemu/qemu/commit/f321dcb57f50be177250c7c5ba4b6334e9cb6ca5
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M block/io.c
    M blockjob.c
    M include/block/blockjob.h
    M include/block/blockjob_int.h

  Log Message:
  -----------
  blockjob: introduce block_job_pause/resume_all

Remove use of block_job_pause/resume from outside blockjob.c, thus
making them static.  The new functions are used by the block layer,
so place them in blockjob_int.h.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: John Snow <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 88691b37f86250647816d77e8e1f0933557e7df5
      
https://github.com/qemu/qemu/commit/88691b37f86250647816d77e8e1f0933557e7df5
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M blockjob.c

  Log Message:
  -----------
  blockjob: separate monitor and blockjob APIs

We have two different headers for block job operations, blockjob.h
and blockjob_int.h.  The former contains APIs called by the monitor,
the latter contains APIs called by the block job drivers and the
block layer itself.

Keep the two APIs separate in the blockjob.c file too.  This will
be useful when transitioning away from the AioContext lock, because
there will be locking policies for the two categories, too---the
monitor will have to call new block_job_lock/unlock APIs, while blockjob
APIs will take care of this for the users.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 2caf63a9039f245ef778833dfc87f0c58adba47b
      
https://github.com/qemu/qemu/commit/2caf63a9039f245ef778833dfc87f0c58adba47b
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M blockdev.c
    M blockjob.c

  Log Message:
  -----------
  blockjob: move iostatus reset inside block_job_user_resume

Outside blockjob.c, the block_job_iostatus_reset function is used once
in the monitor and once in BlockBackend.  When we introduce the block
job mutex, block_job_iostatus_reset's client is going to be the block
layer (for which blockjob.c will take the block job mutex) rather than
the monitor (which will take the block job mutex by itself).

The monitor's call to block_job_iostatus_reset from the monitor comes
just before the sole call to block_job_user_resume, so reset the
iostatus directly from block_job_iostatus_reset.  This will avoid
the need to introduce separate block_job_iostatus_reset and
block_job_iostatus_reset_locked APIs.

After making this change, move the function together with the others
that were moved in the previous patch.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: John Snow <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 4c241cf5d6ca06c682e033cf8b327b63b1f4b784
      
https://github.com/qemu/qemu/commit/4c241cf5d6ca06c682e033cf8b327b63b1f4b784
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M blockjob.c

  Log Message:
  -----------
  blockjob: introduce block_job_cancel_async, check iostatus invariants

The new functions helps respecting the invariant that the coroutine
is entered with false user_resume, zero pause count and no error
recorded in the iostatus.

Resetting the iostatus is now common to all of block_job_cancel_async,
block_job_user_resume and block_job_iostatus_reset, albeit with slight
differences:

- block_job_cancel_async resets the iostatus, and resumes the job if
there was an error, but the coroutine is not restarted immediately.
For example the caller may continue with a call to block_job_finish_sync.

- block_job_user_resume resets the iostatus.  It wants to resume the job
unconditionally, even if there was no error.

- block_job_iostatus_reset doesn't resume the job at all.  Maybe that's
a bug but it should be fixed separately.

block_job_iostatus_reset does the least common denominator, so add some
checking but otherwise leave it as the entry point for resetting the
iostatus.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: c8ab5c2dde2d9321552830350e60c83a059486d7
      
https://github.com/qemu/qemu/commit/c8ab5c2dde2d9321552830350e60c83a059486d7
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M blockjob.c

  Log Message:
  -----------
  blockjob: group BlockJob transaction functions together

Yet another pure code movement patch, preparing for the next change.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 7e74a73499059263212048ad989facae5500d230
      
https://github.com/qemu/qemu/commit/7e74a73499059263212048ad989facae5500d230
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M tests/test-blockjob-txn.c

  Log Message:
  -----------
  blockjob: strengthen a bit test-blockjob-txn

Unlike test-blockjob-txn, QMP releases the reference to the transaction
before the jobs finish.  Thus, qemu-iotest 124 showed a failure while
working on the next patch that the unit tests did not have.  Make
the test a little nastier.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: John Snow <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 4fb588e95bacb770746cc794ef165fd71a4d27ea
      
https://github.com/qemu/qemu/commit/4fb588e95bacb770746cc794ef165fd71a4d27ea
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M blockjob.c

  Log Message:
  -----------
  blockjob: reorganize block_job_completed_txn_abort

This splits the part that touches job states from the part that invokes
callbacks.  It will make the code simpler to understand once job states will
be protected by a different mutex than the AioContext lock.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: eb05e011e248c6fb6baee295e14fd206e136028c
      
https://github.com/qemu/qemu/commit/eb05e011e248c6fb6baee295e14fd206e136028c
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M blockjob.c
    M include/block/blockjob_int.h

  Log Message:
  -----------
  blockjob: use deferred_to_main_loop to indicate the coroutine has ended

All block jobs are using block_job_defer_to_main_loop as the final
step just before the coroutine terminates.  At this point,
block_job_enter should do nothing, but currently it restarts
the freed coroutine.

Now, the job->co states should probably be changed to an enum
(e.g. BEFORE_START, STARTED, YIELDED, COMPLETED) subsuming
block_job_started, job->deferred_to_main_loop and job->busy.
For now, this patch eliminates the problematic reenter by
removing the reset of job->deferred_to_main_loop (which served
no purpose, as far as I could see) and checking the flag in
block_job_enter.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 223a23c198787328ae75bc65d84edf5fde33c0b6
      
https://github.com/qemu/qemu/commit/223a23c198787328ae75bc65d84edf5fde33c0b6
  Author: Jeff Cody <address@hidden>
  Date:   2017-05-24 (Wed, 24 May 2017)

  Changed paths:
    M block/gluster.c

  Log Message:
  -----------
  block/gluster: glfs_lseek() workaround

On current released versions of glusterfs, glfs_lseek() will sometimes
return invalid values for SEEK_DATA or SEEK_HOLE.  For SEEK_DATA and
SEEK_HOLE, the returned value should be >= the passed offset, or < 0 in
the case of error:

LSEEK(2):

    off_t lseek(int fd, off_t offset, int whence);

    [...]

    SEEK_HOLE
        Adjust  the file offset to the next hole in the file greater
        than or equal to offset.  If offset points into the middle of
        a hole, then the file offset is set to offset.  If there is no
        hole past offset, then the file offset is adjusted to the end
        of the file (i.e., there is  an implicit hole at the end of
        any file).

    [...]

    RETURN VALUE
        Upon  successful  completion,  lseek()  returns  the resulting
        offset location as measured in bytes from the beginning of the
        file.  On error, the value (off_t) -1 is returned and errno is
        set to indicate the error

However, occasionally glfs_lseek() for SEEK_HOLE/DATA will return a
value less than the passed offset, yet greater than zero.

For instance, here are example values observed from this call:

    offs = glfs_lseek(s->fd, start, SEEK_HOLE);
    if (offs < 0) {
  return -errno;          /* D1 and (H3 or H4) */
    }

start == 7608336384
offs == 7607877632

This causes QEMU to abort on the assert test.  When this value is
returned, errno is also 0.

This is a reported and known bug to glusterfs:
https://bugzilla.redhat.com/show_bug.cgi?id=1425293

Although this is being fixed in gluster, we still should work around it
in QEMU, given that multiple released versions of gluster behave this
way.

This patch treats the return case of (offs < start) the same as if an
error value other than ENXIO is returned; we will assume we learned
nothing, and there are no holes in the file.

Signed-off-by: Jeff Cody <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Niels de Vos <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 0cffce56ae3501c5783d779f97993ce478acf856
      
https://github.com/qemu/qemu/commit/0cffce56ae3501c5783d779f97993ce478acf856
  Author: David Gibson <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/ppc/spapr.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  hw/ppc/spapr.c: adding pending_dimm_unplugs to sPAPRMachineState

The LMB DRC release callback, spapr_lmb_release(), uses an opaque
parameter, a sPAPRDIMMState struct that stores the current LMBs that
are allocated to a DIMM (nr_lmbs). After each call to this callback,
the nr_lmbs is decremented by one and, when it reaches zero, the callback
proceeds with the qdev calls to hot unplug the LMB.

Using drc->detach_cb_opaque is problematic because it can't be migrated in
the future DRC migration work. This patch makes the following changes to
eliminate the usage of this opaque callback inside spapr_lmb_release:

- sPAPRDIMMState was moved from spapr.c and added to spapr.h. A new
attribute called 'addr' was added to it. This is used as an unique
identifier to associate a sPAPRDIMMState to a PCDIMM element.

- sPAPRMachineState now hosts a new QTAILQ called 'pending_dimm_unplugs'.
This queue of sPAPRDIMMState elements will store the DIMM state of DIMMs
that are currently going under an unplug process.

- spapr_lmb_release() will now retrieve the nr_lmbs value by getting the
correspondent sPAPRDIMMState. A helper function called spapr_dimm_get_address
was created to fetch the address of a PCDIMM device inside spapr_lmb_release.
When nr_lmbs reaches zero and the callback proceeds with the qdev hot unplug
calls, the sPAPRDIMMState struct is removed from spapr->pending_dimm_unplugs.

After these changes, the opaque argument for spapr_lmb_release is now
unused and is passed as NULL inside spapr_del_lmbs. This and the other
opaque arguments can now be safely removed from the code.

As an additional cleanup made by this patch, the spapr_del_lmbs function
was merged with spapr_memory_unplug_request. The former was being called
only by the latter and both were small enough to fit one single function.

Signed-off-by: Daniel Henrique Barboza <address@hidden>
[dwg: Minor stylistic cleanups]
Signed-off-by: David Gibson <address@hidden>


  Commit: 318347234d7069b62d38391dd27e269a3107d668
      
https://github.com/qemu/qemu/commit/318347234d7069b62d38391dd27e269a3107d668
  Author: Daniel Henrique Barboza <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_drc.c
    M hw/ppc/spapr_pci.c
    M include/hw/pci-host/spapr.h
    M include/hw/ppc/spapr.h
    M include/hw/ppc/spapr_drc.h

  Log Message:
  -----------
  hw/ppc: removing drc->detach_cb and drc->detach_cb_opaque

The pointer drc->detach_cb is being used as a way of informing
the detach() function inside spapr_drc.c which cb to execute. This
information can also be retrieved simply by checking drc->type and
choosing the right callback based on it. In this context, detach_cb
is redundant information that must be managed.

After the previous spapr_lmb_release change, no detach_cb_opaques
are being used by any of the three callbacks functions. This is
yet another information that is now unused and, on top of that, can't
be migrated either.

This patch makes the following changes:

- removal of detach_cb_opaque. the 'opaque' argument was removed from
the callbacks and from the detach() function of sPAPRConnectorClass. The
attribute detach_cb_opaque of sPAPRConnector was removed.

- removal of detach_cb from the detach() call. The function pointer
detach_cb of sPAPRConnector was removed. detach() now uses a
switch(drc->type) to execute the apropriate callback. To achieve this,
spapr_core_release, spapr_lmb_release and spapr_phb_remove_pci_device_cb
callbacks were made public to be visible inside detach().

Signed-off-by: Daniel Henrique Barboza <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: a50919dddf148b0a2008db4a0593dbe69e1059c0
      
https://github.com/qemu/qemu/commit/a50919dddf148b0a2008db4a0593dbe69e1059c0
  Author: Daniel Henrique Barboza <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/ppc/spapr_drc.c

  Log Message:
  -----------
  hw/ppc: migrating the DRC state of hotplugged devices

In pseries, a firmware abstraction called Dynamic Reconfiguration
Connector (DRC) is used to assign a particular dynamic resource
to the guest and provide an interface to manage configuration/removal
of the resource associated with it. In other words, DRC is the
'plugged state' of a device.

Before this patch, DRC wasn't being migrated. This causes
post-migration problems due to DRC state mismatch between source and
target. The DRC state of a device X in the source might
change, while in the target the DRC state of X is still fresh. When
migrating the guest, X will not have the same hotplugged state as it
did in the source. This means that we can't hot unplug X in the
target after migration is completed because its DRC state is not consistent.
https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1677552 is one
bug that is caused by this DRC state mismatch between source and
target.

To migrate the DRC state, we defined the VMStateDescription struct for
spapr_drc to enable the transmission of spapr_drc state in migration.
Not all the elements in the DRC state are migrated - only those
that can be modified by guest actions or device add/remove
operations:

- 'isolation_state', 'allocation_state' and 'indicator_state'
are involved in the DR state transition diagram from
PAPR+ 2.7, 13.4;

- 'configured', 'signalled', 'awaiting_release' and 'awaiting_allocation'
are needed in attaching and detaching devices;

- 'indicator_state' provides users with hardware state information.

These are the DRC elements that are migrated.

In this patch the DRC state is migrated for PCI, LMB and CPU
connector types. At this moment there is no support to migrate
DRC for the PHB (PCI Host Bridge) type.

In the 'realize' function the DRC is registered using vmstate_register,
similar to what hw/ppc/spapr_iommu.c does in 'spapr_tce_table_realize'.
This approach works because  DRCs are bus-less and do not sit
on a BusClass that implements bc->get_dev_path, so as a fallback the
VMSD gets identified via "spapr_drc"/get_index(drc).

Signed-off-by: Daniel Henrique Barboza <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 16ee99805e069601ba3ce9da524bab377ab03866
      
https://github.com/qemu/qemu/commit/16ee99805e069601ba3ce9da524bab377ab03866
  Author: Daniel Henrique Barboza <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  hw/ppc/spapr.c: recover pending LMB unplug info in spapr_lmb_release

When a LMB hot unplug starts, the current DRC LMB status is stored at
spapr->pending_dimm_unplugs QTAILQ. This queue isn't migrated, thus
if a migration occurs in the middle of a LMB unplug the
spapr_lmb_release callback will lost track of the LMB unplug progress.

This patch implements a new recover function spapr_recover_pending_dimm_state
that is used inside spapr_lmb_release to recover this DRC LMB release
status that is lost during the migration.

Signed-off-by: Daniel Henrique Barboza <address@hidden>
[dwg: Minor stylistic changes, simplify error handling]
Signed-off-by: David Gibson <address@hidden>


  Commit: 62f94fc94f98095173146e753a1f03d7c2cc7ba3
      
https://github.com/qemu/qemu/commit/62f94fc94f98095173146e753a1f03d7c2cc7ba3
  Author: Greg Kurz <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/intc/xics.c
    M hw/intc/xics_kvm.c

  Log Message:
  -----------
  xics: add unrealize handler

Now that ICPState objects get finalized on CPU unplug, we should unregister
reset handlers as well to avoid a QEMU crash at machine reset time.

Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: bf55b7afce53718ef96f4e6616da62c0ccac37dd
      
https://github.com/qemu/qemu/commit/bf55b7afce53718ef96f4e6616da62c0ccac37dd
  Author: Peter Xu <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M exec.c
    M hw/alpha/typhoon.c
    M hw/dma/rc4030.c
    M hw/i386/amd_iommu.c
    M hw/i386/intel_iommu.c
    M hw/pci-host/apb.c
    M hw/ppc/spapr_iommu.c
    M hw/s390x/s390-pci-bus.c
    M hw/s390x/s390-pci-inst.c
    M include/exec/memory.h
    M memory.c

  Log Message:
  -----------
  memory: tune last param of iommu_ops.translate()

This patch converts the old "is_write" bool into IOMMUAccessFlags. The
difference is that "is_write" can only express either read/write, but
sometimes what we really want is "none" here (neither read nor write).
Replay is an good example - during replay, we should not check any RW
permission bits since thats not an actual IO at all.

CC: Paolo Bonzini <address@hidden>
CC: David Gibson <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Acked-by: David Gibson <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Jason Wang <address@hidden>


  Commit: ad523590f62cf5d44e97388de370d27b95b25aff
      
https://github.com/qemu/qemu/commit/ad523590f62cf5d44e97388de370d27b95b25aff
  Author: Peter Xu <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/vfio/common.c
    M include/exec/memory.h
    M memory.c

  Log Message:
  -----------
  memory: remove the last param in memory_region_iommu_replay()

We were always passing in that one as "false" to assume that's an read
operation, and we also assume that IOMMU translation would always have
that read permission. A better permission would be IOMMU_NONE since the
replay is after all not a real read operation, but just a page table
rebuilding process.

CC: David Gibson <address@hidden>
CC: Paolo Bonzini <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Jason Wang <address@hidden>


  Commit: 0b77d30a43bf21c7bf6af43cd546d8270bec7b99
      
https://github.com/qemu/qemu/commit/0b77d30a43bf21c7bf6af43cd546d8270bec7b99
  Author: Peter Xu <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/i386/x86-iommu.c

  Log Message:
  -----------
  x86-iommu: use DeviceClass properties

No reason to keep tens of lines if we can do it actually far shorter.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Jason Wang <address@hidden>


  Commit: 8f7d7161dd78142e77b96d7035682451154ed0d2
      
https://github.com/qemu/qemu/commit/8f7d7161dd78142e77b96d7035682451154ed0d2
  Author: Peter Xu <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel_iommu: renaming context entry helpers

The old names are too long and less ordered. Let's start to use
vtd_ce_*() as a pattern.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Jason Wang <address@hidden>


  Commit: 127ff5c356e1c2c1328ed2fbb582eb14e412b160
      
https://github.com/qemu/qemu/commit/127ff5c356e1c2c1328ed2fbb582eb14e412b160
  Author: Peter Xu <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel_iommu: provide vtd_ce_get_type()

Helper to fetch VT-d context entry type.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Jason Wang <address@hidden>


  Commit: 5a38cb5940f71254e7dcc4bce7ffca8c2102f0ec
      
https://github.com/qemu/qemu/commit/5a38cb5940f71254e7dcc4bce7ffca8c2102f0ec
  Author: Peter Xu <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel_iommu: use IOMMU_ACCESS_FLAG()

We have that now, so why not use it.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Jason Wang <address@hidden>


  Commit: f80c98740e8da9fa0e4056f174ca66a3afb1d15b
      
https://github.com/qemu/qemu/commit/f80c98740e8da9fa0e4056f174ca66a3afb1d15b
  Author: Peter Xu <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel_iommu: allow dev-iotlb context entry conditionally

When device-iotlb is not specified, we should fail this check. A new
function vtd_ce_type_check() is introduced.

While I'm at it, clean up the vtd_dev_to_context_entry() a bit - replace
many "else if" usage into direct if check. That'll make the logic more
clear.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Jason Wang <address@hidden>


  Commit: dbaabb25f441264d9029dc53e84a156269ecd275
      
https://github.com/qemu/qemu/commit/dbaabb25f441264d9029dc53e84a156269ecd275
  Author: Peter Xu <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/i386/intel_iommu.c
    M hw/i386/intel_iommu_internal.h
    M hw/i386/trace-events
    M hw/i386/x86-iommu.c
    M include/hw/i386/x86-iommu.h

  Log Message:
  -----------
  intel_iommu: support passthrough (PT)

Hardware support for VT-d device passthrough. Although current Linux can
live with iommu=pt even without this, but this is faster than when using
software passthrough.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Liu, Yi L <address@hidden>
Reviewed-by: Jason Wang <address@hidden>


  Commit: c10595fb348d3fe6991fe9750834bd2ab16d3190
      
https://github.com/qemu/qemu/commit/c10595fb348d3fe6991fe9750834bd2ab16d3190
  Author: Peter Xu <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M include/hw/compat.h

  Log Message:
  -----------
  intel_iommu: turn off pt before 2.9

This is for compatibility.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Jason Wang <address@hidden>


  Commit: 75ebec11afe49539f71cc1c494e3010f91c86adb
      
https://github.com/qemu/qemu/commit/75ebec11afe49539f71cc1c494e3010f91c86adb
  Author: Maxime Coquelin <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/net/virtio-net.c
    M include/hw/compat.h
    M include/hw/virtio/virtio-net.h
    M include/hw/virtio/virtio.h

  Log Message:
  -----------
  virtio_net: Bypass backends for MTU feature negotiation

This patch adds a new internal "x-mtu-bypass-backend" property
to bypass backends for MTU feature negotiation.

When this property is set, the MTU feature is negotiated as soon
as supported by the guest and a MTU value is set via the host_mtu
parameter. In case the backend advertises the feature (e.g. DPDK's
vhost-user backend), the feature negotiation is propagated down to
the backend.

When this property is not set, the backend has to support the MTU
feature for its negotiation to succeed.

For compatibility purpose, this property is disabled for machine
types v2.9 and older.

Cc: Aaron Conole <address@hidden>
Suggested-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Maxime Coquelin <address@hidden>
Reviewed-by: Vlad Yasevich <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 3cf7daf8c3b0a1c417490741227d910b253796ff
      
https://github.com/qemu/qemu/commit/3cf7daf8c3b0a1c417490741227d910b253796ff
  Author: Maxime Coquelin <address@hidden>
  Date:   2017-05-25 (Thu, 25 May 2017)

  Changed paths:
    M hw/virtio/vhost-user.c

  Log Message:
  -----------
  vhost-user: pass message as a pointer to process_message_reply()

process_message_reply() was recently updated to get full message
content instead of only its request field.

There is no need to copy all the struct content into the stack,
so just pass its pointer as const.

Reviewed-by: Jens Freimann <address@hidden>
Reviewed-by: Zhiyong Yang <address@hidden>
Signed-off-by: Maxime Coquelin <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>


  Commit: 525989a50a70ea0ffa2b1cdf56279765bb2b7de0
      
https://github.com/qemu/qemu/commit/525989a50a70ea0ffa2b1cdf56279765bb2b7de0
  Author: Alberto Garcia <address@hidden>
  Date:   2017-05-26 (Fri, 26 May 2017)

  Changed paths:
    M block/stream.c

  Log Message:
  -----------
  stream: fix crash in stream_start() when block_job_create() fails

The code that tries to reopen a BlockDriverState in stream_start()
when the creation of a new block job fails crashes because it attempts
to dereference a pointer that is known to be NULL.

This is a regression introduced in a170a91fd3eab6155da39e740381867e,
likely because the code was copied from stream_complete().

Cc: address@hidden
Reported-by: Kashyap Chamarthy <address@hidden>
Signed-off-by: Alberto Garcia <address@hidden>
Tested-by: Kashyap Chamarthy <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 0bb0aea4bac2332389a9b481f650a2a9df80ea0c
      
https://github.com/qemu/qemu/commit/0bb0aea4bac2332389a9b481f650a2a9df80ea0c
  Author: Kevin Wolf <address@hidden>
  Date:   2017-05-26 (Fri, 26 May 2017)

  Changed paths:
    M tests/qemu-iotests/030
    M tests/qemu-iotests/030.out

  Log Message:
  -----------
  qemu-iotests: Test streaming with missing job ID

This adds a small test for the image streaming error path for failing
block_job_create(), which would have found the null pointer dereference
in commit a170a91f.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Alberto Garcia <address@hidden>
Reviewed-by: Kashyap Chamarthy <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>


  Commit: cf1cd117e2b38f1b5d28e435b4b527a32055e133
      
https://github.com/qemu/qemu/commit/cf1cd117e2b38f1b5d28e435b4b527a32055e133
  Author: Fam Zheng <address@hidden>
  Date:   2017-05-26 (Fri, 26 May 2017)

  Changed paths:
    M tests/qemu-iotests/147

  Log Message:
  -----------
  iotests: 147: Don't test inet6 if not available

This is the case in our docker tests, as we use --net=none there. Skip
this method.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: a896f7f26a1a0417322463439825073c1a917e41
      
https://github.com/qemu/qemu/commit/a896f7f26a1a0417322463439825073c1a917e41
  Author: Stephen Bates <address@hidden>
  Date:   2017-05-26 (Fri, 26 May 2017)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/nvme.h

  Log Message:
  -----------
  nvme: Add support for Controller Memory Buffers

Implement NVMe Controller Memory Buffers (CMBs) which were added in
version 1.2 of the NVMe Specification. This patch adds an optional
argument (cmb_size_mb) which indicates the size of the CMB (in
MB). Currently only the Submission Queue Support (SQS) is enabled
which aligns with the current Linux driver for NVMe.

Signed-off-by: Stephen Bates <address@hidden>
Acked-by: Keith Busch <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c7990a26480032ad129f8c4ddad7d9a132c934ca
      
https://github.com/qemu/qemu/commit/c7990a26480032ad129f8c4ddad7d9a132c934ca
  Author: Tao Wu <address@hidden>
  Date:   2017-05-27 (Sat, 27 May 2017)

  Changed paths:
    M slirp/tcp_input.c

  Log Message:
  -----------
  slirp: Fix wrong mss bug.

This bug was introduced by https://github.com/qemu/qemu/commit/98c6305

Signed-off-by: Tao Wu <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-bu: Samuel Thibault <address@hidden>


  Commit: 7d8246960e03dabf37726c01d231e89dfde9b229
      
https://github.com/qemu/qemu/commit/7d8246960e03dabf37726c01d231e89dfde9b229
  Author: Marc-André Lureau <address@hidden>
  Date:   2017-05-27 (Sat, 27 May 2017)

  Changed paths:
    M slirp/socket.c

  Log Message:
  -----------
  slirp: fix leak

Spotted by ASAN:

/x86_64/hmp/pc-0.12:
=================================================================
==22538==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 224 byte(s) in 1 object(s) allocated from:
    #0 0x7f0f63cdee60 in malloc (/lib64/libasan.so.3+0xc6e60)
    #1 0x556f11ff32d7 in tcp_newtcpcb 
/home/elmarco/src/qemu/slirp/tcp_subr.c:250
    #2 0x556f11fdb1d1 in tcp_listen /home/elmarco/src/qemu/slirp/socket.c:688
    #3 0x556f11fca9d5 in slirp_add_hostfwd 
/home/elmarco/src/qemu/slirp/slirp.c:1052
    #4 0x556f11f8db41 in slirp_hostfwd /home/elmarco/src/qemu/net/slirp.c:506
    #5 0x556f11f8dd83 in hmp_hostfwd_add /home/elmarco/src/qemu/net/slirp.c:535

There might be a better way to fix this, but calling slirp tcp_close()
doesn't work.

Signed-off-by: Marc-André Lureau <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: 2e30230aa95a2d6cfaadac015bd96c3db19c45e4
      
https://github.com/qemu/qemu/commit/2e30230aa95a2d6cfaadac015bd96c3db19c45e4
  Author: Sjors Gielen <address@hidden>
  Date:   2017-05-27 (Sat, 27 May 2017)

  Changed paths:
    M slirp/tcp_subr.c

  Log Message:
  -----------
  Fix total IP header length in forwarded TCP packets

When forwarding TCP packets, the internal tcpiphdr struct length was wrongly
used inside the IP header. This commit changes the behaviour to what is used
by tcp_output.c, using the correct full IP header + payload length.

Signed-off-by: Sjors Gielen <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: ede24a026411c260b5471348f431ec2f3c5e8f2b
      
https://github.com/qemu/qemu/commit/ede24a026411c260b5471348f431ec2f3c5e8f2b
  Author: Ladi Prosek <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M hw/i386/acpi-build.c

  Log Message:
  -----------
  pc: ACPI BIOS: use highest NUMA node for hotplug mem hole SRAT entry

For reasons unknown, Windows won't online all memory, both at command
line and hot-plugged later, unless the hotplug mem hole SRAT entry
specifies a node greater than or equal to the ones where memory is
added.

Using the highest node on the machine makes recent versions of Windows
happy.

With this example command line:
  ... \
  -m 1024,slots=4,maxmem=32G \
  -numa node,nodeid=0 \
  -numa node,nodeid=1 \
  -numa node,nodeid=2 \
  -numa node,nodeid=3 \
  -object memory-backend-ram,size=1G,id=mem-mem1 \
  -device pc-dimm,id=dimm-mem1,memdev=mem-mem1,node=1

Windows reports a total of 1G of RAM without this commit and the expected
2G with this commit.

Signed-off-by: Ladi Prosek <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Acked-by: Laszlo Ersek <address@hidden>


  Commit: 811bf15114bff4d46735acedbd72b906616ce365
      
https://github.com/qemu/qemu/commit/811bf15114bff4d46735acedbd72b906616ce365
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M tests/acpi-test-data/pc/SRAT.memhp
    M tests/acpi-test-data/q35/SRAT.memhp

  Log Message:
  -----------
  acpi-test: update expected files

commit 1a8d61ddbf ("pc: ACPI BIOS: use highest NUMA node for hotplug mem
hole SRAT entry") changed generated SRAT tables, update expected files
accordingly.

Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 3ae7eb88c472799f17beb653f4bc3fb8b124c72e
      
https://github.com/qemu/qemu/commit/3ae7eb88c472799f17beb653f4bc3fb8b124c72e
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M hw/usb/hcd-ehci.c

  Log Message:
  -----------
  ehci: fix overflow in frame timer code

In case the frame timer doesn't run for a while due to the host being
busy skipped_uframes can become big enough that UFRAME_TIMER_NS *
skipped_uframes overflows.  Which in turn throws off all subsequent
ehci frame timer calculations.

Reported-by: 李林 <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden


  Commit: a358a3af4558a24398a541951cad7a6c458df72b
      
https://github.com/qemu/qemu/commit/a358a3af4558a24398a541951cad7a6c458df72b
  Author: Thomas Huth <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M qemu-options.hx
    M vl.c

  Log Message:
  -----------
  usb: Deprecate the legacy -usbdevice option

The '-usbdevice' option is considered as deprecated nowadays and
we might want to remove these options in a future version of QEMU.
So mark this options as deprecated in the documenation and print out
a warning if it is used to tell the user what to use instead.
While we're at it, improve also some other minor USB-related spots
in qemu-options.hx that were not up to date anymore.

Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: b813bed1ab064e0198f68a9e745da3caaf9c8e47
      
https://github.com/qemu/qemu/commit/b813bed1ab064e0198f68a9e745da3caaf9c8e47
  Author: Thomas Huth <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M hmp-commands.hx
    M vl.c

  Log Message:
  -----------
  usb: Deprecate HMP commands usb_add and usb_del

The commands 'device_add' and 'device_del' should be used
nowadays instead.

Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: e14935df26c2c10b3445b1910f4ff76f3fb1a1b1
      
https://github.com/qemu/qemu/commit/e14935df26c2c10b3445b1910f4ff76f3fb1a1b1
  Author: Thomas Huth <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M hw/usb/dev-serial.c

  Log Message:
  -----------
  usb: Simplify the parameter parsing of the legacy usb serial device

Coverity complains about the current code, so let's get rid of
the now unneeded while loop and simply always emit "unrecognized
serial USB option" for all unsupported options.

Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 0bbb2f3df1ffd9ccf7135a69a450c6929bc0b915
      
https://github.com/qemu/qemu/commit/0bbb2f3df1ffd9ccf7135a69a450c6929bc0b915
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M hw/usb/Makefile.objs
    A hw/usb/hcd-xhci-nec.c
    M hw/usb/hcd-xhci.c
    A hw/usb/hcd-xhci.h

  Log Message:
  -----------
  xhci: split into multiple files

Moved structs and defines to hcd-xhci.h.
Move nec controller variant to hcd-xhci-nec.c.
No functional changes.

Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden


  Commit: 2da077a881894c0b18032153c709d95ac89492c6
      
https://github.com/qemu/qemu/commit/2da077a881894c0b18032153c709d95ac89492c6
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M default-configs/pci.mak
    M hw/usb/Makefile.objs

  Log Message:
  -----------
  xhci: add CONFIG_USB_XHCI_NEC option

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1451189
Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden


  Commit: 6361bbc7e21f822823e015e5ccb50d4ac1745b1b
      
https://github.com/qemu/qemu/commit/6361bbc7e21f822823e015e5ccb50d4ac1745b1b
  Author: Ladi Prosek <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M hw/usb/dev-hub.c

  Log Message:
  -----------
  usb-hub: set PORT_STAT_C_SUSPEND on host-initiated wake-up

PORT_STAT_C_SUSPEND should be set even on host-initiated wake-up,
i.e. on ClearPortFeature(PORT_SUSPEND). Windows is known to not
work properly otherwise.

Side note, since PORT_ENABLE looks similar and might appear to
have the same issue: According to 11.24.2.7.2.2 C_PORT_ENABLE:

  "This bit is set when the PORT_ENABLE bit changes from one to
  zero as a result of a Port Error condition (see Section 11.8.1).
  This bit is not set on any other changes to PORT_ENABLE."

Signed-off-by: Ladi Prosek <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 26022652c6fd067b9fa09280f5a6d6284a21c73f
      
https://github.com/qemu/qemu/commit/26022652c6fd067b9fa09280f5a6d6284a21c73f
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M hw/usb/core.c

  Log Message:
  -----------
  usb: don't wakeup during coldplug

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1452512
Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden


  Commit: 3bfecee2cb71f21cd39d6183f18b446c01917573
      
https://github.com/qemu/qemu/commit/3bfecee2cb71f21cd39d6183f18b446c01917573
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M hw/usb/hcd-ehci.c

  Log Message:
  -----------
  ehci: fix frame timer invocation.

ehci registers ehci_frame_timer as both timer and bottom half, which
turned out to be a bad idea as it can be called as bottom half then
while it is running as timer, and it isn't prepared to handle recursive
calls.

Change the timer func to just schedule the bottom half to avoid this.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1449609
Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden


  Commit: 63c8ef289087a225d445319d047501d4fe593687
      
https://github.com/qemu/qemu/commit/63c8ef289087a225d445319d047501d4fe593687
  Author: Kevin Wolf <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M block/mirror.c

  Log Message:
  -----------
  mirror: Drop permissions on s->target on completion

This fixes an assertion failure that was triggered by qemu-iotests 129
on some CI host, while the same test case didn't seem to fail on other
hosts.

Essentially the problem is that the blk_unref(s->target) in
mirror_exit() doesn't necessarily mean that the BlockBackend goes away
immediately. It is possible that the job completion was triggered nested
in mirror_drain(), which looks like this:

    BlockBackend *target = s->target;
    blk_ref(target);
    blk_drain(target);
    blk_unref(target);

In this case, the write permissions for s->target are retained until
after blk_drain(), which makes removing mirror_top_bs fail for the
active commit case (can't have a writable backing file in the chain
without the filter driver).

Explicitly dropping the permissions first means that the additional
reference doesn't hurt and the job can complete successfully even if
called from the nested blk_drain().

Cc: address@hidden
Signed-off-by: Kevin Wolf <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Reviewed-by: Max Reitz <address@hidden>


  Commit: a7a6a2bffcc4410da29427a87808272cca91e335
      
https://github.com/qemu/qemu/commit/a7a6a2bffcc4410da29427a87808272cca91e335
  Author: Alberto Garcia <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M block/qcow2.c

  Log Message:
  -----------
  qcow2: remove extra local_error variable

Commit d7086422b1c1e75e320519cfe26176db6ec97a37 added a local_err
variable global to the qcow2_amend_options() function, so there's no
need to have this other one.

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: caa31bf28c0c3e2930540ad6a95935f92551b7eb
      
https://github.com/qemu/qemu/commit/caa31bf28c0c3e2930540ad6a95935f92551b7eb
  Author: Fam Zheng <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M qemu-img-cmds.hx

  Log Message:
  -----------
  qemu-img: Fix documentation of convert

It got lost in commit a8d16f9ca "qemu-img: Update documentation for -U".

Reported-by: Max Reitz <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: 83d4bf943e09cbcb011e255c872724e95fe4856e
      
https://github.com/qemu/qemu/commit/83d4bf943e09cbcb011e255c872724e95fe4856e
  Author: Daniel P. Berrange <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: add support for --object with 'dd' command

The qemu-img dd command added --image-opts support, but missed
the corresponding --object support. This prevented passing
secrets (eg auth passwords) needed by certain disk images.

Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Daniel P. Berrange <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: ea204ddac7340bfda60cb0b388dbc3ffd77e8be0
      
https://github.com/qemu/qemu/commit/ea204ddac7340bfda60cb0b388dbc3ffd77e8be0
  Author: Daniel P. Berrange <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: fix --image-opts usage with dd command

The --image-opts flag can only be used to affect the parsing
of the source image. The target image has to be specified in
the traditional style regardless, since it needs to be passed
to the bdrv_create() API which does not support the new style
opts.

Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Daniel P. Berrange <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: 305b4c60f200ee8e6267ac75f3f5b5d09fda1079
      
https://github.com/qemu/qemu/commit/305b4c60f200ee8e6267ac75f3f5b5d09fda1079
  Author: Daniel P. Berrange <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi

  Log Message:
  -----------
  qemu-img: introduce --target-image-opts for 'convert' command

The '--image-opts' flag indicates whether the source filename
includes options. The target filename has to remain in the
plain filename format though, since it needs to be passed to
bdrv_create().  When using --skip-create though, it would be
possible to use image-opts syntax. This adds --target-image-opts
to indicate that the target filename includes options. Currently
this mandates use of the --skip-create flag too.

Signed-off-by: Daniel P. Berrange <address@hidden>
Message-id: address@hidden
Reviewed-by: Max Reitz <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: 29cf933635a50a4f1c51b022b323089997471e38
      
https://github.com/qemu/qemu/commit/29cf933635a50a4f1c51b022b323089997471e38
  Author: Daniel P. Berrange <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: copy *key-secret opts when opening newly created files

The qemu-img dd/convert commands will create an image file and
then try to open it. Historically it has been possible to open
new files without passing any options. With encrypted files
though, the *key-secret options are mandatory, so we need to
provide those options when opening the newly created file.

Signed-off-by: Daniel P. Berrange <address@hidden>
Message-id: address@hidden
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: adb998c12aa7aa22c78baaec5c1252721e89c3de
      
https://github.com/qemu/qemu/commit/adb998c12aa7aa22c78baaec5c1252721e89c3de
  Author: Fam Zheng <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: Fix leakage of options on error

Reported by Coverity.

Signed-off-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: bcb07dba9290407eb01971ade287ca9a332ad49d
      
https://github.com/qemu/qemu/commit/bcb07dba9290407eb01971ade287ca9a332ad49d
  Author: Eric Blake <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M block/qcow2-cluster.c
    M tests/qemu-iotests/060.out

  Log Message:
  -----------
  block: Tweak error message related to qemu-img amend

When converting a 1.1 image down to 0.10, qemu-iotests 060 forces
a contrived failure where allocating a cluster used to replace a
zero cluster reads unaligned data.  Since it is a zero cluster
rather than a data cluster being converted, changing the error
message to match our earlier change in 'qcow2: Make distinction
between zero cluster types obvious' is worthwhile.

Suggested-by: Max Reitz <address@hidden>
Signed-off-by: Eric Blake <address@hidden>
Message-id: address@hidden
[mreitz: Commit message fixes]
Signed-off-by: Max Reitz <address@hidden>


  Commit: 0d54a6fed3ebaf0e17656a712e5d6575c712459b
      
https://github.com/qemu/qemu/commit/0d54a6fed3ebaf0e17656a712e5d6575c712459b
  Author: Max Reitz <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Fix backing paths for filenames with colons

path_combine() naturally tries to preserve a protocol prefix. However,
it recognizes such a prefix by scanning for the first colon; which is
different from what path_has_protocol() does: There only is a protocol
prefix if there is a colon before the first slash.

A protocol prefix that is not recognized by path_has_protocol() is none,
and should thus not be taken as one.

Case in point, before this patch:
$ ./qemu-img create -f qcow2 -b backing.qcow2 ./top:image.qcow2
qemu-img: ./top:image.qcow2: Could not open './top:backing.qcow2':
    No such file or directory

Afterwards:
$ ./qemu-img create -f qcow2 -b backing.qcow2 ./top:image.qcow2
qemu-img: ./top:image.qcow2: Could not open './backing.qcow2':
    No such file or directory

Reported-by: yangyang <address@hidden>
Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: 03c320d803fd881736b63015048498cf97d410d3
      
https://github.com/qemu/qemu/commit/03c320d803fd881736b63015048498cf97d410d3
  Author: Max Reitz <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M block.c
    M block/file-posix.c
    M block/file-win32.c
    M include/block/block_int.h

  Log Message:
  -----------
  block/file-*: *_parse_filename() and colons

The file drivers' *_parse_filename() implementations just strip the
optional protocol prefix off the filename. However, for e.g.
"file:foo:bar", this would lead to "foo:bar" being stored as the BDS's
filename which looks like it should be managed using the "foo" protocol.
This is especially troublesome if you then try to resolve a backing
filename based on "foo:bar".

This issue can only occur if the stripped part is a relative filename
("file:/foo:bar" will be shortened to "/foo:bar" and having a slash
before the first colon means that "/foo" is not recognized as a protocol
part). Therefore, we can easily fix it by prepending "./" to such
filenames.

Before this patch:
$ ./qemu-img create -f qcow2 backing.qcow2 64M
Formatting 'backing.qcow2', fmt=qcow2 size=67108864 encryption=off
    cluster_size=65536 lazy_refcounts=off refcount_bits=16
$ ./qemu-img create -f qcow2 -b backing.qcow2 file:top:image.qcow2
Formatting 'file:top:image.qcow2', fmt=qcow2 size=67108864
    backing_file=backing.qcow2 encryption=off cluster_size=65536
    lazy_refcounts=off refcount_bits=16
$ ./qemu-io file:top:image.qcow2
can't open device file:top:image.qcow2: Could not open backing file:
    Unknown protocol 'top'

After this patch:
$ ./qemu-io file:top:image.qcow2
[no error]

Signed-off-by: Max Reitz <address@hidden>
Message-id: address@hidden
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: 42a48128417b3bfade93d1a4721348cc480e9e50
      
https://github.com/qemu/qemu/commit/42a48128417b3bfade93d1a4721348cc480e9e50
  Author: Kevin Wolf <address@hidden>
  Date:   2017-05-29 (Mon, 29 May 2017)

  Changed paths:
    M block.c
    M block/file-posix.c
    M block/file-win32.c
    M block/qcow2-cluster.c
    M block/qcow2.c
    M include/block/block_int.h
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi
    M tests/qemu-iotests/060.out

  Log Message:
  -----------
  Merge remote-tracking branch 'mreitz/tags/pull-block-2017-05-29-v3' into 
queue-block

Block patches for the block queue

# gpg: Signature made Mon May 29 16:32:16 2017 CEST
# gpg:                using RSA key 0xF407DB0061D5CF40
# gpg: Good signature from "Max Reitz <address@hidden>"
# Primary key fingerprint: 91BE B60A 30DB 3E88 57D1  1829 F407 DB00 61D5 CF40

* mreitz/tags/pull-block-2017-05-29-v3:
  block/file-*: *_parse_filename() and colons
  block: Fix backing paths for filenames with colons
  block: Tweak error message related to qemu-img amend
  qemu-img: Fix leakage of options on error
  qemu-img: copy *key-secret opts when opening newly created files
  qemu-img: introduce --target-image-opts for 'convert' command
  qemu-img: fix --image-opts usage with dd command
  qemu-img: add support for --object with 'dd' command
  qemu-img: Fix documentation of convert
  qcow2: remove extra local_error variable

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 62e570b1c50cac88fb0e940cfcb7820732106c20
      
https://github.com/qemu/qemu/commit/62e570b1c50cac88fb0e940cfcb7820732106c20
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M hw/core/machine.c

  Log Message:
  -----------
  Merge remote-tracking branch 'ehabkost/tags/numa-pull-request' into staging

Silence "make check" warnings on NUMA test

# gpg: Signature made Tue 23 May 2017 11:44:24 AM BST
# gpg:                using RSA key 0x2807936F984DC5A6
# gpg: Good signature from "Eduardo Habkost <address@hidden>"
# Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6

* ehabkost/tags/numa-pull-request:
  numa: Silence incomplete mapping warning under qtest

Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: d0eda02938054268751c6c7bf00219f695b0ca8b
      
https://github.com/qemu/qemu/commit/d0eda02938054268751c6c7bf00219f695b0ca8b
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M hw/acpi/core.c
    M hw/arm/highbank.c
    M hw/arm/integratorcp.c
    M hw/arm/musicpal.c
    M hw/arm/omap1.c
    M hw/arm/omap2.c
    M hw/arm/spitz.c
    M hw/arm/stellaris.c
    M hw/arm/tosa.c
    M hw/i386/pc.c
    M hw/i386/xen/xen-hvm.c
    M hw/input/pckbd.c
    M hw/ipmi/ipmi.c
    M hw/isa/lpc_ich9.c
    M hw/mips/boston.c
    M hw/mips/mips_malta.c
    M hw/mips/mips_r4k.c
    M hw/misc/arm_sysctl.c
    M hw/misc/cbus.c
    M hw/misc/macio/cuda.c
    M hw/misc/slavio_misc.c
    M hw/misc/zynq_slcr.c
    M hw/pci-host/apb.c
    M hw/pci-host/bonito.c
    M hw/pci-host/piix.c
    M hw/ppc/e500.c
    M hw/ppc/mpc8544_guts.c
    M hw/ppc/ppc.c
    M hw/ppc/ppc405_uc.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_rtas.c
    M hw/s390x/ipl.c
    M hw/sh4/r2d.c
    M hw/timer/etraxfs_timer.c
    M hw/timer/m48t59.c
    M hw/timer/milkymist-sysctl.c
    M hw/timer/pxa2xx_timer.c
    M hw/watchdog/watchdog.c
    M hw/xenpv/xen_domainbuild.c
    M hw/xtensa/xtfpga.c
    M include/sysemu/replay.h
    M include/sysemu/sysemu.h
    M kvm-all.c
    M migration/colo.c
    M migration/savevm.c
    M os-win32.c
    M qapi-schema.json
    M qapi/event.json
    M qemu-img.c
    M qemu-io.c
    M qmp.c
    M replay/replay-internal.h
    M replay/replay.c
    M scripts/qmp/qom-set
    M target/alpha/sys_helper.c
    M target/arm/psci.c
    M target/i386/excp_helper.c
    M target/i386/hax-all.c
    M target/i386/helper.c
    M target/i386/kvm.c
    M target/s390x/helper.c
    M target/s390x/kvm.c
    M target/s390x/misc_helper.c
    M target/sparc/int32_helper.c
    M tests/qemu-iotests/071.out
    M tests/qemu-iotests/081.out
    M tests/qemu-iotests/087.out
    M tests/qemu-iotests/094.out
    M tests/qemu-iotests/117.out
    M tests/qemu-iotests/119.out
    M tests/qemu-iotests/120.out
    M tests/qemu-iotests/140.out
    M tests/qemu-iotests/143.out
    M tests/qemu-iotests/156.out
    M trace-events
    M ui/cocoa.m
    M ui/sdl.c
    M ui/sdl2.c
    M util/qemu-sockets.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'armbru/tags/pull-qapi-2017-05-23' into staging

QAPI patches for 2017-05-23

# gpg: Signature made Tue 23 May 2017 12:33:32 PM BST
# gpg:                using RSA key 0x3870B400EB918653
# gpg: Good signature from "Markus Armbruster <address@hidden>"
# gpg:                 aka "Markus Armbruster <address@hidden>"
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* armbru/tags/pull-qapi-2017-05-23:
  qapi-schema: Remove obsolete note from ObjectTypeInfo
  block: Use QDict helpers for --force-share
  shutdown: Expose bool cause in SHUTDOWN and RESET events
  shutdown: Add source information to SHUTDOWN and RESET
  shutdown: Preserve shutdown cause through replay
  shutdown: Prepare for use of an enum in reset/shutdown_request
  shutdown: Simplify shutdown_signal
  sockets: Plug memory leak in socket_address_flatten()
  scripts/qmp/qom-set: fix the value argument passed to srv.command()

Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 5bb0d22cb41a366efff662d45bec26ab343b5532
      
https://github.com/qemu/qemu/commit/5bb0d22cb41a366efff662d45bec26ab343b5532
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M hw/intc/xics.c
    M hw/intc/xics_kvm.c
    M hw/intc/xics_spapr.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_cpu_core.c
    M hw/ppc/spapr_drc.c
    M hw/ppc/spapr_events.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_pci.c
    M include/hw/pci-host/spapr.h
    M include/hw/ppc/spapr.h
    M include/hw/ppc/spapr_drc.h
    M include/hw/ppc/xics.h
    M target/ppc/excp_helper.c

  Log Message:
  -----------
  Merge remote-tracking branch 'dgibson/tags/ppc-for-2.10-20170525' into staging

ppc patch queue 2017-05-25

Assorted accumulated patches.  These are nearly all bugfixes at one
level or another - some for longstanding problems, others for some
regressions caused by more recent cleanups.

This includes preliminary patches towards fixing migration for Radix
Page Table guests under POWER9 and also fixing some migration
regressions due to the re-organization of the interrupt controller
code.  Not all the pieces are there yet, so those still won't quite
work, but the preliminary changes make sense on their own.

# gpg: Signature made Thu 25 May 2017 04:50:00 AM BST
# gpg:                using RSA key 0x6C38CACA20D9B392
# gpg: Good signature from "David Gibson <address@hidden>"
# gpg:                 aka "David Gibson (kernel.org) <address@hidden>"
# gpg:                 aka "David Gibson (Red Hat) <address@hidden>"
# gpg:                 aka "David Gibson (ozlabs.org) <address@hidden>"
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* dgibson/tags/ppc-for-2.10-20170525:
  xics: add unrealize handler
  hw/ppc/spapr.c: recover pending LMB unplug info in spapr_lmb_release
  hw/ppc: migrating the DRC state of hotplugged devices
  hw/ppc: removing drc->detach_cb and drc->detach_cb_opaque
  hw/ppc/spapr.c: adding pending_dimm_unplugs to sPAPRMachineState
  spapr: add pre_plug function for memory
  pseries: Restore support for total vcpus not a multiple of threads-per-core 
for old machine types
  pseries: Split CAS PVR negotiation out into a separate function
  spapr: fix error reporting in xics_system_init()
  spapr_cpu_core: drop reference on ICP object during CPU realization
  hw/ppc/spapr_events.c: removing 'exception' from sPAPREventLogEntry
  spapr: ensure core_slot isn't NULL in spapr_core_unplug()
  xics_kvm: cache already enabled vCPU ids
  spapr: Consolidate HPT freeing code into a routine
  spapr-cpu-core: release ICP object when realization fails
  spapr: sanitize error handling in spapr_ics_create()
  ppc/xics: simplify prototype of xics_spapr_init()
  target/ppc: reset reservation in do_rfi()

Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 7b6badb6a93956e83135a9b7017997cad6ea7faf
      
https://github.com/qemu/qemu/commit/7b6badb6a93956e83135a9b7017997cad6ea7faf
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M block/backup.c
    M block/commit.c
    M block/gluster.c
    M block/io.c
    M block/mirror.c
    M blockdev.c
    M blockjob.c
    M include/block/blockjob.h
    M include/block/blockjob_int.h
    M tests/test-blockjob-txn.c
    M tests/test-blockjob.c

  Log Message:
  -----------
  Merge remote-tracking branch 'jtc/tags/block-pull-request' into staging

# gpg: Signature made Fri 26 May 2017 08:22:27 PM BST
# gpg:                using RSA key 0xBDBE7B27C0DE3057
# gpg: Good signature from "Jeffrey Cody <address@hidden>"
# gpg:                 aka "Jeffrey Cody <address@hidden>"
# gpg:                 aka "Jeffrey Cody <address@hidden>"
# Primary key fingerprint: 9957 4B4D 3474 90E7 9D98  D624 BDBE 7B27 C0DE 3057

* jtc/tags/block-pull-request:
  block/gluster: glfs_lseek() workaround
  blockjob: use deferred_to_main_loop to indicate the coroutine has ended
  blockjob: reorganize block_job_completed_txn_abort
  blockjob: strengthen a bit test-blockjob-txn
  blockjob: group BlockJob transaction functions together
  blockjob: introduce block_job_cancel_async, check iostatus invariants
  blockjob: move iostatus reset inside block_job_user_resume
  blockjob: separate monitor and blockjob APIs
  blockjob: introduce block_job_pause/resume_all
  blockjob: introduce block_job_early_fail
  blockjob: remove iostatus_reset callback
  blockjob: remove unnecessary check

Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 08f44282c1f6afe1ffdc31e45dae870ddbb32ed3
      
https://github.com/qemu/qemu/commit/08f44282c1f6afe1ffdc31e45dae870ddbb32ed3
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M slirp/socket.c
    M slirp/tcp_input.c
    M slirp/tcp_subr.c

  Log Message:
  -----------
  Merge remote-tracking branch 'sthibault/tags/samuel-thibault' into staging

slirp updates

# gpg: Signature made Sat 27 May 2017 10:36:33 PM BST
# gpg:                using RSA key 0xB0A51BF58C9179C5
# gpg: Good signature from "Samuel Thibault <address@hidden>"
# gpg:                 aka "Samuel Thibault <address@hidden>"
# gpg:                 aka "Samuel Thibault <address@hidden>"
# gpg:                 aka "Samuel Thibault <address@hidden>"
# gpg:                 aka "Samuel Thibault <address@hidden>"
# gpg:                 aka "Samuel Thibault <address@hidden>"
# gpg:                 aka "Samuel Thibault <address@hidden>"
# Primary key fingerprint: 900C B024 B679 31D4 0F82  304B D017 8C76 7D06 9EE6
#      Subkey fingerprint: AEBF 7448 FAB9 453A 4552  390E B0A5 1BF5 8C91 79C5

* sthibault/tags/samuel-thibault:
  Fix total IP header length in forwarded TCP packets
  slirp: fix leak
  slirp: Fix wrong mss bug.

Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: a3203e7dd375d4f619b72b854fcb6d3f2d14bfef
      
https://github.com/qemu/qemu/commit/a3203e7dd375d4f619b72b854fcb6d3f2d14bfef
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M exec.c
    M hw/alpha/typhoon.c
    M hw/dma/rc4030.c
    M hw/i386/acpi-build.c
    M hw/i386/amd_iommu.c
    M hw/i386/intel_iommu.c
    M hw/i386/intel_iommu_internal.h
    M hw/i386/trace-events
    M hw/i386/x86-iommu.c
    M hw/net/virtio-net.c
    M hw/pci-host/apb.c
    M hw/ppc/spapr_iommu.c
    M hw/s390x/s390-pci-bus.c
    M hw/s390x/s390-pci-inst.c
    M hw/vfio/common.c
    M hw/virtio/vhost-user.c
    M include/exec/memory.h
    M include/hw/compat.h
    M include/hw/i386/x86-iommu.h
    M include/hw/virtio/virtio-net.h
    M include/hw/virtio/virtio.h
    M memory.c
    M tests/acpi-test-data/pc/SRAT.memhp
    M tests/acpi-test-data/q35/SRAT.memhp

  Log Message:
  -----------
  Merge remote-tracking branch 'mst/tags/for_upstream' into staging

pci, virtio, vhost: fixes

A bunch of fixes all over the place. Most notably this fixes
the new MTU feature when using vhost.

Signed-off-by: Michael S. Tsirkin <address@hidden>

# gpg: Signature made Mon 29 May 2017 01:10:24 AM BST
# gpg:                using RSA key 0x281F0DB8D28D5469
# gpg: Good signature from "Michael S. Tsirkin <address@hidden>"
# gpg:                 aka "Michael S. Tsirkin <address@hidden>"
# Primary key fingerprint: 0270 606B 6F3C DF3D 0B17  0970 C350 3912 AFBE 8E67
#      Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA  8A0D 281F 0DB8 D28D 5469

* mst/tags/for_upstream:
  acpi-test: update expected files
  pc: ACPI BIOS: use highest NUMA node for hotplug mem hole SRAT entry
  vhost-user: pass message as a pointer to process_message_reply()
  virtio_net: Bypass backends for MTU feature negotiation
  intel_iommu: turn off pt before 2.9
  intel_iommu: support passthrough (PT)
  intel_iommu: allow dev-iotlb context entry conditionally
  intel_iommu: use IOMMU_ACCESS_FLAG()
  intel_iommu: provide vtd_ce_get_type()
  intel_iommu: renaming context entry helpers
  x86-iommu: use DeviceClass properties
  memory: remove the last param in memory_region_iommu_replay()
  memory: tune last param of iommu_ops.translate()

Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 697e42dec86d9ae706d4ed42c71acb5f35a463c8
      
https://github.com/qemu/qemu/commit/697e42dec86d9ae706d4ed42c71acb5f35a463c8
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M default-configs/pci.mak
    M hmp-commands.hx
    M hw/usb/Makefile.objs
    M hw/usb/core.c
    M hw/usb/dev-hub.c
    M hw/usb/dev-serial.c
    M hw/usb/hcd-ehci.c
    A hw/usb/hcd-xhci-nec.c
    M hw/usb/hcd-xhci.c
    A hw/usb/hcd-xhci.h
    M qemu-options.hx
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'kraxel/tags/pull-usb-20170529-1' into staging

usb: depricate legacy options and hmp commands
usb: fixes for ehci and hub, split xhci variants

# gpg: Signature made Mon 29 May 2017 02:07:17 PM BST
# gpg:                using RSA key 0x4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <address@hidden>"
# gpg:                 aka "Gerd Hoffmann <address@hidden>"
# gpg:                 aka "Gerd Hoffmann (private) <address@hidden>"
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* kraxel/tags/pull-usb-20170529-1:
  ehci: fix frame timer invocation.
  usb: don't wakeup during coldplug
  usb-hub: set PORT_STAT_C_SUSPEND on host-initiated wake-up
  xhci: add CONFIG_USB_XHCI_NEC option
  xhci: split into multiple files
  usb: Simplify the parameter parsing of the legacy usb serial device
  usb: Deprecate HMP commands usb_add and usb_del
  usb: Deprecate the legacy -usbdevice option
  ehci: fix overflow in frame timer code

Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 0748b3526e8cb78b9cd64208426bfc3d54a72b04
      
https://github.com/qemu/qemu/commit/0748b3526e8cb78b9cd64208426bfc3d54a72b04
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2017-05-30 (Tue, 30 May 2017)

  Changed paths:
    M block.c
    M block/file-posix.c
    M block/file-win32.c
    M block/mirror.c
    M block/qcow2-cluster.c
    M block/qcow2.c
    M block/stream.c
    M hw/block/nvme.c
    M hw/block/nvme.h
    M include/block/block_int.h
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi
    M tests/qemu-iotests/030
    M tests/qemu-iotests/030.out
    M tests/qemu-iotests/060.out
    M tests/qemu-iotests/147

  Log Message:
  -----------
  Merge remote-tracking branch 'kwolf/tags/for-upstream' into staging

Block layer patches

# gpg: Signature made Mon 29 May 2017 03:34:59 PM BST
# gpg:                using RSA key 0x7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <address@hidden>"
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* kwolf/tags/for-upstream:
  block/file-*: *_parse_filename() and colons
  block: Fix backing paths for filenames with colons
  block: Tweak error message related to qemu-img amend
  qemu-img: Fix leakage of options on error
  qemu-img: copy *key-secret opts when opening newly created files
  qemu-img: introduce --target-image-opts for 'convert' command
  qemu-img: fix --image-opts usage with dd command
  qemu-img: add support for --object with 'dd' command
  qemu-img: Fix documentation of convert
  qcow2: remove extra local_error variable
  mirror: Drop permissions on s->target on completion
  nvme: Add support for Controller Memory Buffers
  iotests: 147: Don't test inet6 if not available
  qemu-iotests: Test streaming with missing job ID
  stream: fix crash in stream_start() when block_job_create() fails

Signed-off-by: Stefan Hajnoczi <address@hidden>


Compare: https://github.com/qemu/qemu/compare/9964e96dc999...0748b3526e8c

reply via email to

[Prev in Thread] Current Thread [Next in Thread]