tree eb44098ade96974f811b5861135cdd8a9746b587
parent 331c5e2091009f170554fed4ef884aeea871e4bb
parent 3f1e1478db2d67098d98f2c3acf5a4946b7fb643
author Peter Maydell <peter.maydell@linaro.org> 1446112192 +0000
committer Peter Maydell <peter.maydell@linaro.org> 1446112192 +0000
mergetag object 3f1e1478db2d67098d98f2c3acf5a4946b7fb643
 type commit
 tag for_upstream
 tagger Michael S. Tsirkin <mst@redhat.com> 1446111369 +0200
 
 virtio, pc, memory: fixes+features for 2.5
 
 New features:
     This enables hotplug for multifunction devices.
     Patches are very small, so I think it's OK to merge
     at this stage.
 
     There's also some new infrastructure for vhost-user testing
     not enabled yet so it's harmless to merge.
 
 I've reverted the "gap between DIMMs" workaround, as it seems too risky, and
 applied my own patch in virtio, but not in dataplane code.  This means that
 dataplane is broken for some complex DIMM configurations for now.  Waiting for
 Stefan to review the dataplane fix.
 
 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJWMeiQAAoJECgfDbjSjVRpPp0IAIBR6oclUoH6SlD/4uzIJxDy
 ErrLCYCjC01L/hJLfbTfmu3kGyGlDURYZ4/mRz9NjW+gH6n6irRTw8i3+hh7UzJU
 WhL6+u6UDqW5YoeJGJSmdOAmukuqdToQ8He9MSvwOT81i+XlR+0QP4A4jneyQu9Q
 LZxVELn+6mAEU4ySK+gtREI/fethsVRQ27Klxn+6k2kBvCqXCyNYh3XQN25sjG1V
 PrRZcfKgb08vDaMJB0WNnS9+FC9ywkHlYxIWTIJe1AsfLhPH/vF9/XF31O0sINxl
 F4AS6IMV7KXH3fzO/qVmMkPtqtdq32t9/k8SnHT2d6LOXSWfl9l+EDX9FFHj64U=
 =ANvi
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging

virtio, pc, memory: fixes+features for 2.5

New features:
    This enables hotplug for multifunction devices.
    Patches are very small, so I think it's OK to merge
    at this stage.

    There's also some new infrastructure for vhost-user testing
    not enabled yet so it's harmless to merge.

I've reverted the "gap between DIMMs" workaround, as it seems too risky, and
applied my own patch in virtio, but not in dataplane code.  This means that
dataplane is broken for some complex DIMM configurations for now.  Waiting for
Stefan to review the dataplane fix.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

# gpg: Signature made Thu 29 Oct 2015 09:36:16 GMT using RSA key ID D28D5469
# gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>"
# gpg:                 aka "Michael S. Tsirkin <mst@redhat.com>"

* remotes/mst/tags/for_upstream:
  enable multi-function hot-add
  remove function during multi-function hot-add
  tests/vhost-user-bridge: add vhost-user bridge application
  Revert "memhp: extend address auto assignment to support gaps"
  Revert "pc: memhp: force gaps between DIMM's GPA"
  virtio: drop virtqueue_map_sg
  virtio-scsi: convert to virtqueue_map
  virtio-serial: convert to virtio_map
  virtio-blk: convert to virtqueue_map
  virtio: switch to virtio_map
  virtio: introduce virtio_map
  mmap-alloc: fix error handling
  pc: memhp: do not emit inserting event for coldplugged DIMMs
  vhost-user-test: fix up rhel6 build
  vhost-user: cleanup msg size math
  vhost-user: cleanup struct size math

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
