qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] b97318: pci/pcie: stop plug/unplug if the slo


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] b97318: pci/pcie: stop plug/unplug if the slot is locked
Date: Fri, 18 Jan 2019 07:56:13 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: b9731850d746e528d317097f907f27116798d7fe
      
https://github.com/qemu/qemu/commit/b9731850d746e528d317097f907f27116798d7fe
  Author: David Hildenbrand <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

  Changed paths:
    M hw/pci/pcie.c
    M hw/pci/pcie_port.c
    M include/hw/pci/pcie.h

  Log Message:
  -----------
  pci/pcie: stop plug/unplug if the slot is locked

We better stop right away. For now, errors would be partially ignored
(so the guest might get informed or the device might get unplugged),
although actual plug/unplug will be reported as failed to the user.

While at it, properly move the check to the pre_plug handler for the plug
case, as we can test the slot state before the device will be realized.

Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 17323e8b689a1f6d1b711df034e9ee3a88ff27ba
      
https://github.com/qemu/qemu/commit/17323e8b689a1f6d1b711df034e9ee3a88ff27ba
  Author: Dongli Zhang <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

  Changed paths:
    M hw/pci/msix.c

  Log Message:
  -----------
  msix: make pba size math more uniform

In msix_exclusive_bar the bar_pba_size is more than what the pba is
expected to have, although this never affects the bar size.

Specifically, the math in msix_init_exclusive_bar allocates too much
memory in some cases.

For example consider nentries = 8.  msix_exclusive_bar will give us
bar_pba_size = 16.  So 16 bytes.  However 8 bytes would be enough - this
is all that the spec requires.

So in practice bar_pba_size sometimes allocates an extra 8 bytes but
never more.

Since each MSIX entry size is 16 bytes, and since we make sure that
table+pba is a power of two, this always leaves a multiple of 16 bytes
for the PBA, so extra 8 bytes have no effect.

However, its ugly to have pba size temporary variable have an incorrect
value.  For consistency switch to the formula used in msix_init.

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


  Commit: 5a0e75f0a9ad063ebaa7eb19b82104f00acb80a0
      
https://github.com/qemu/qemu/commit/5a0e75f0a9ad063ebaa7eb19b82104f00acb80a0
  Author: Thomas Huth <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

  Changed paths:
    M docs/specs/ivshmem-spec.txt
    M hw/i386/pc_piix.c
    M hw/misc/ivshmem.c
    M qemu-deprecated.texi
    M scripts/device-crash-test
    M tests/ivshmem-test.c

  Log Message:
  -----------
  hw/misc/ivshmem: Remove deprecated "ivshmem" legacy device

It's been marked as deprecated in QEMU v2.6.0 already, so really nobody
should use the legacy "ivshmem" device anymore (but use ivshmem-plain or
ivshmem-doorbell instead). Time to remove the deprecated device now.

Belatedly also update a mention of the deprecated "ivshmem" in the file
docs/specs/ivshmem-spec.txt to "ivshmem-doorbell". Missed in commit
5400c02b90b ("ivshmem: Split ivshmem-plain, ivshmem-doorbell off ivshmem").

Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: a5390d936714482ac5996e1635a6ffd9c3c133df
      
https://github.com/qemu/qemu/commit/a5390d936714482ac5996e1635a6ffd9c3c133df
  Author: Jian Wang <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

  Changed paths:
    M hw/block/vhost-user-blk.c
    M hw/scsi/vhost-scsi.c
    M hw/scsi/vhost-user-scsi.c

  Log Message:
  -----------
  qemu: avoid memory leak while remove disk

Memset vhost_dev to zero in the vhost_dev_cleanup function.
This causes dev.vqs to be NULL, so that
vqs does not free up space when calling the g_free function.
This will result in a memory leak. But you can't release vqs
directly in the vhost_dev_cleanup function, because vhost_net
will also call this function, and vhost_net's vqs is assigned by array.
In order to solve this problem, we first save the pointer of vqs,
and release the space of vqs after vhost_dev_cleanup is called.

Signed-off-by: Jian Wang <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 82248cd45e6f82da892127c4749ae89335217e31
      
https://github.com/qemu/qemu/commit/82248cd45e6f82da892127c4749ae89335217e31
  Author: Li Qiang <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

  Changed paths:
    M tests/vhost-user-test.c

  Log Message:
  -----------
  tests: vhost-user-test: initialize 'fd' in chr_read

Currently when processing VHOST_USER_SET_VRING_CALL
if 'qemu_chr_fe_get_msgfds' get no fd, the 'fd' will
be a stack uninitialized value.

Signed-off-by: Li Qiang <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: b0aa77d36d9150aaa7acd8b86e4e65162939d0bf
      
https://github.com/qemu/qemu/commit/b0aa77d36d9150aaa7acd8b86e4e65162939d0bf
  Author: Li Qiang <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

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

  Log Message:
  -----------
  vhost-user: fix ioeventfd_enabled

Currently, the vhost-user-test assumes the eventfd is available.
However it's not true because the accel is qtest. So the
'vhost_set_vring_file' will not add fds to the msg and the server
side of vhost-user-test will be broken. The bug is in 'ioeventfd_enabled'.
We should make this function return true if not using kvm accel.

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


  Commit: da93b82079dcb43885a84bc25b746fd15ae29dfb
      
https://github.com/qemu/qemu/commit/da93b82079dcb43885a84bc25b746fd15ae29dfb
  Author: Li Qiang <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

  Changed paths:
    M util/oslib-posix.c

  Log Message:
  -----------
  util: check the return value of fcntl in qemu_set_{block, nonblock}

Assert that the return value is not an error. This is like commit
7e6478e7d4f for qemu_set_cloexec.

Signed-off-by: Li Qiang <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 81eb530db4ce24b7cc3cd8303505a8053ee1b6cc
      
https://github.com/qemu/qemu/commit/81eb530db4ce24b7cc3cd8303505a8053ee1b6cc
  Author: Igor Mammedov <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

  Changed paths:
    M tests/acpi-utils.h
    M tests/bios-tables-test.c

  Log Message:
  -----------
  tests: acpi: use AcpiSdtTable::aml in consistent way

Currently in the 1st case we store table body fetched from QEMU in
AcpiSdtTable::aml minus it's header but in the 2nd case when we
load reference aml from disk, it holds whole blob including header.
More over in the 1st case, we read header in separate AcpiSdtTable::header
structure and then jump over hoops to fixup tables and combine both.

Treat AcpiSdtTable::aml as whole table blob approach in both cases
and when fetching tables from QEMU, first get table length and then
fetch whole table into AcpiSdtTable::aml instead if doing it field
by field.

As result
 * AcpiSdtTable::aml is used in consistent manner
 * FADT fixups use offsets from spec instead of being shifted by
   header length
 * calculating checksums and dumping blobs becomes simpler

Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: Thomas Huth <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: db5754498878c754a1ea755e726816ee50cbf2c0
      
https://github.com/qemu/qemu/commit/db5754498878c754a1ea755e726816ee50cbf2c0
  Author: Igor Mammedov <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

  Changed paths:
    M tests/bios-tables-test.c

  Log Message:
  -----------
  tests: acpi: make sure FADT is fetched only once

Whole FADT is fetched as part of RSDT referenced tables in
fetch_rsdt_referenced_tables() albeit a bit later than when FADT
is partially parsed in fadt_fetch_facs_and_dsdt_ptrs().
However there is no reason for calling fetch_rsdt_referenced_tables()
so late, just move it right after we fetched RSDT and before
fadt_fetch_facs_and_dsdt_ptrs(). That way we can reuse whole FADT
fetched by fetch_rsdt_referenced_tables() and avoid duplicate
custom fields fetching in fadt_fetch_facs_and_dsdt_ptrs().

While at it rename fadt_fetch_facs_and_dsdt_ptrs() to
test_acpi_fadt_table(). The follow up patch will merge
fadt_fetch_facs_and_dsdt_ptrs() into test_acpi_rsdt_table(),
so that we would end up calling only test_acpi_FOO_table()
for consistency for tables that require special processing.

Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: Thomas Huth <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 569afd8428a5d0d9dab5be60df46920fb277194c
      
https://github.com/qemu/qemu/commit/569afd8428a5d0d9dab5be60df46920fb277194c
  Author: Igor Mammedov <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

  Changed paths:
    M tests/bios-tables-test.c

  Log Message:
  -----------
  tests: acpi: simplify rsdt handling

RSDT referenced tables always have length at offset 4 and checksum at
offset 9, that's enough for reusing fetch_table() and replacing custom
RSDT fetching code with it.
While at it
 * merge fetch_rsdt_referenced_tables() into test_acpi_rsdt_table()
 * drop test_data::rsdt_table/rsdt_tables_addr/rsdt_tables_nr since
   we need this data only for duration of test_acpi_rsdt_table() to
   fetch other tables and use locals instead.

Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: Thomas Huth <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 59f9c6cc014309cde537842af2104b2f9956b0d6
      
https://github.com/qemu/qemu/commit/59f9c6cc014309cde537842af2104b2f9956b0d6
  Author: Igor Mammedov <address@hidden>
  Date:   2019-01-14 (Mon, 14 Jan 2019)

  Changed paths:
    M tests/bios-tables-test.c

  Log Message:
  -----------
  tests: acpi: reuse fetch_table() for fetching FACS and DSDT

It allows to remove a bit more of code duplication and
reuse common utility to get ACPI tables from guest (modulo RSDP).

While at it, consolidate signature checking into fetch_table() instead
of open-codding it.

Considering FACS is special and doesn't have checksum, make checksum
validation optin, the same goes for signature verification.

PS:
By pure accident, patch also fixes FACS not being tested against
reference table since it wasn't added to data::tables list.
But we managed not to regress it since reference file was added
by commit
   (d25979380 acpi unit-test: add test files)
back in 2013

Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: Thomas Huth <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: acee774b3dbeb7fcd294b1f96c1a286d39d9b495
      
https://github.com/qemu/qemu/commit/acee774b3dbeb7fcd294b1f96c1a286d39d9b495
  Author: Igor Mammedov <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M tests/acpi-utils.c
    M tests/acpi-utils.h
    M tests/bios-tables-test.c
    M tests/vmgenid-test.c

  Log Message:
  -----------
  tests: acpi: reuse fetch_table() in vmgenid-test

Move fetch_table() into acpi-utils.c renaming it to acpi_fetch_table()
and reuse it in vmgenid-test that reads RSDT and then tables it references,
to find and parse VMGNEID SSDT.
While at it wrap RSDT referenced tables enumeration into FOREACH macro
(similar to what we do with QLIST_FOREACH & co) to reuse it with bios and
vmgenid tests.

Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: Thomas Huth <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 3314778d8834a9c446b14b340dbb0fdf07d01975
      
https://github.com/qemu/qemu/commit/3314778d8834a9c446b14b340dbb0fdf07d01975
  Author: Igor Mammedov <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M tests/acpi-utils.h
    M tests/bios-tables-test.c

  Log Message:
  -----------
  tests: smbios: fetch whole table in one step instead of reading it step by 
step

replace a bunch of ACPI_READ_ARRAY/ACPI_READ_FIELD macro, that read
SMBIOS table field by field with one memread() to fetch whole table
at once and drop no longer used ACPI_READ_ARRAY/ACPI_READ_FIELD macro.

Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: Thomas Huth <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: b997a04a5048e496a67f0c03f1f420cfa5a48c72
      
https://github.com/qemu/qemu/commit/b997a04a5048e496a67f0c03f1f420cfa5a48c72
  Author: Igor Mammedov <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M tests/bios-tables-test.c

  Log Message:
  -----------
  tests: acpi: squash sanitize_fadt_ptrs() into test_acpi_fadt_table()

some parts of sanitize_fadt_ptrs() do redundant job
  - locating FADT
  - checking original checksum

There is no need to do it as test_acpi_fadt_table() already does that,
so drop duplicate code and move remaining fixup code into
test_acpi_fadt_table().

Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: Thomas Huth <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: b137522c35c1708adb10c73378e97e7dd0badbfc
      
https://github.com/qemu/qemu/commit/b137522c35c1708adb10c73378e97e7dd0badbfc
  Author: Igor Mammedov <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M tests/acpi-utils.h
    M tests/bios-tables-test.c

  Log Message:
  -----------
  tests: acpi: use AcpiSdtTable::aml instead of AcpiSdtTable::header::signature

AcpiSdtTable::header::signature is the only remained field from
AcpiTableHeader structure used by tests. Instead of using packed
structure to access signature, just read it directly from table
blob and remove no longer used AcpiSdtTable::header / union and
keep only AcpiSdtTable::aml byte array.

Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: Thomas Huth <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 2974e916df8790fa4db2edac99627f5e3c79d7a7
      
https://github.com/qemu/qemu/commit/2974e916df8790fa4db2edac99627f5e3c79d7a7
  Author: Yuri Benditovich <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

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

  Log Message:
  -----------
  virtio-net: support RSC v4/v6 tcp traffic for Windows HCK

This commit adds implementation of RX packets
coalescing, compatible with requirements of Windows
Hardware compatibility kit.

The device enables feature VIRTIO_NET_F_RSC_EXT in
host features if it supports extended RSC functionality
as defined in the specification.
This feature requires at least one of VIRTIO_NET_F_GUEST_TSO4,
VIRTIO_NET_F_GUEST_TSO6. Windows guest driver acks
this feature only if VIRTIO_NET_F_CTRL_GUEST_OFFLOADS
is also present.

If the guest driver acks VIRTIO_NET_F_RSC_EXT feature,
the device coalesces TCPv4 and TCPv6 packets (if
respective VIRTIO_NET_F_GUEST_TSO feature is on,
populates extended RSC information in virtio header
and sets VIRTIO_NET_HDR_F_RSC_INFO bit in header flags.
The device does not recalculate checksums in the coalesced
packet, so they are not valid.

In this case:
All the data packets in a tcp connection are cached
to a single buffer in every receive interval, and will
be sent out via a timer, the 'virtio_net_rsc_timeout'
controls the interval, this value may impact the
performance and response time of tcp connection,
50000(50us) is an experience value to gain a performance
improvement, since the whql test sends packets every 100us,
so '300000(300us)' passes the test case, it is the default
value as well, tune it via the command line parameter
'rsc_interval' within 'virtio-net-pci' device, for example,
to launch a guest with interval set as '500000':

'virtio-net-pci,netdev=hostnet1,bus=pci.0,id=net1,mac=00,
guest_rsc_ext=on,rsc_interval=500000'

The timer will only be triggered if the packets pool is not empty,
and it'll drain off all the cached packets.

'NetRscChain' is used to save the segments of IPv4/6 in a
VirtIONet device.

A new segment becomes a 'Candidate' as well as it passed sanity check,
the main handler of TCP includes TCP window update, duplicated
ACK check and the real data coalescing.

An 'Candidate' segment means:
1. Segment is within current window and the sequence is the expected one.
2. 'ACK' of the segment is in the valid window.

Sanity check includes:
1. Incorrect version in IP header
2. An IP options or IP fragment
3. Not a TCP packet
4. Sanity size check to prevent buffer overflow attack.
5. An ECN packet

Even though, there might more cases should be considered such as
ip identification other flags, while it breaks the test because
windows set it to the same even it's not a fragment.

Normally it includes 2 typical ways to handle a TCP control flag,
'bypass' and 'finalize', 'bypass' means should be sent out directly,
while 'finalize' means the packets should also be bypassed, but this
should be done after search for the same connection packets in the
pool and drain all of them out, this is to avoid out of order fragment.

All the 'SYN' packets will be bypassed since this always begin a new'
connection, other flags such 'URG/FIN/RST/CWR/ECE' will trigger a
finalization, because this normally happens upon a connection is going
to be closed, an 'URG' packet also finalize current coalescing unit.

Statistics can be used to monitor the basic coalescing status, the
'out of order' and 'out of window' means how many retransmitting packets,
thus describe the performance intuitively.

Difference between ip v4 and v6 processing:
 Fragment length in ipv4 header includes itself, while it's not
 included for ipv6, thus means ipv6 can carry a real 65535 payload.

Note that main goal of implementing this feature in software
is to create reference setup for certification tests. In such
setups guest migration is not required, so the coalesced packets
not yet delivered to the guest will be lost in case of migration.

Signed-off-by: Wei Xu <address@hidden>
Signed-off-by: Yuri Benditovich <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d47e5e31c37be43dc11a7a29d168f535589dbebd
      
https://github.com/qemu/qemu/commit/d47e5e31c37be43dc11a7a29d168f535589dbebd
  Author: Yuri Benditovich <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/net/virtio-net.c

  Log Message:
  -----------
  virtio-net: changed VIRTIO_NET_F_RSC_EXT to be 61

Allocated feature bit changed in spec draft per TC request.

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


  Commit: ef7e7845b2040385f425bf39de60c700c12ceb4f
      
https://github.com/qemu/qemu/commit/ef7e7845b2040385f425bf39de60c700c12ceb4f
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    A hw/virtio/vhost-vsock-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h

  Log Message:
  -----------
  virtio: split vhost vsock bits from virtio-pci

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 7df2c7181a0792257b775a5c4171254d80083689
      
https://github.com/qemu/qemu/commit/7df2c7181a0792257b775a5c4171254d80083689
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M default-configs/virtio.mak
    M hw/virtio/Makefile.objs
    A hw/virtio/virtio-input-host-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h

  Log Message:
  -----------
  virtio: split virtio input host bits from virtio-pci

For consistency with other devices, rename
virtio_host_{initfn,pci_info} to virtio_input_host_{initfn,info}.

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 9436b8c62cbae61781f34c5c4be3ec5bc3fa1f49
      
https://github.com/qemu/qemu/commit/9436b8c62cbae61781f34c5c4be3ec5bc3fa1f49
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    A hw/virtio/virtio-input-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h

  Log Message:
  -----------
  virtio: split virtio input bits from virtio-pci

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 06d97bb63ba16a417137d820d320c7212e1043ce
      
https://github.com/qemu/qemu/commit/06d97bb63ba16a417137d820d320c7212e1043ce
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h
    A hw/virtio/virtio-rng-pci.c
    M tests/Makefile.include

  Log Message:
  -----------
  virtio: split virtio rng bits from virtio-pci

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 271458d7833b95863c472e8be9ddffd750e64a04
      
https://github.com/qemu/qemu/commit/271458d7833b95863c472e8be9ddffd750e64a04
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    A hw/virtio/virtio-balloon-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h
    M tests/Makefile.include

  Log Message:
  -----------
  virtio: split virtio balloon bits from virtio-pci

Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: ddac19f534b3b6642c511ee498cc01df5661b20e
      
https://github.com/qemu/qemu/commit/ddac19f534b3b6642c511ee498cc01df5661b20e
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    A hw/virtio/virtio-9p-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h
    M tests/Makefile.include

  Log Message:
  -----------
  virtio: split virtio 9p bits from virtio-pci

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Acked-by: Greg Kurz <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: f170c5ef2fd0f99e9b9fe72276f8b74f17eaf3c5
      
https://github.com/qemu/qemu/commit/f170c5ef2fd0f99e9b9fe72276f8b74f17eaf3c5
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    A hw/virtio/vhost-user-blk-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h

  Log Message:
  -----------
  virtio: split vhost user blk bits from virtio-pci

Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 693510dd20000f0d5edd64f1fae269b0ee320af3
      
https://github.com/qemu/qemu/commit/693510dd20000f0d5edd64f1fae269b0ee320af3
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    A hw/virtio/vhost-user-scsi-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h

  Log Message:
  -----------
  virtio: split vhost user scsi bits from virtio-pci

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 7dc768965759e3296c263027ca887e8329a3d4ee
      
https://github.com/qemu/qemu/commit/7dc768965759e3296c263027ca887e8329a3d4ee
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    A hw/virtio/vhost-scsi-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h

  Log Message:
  -----------
  virtio: split vhost scsi bits from virtio-pci

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 2f9493984e34a0ddfbccde9b747370874143e222
      
https://github.com/qemu/qemu/commit/2f9493984e34a0ddfbccde9b747370874143e222
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h
    A hw/virtio/virtio-scsi-pci.c
    M tests/Makefile.include

  Log Message:
  -----------
  virtio: split virtio scsi bits from virtio-pci

Notice that we can't still run tests with it disabled.  Both cdrom-test and
drive_del-test use virtio-scsi without checking if it is enabled.

Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: ea7af5dba5ff0297ba48a029c95adecd529e71b7
      
https://github.com/qemu/qemu/commit/ea7af5dba5ff0297ba48a029c95adecd529e71b7
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    A hw/virtio/virtio-blk-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h
    M tests/Makefile.include

  Log Message:
  -----------
  virtio: split virtio blk bits from virtio-pci

Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: cad3cd79a1d14873921dada2dfc6cc68b80cf0a5
      
https://github.com/qemu/qemu/commit/cad3cd79a1d14873921dada2dfc6cc68b80cf0a5
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    A hw/virtio/virtio-net-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h
    M tests/Makefile.include

  Log Message:
  -----------
  virtio: split virtio net bits from virtio-pci

Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: f386df1744837b17f946fa4ced87bf421be4e65e
      
https://github.com/qemu/qemu/commit/f386df1744837b17f946fa4ced87bf421be4e65e
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/Makefile.objs
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h
    A hw/virtio/virtio-serial-pci.c
    M tests/Makefile.include

  Log Message:
  -----------
  virtio: split virtio serial bits from virtio-pci

Virtio console and qga tests also depend on CONFIG_VIRTIO_SERIAL.

Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 7ecb381fcf514fd5e083eb3c9eab4eb557eba593
      
https://github.com/qemu/qemu/commit/7ecb381fcf514fd5e083eb3c9eab4eb557eba593
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/display/virtio-gpu-pci.c
    M hw/display/virtio-vga.c
    M hw/virtio/virtio-pci.h

  Log Message:
  -----------
  virtio: split virtio gpu bits from virtio-pci.h

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 7c8681d0d694bc477e225de5ccb12e07ef07fd5a
      
https://github.com/qemu/qemu/commit/7c8681d0d694bc477e225de5ccb12e07ef07fd5a
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/virtio/virtio-crypto-pci.c
    M hw/virtio/virtio-pci.h

  Log Message:
  -----------
  virtio: split virtio crypto bits from virtio-pci.h

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: ecd3b89b0549d6b82bed5e25a0a2fb153d5df4d4
      
https://github.com/qemu/qemu/commit/ecd3b89b0549d6b82bed5e25a0a2fb153d5df4d4
  Author: Juan Quintela <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M default-configs/virtio.mak

  Log Message:
  -----------
  virtio: virtio 9p really requires CONFIG_VIRTFS to work

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: d7741743f4f3d2683d1bb6938f88dc0167c21afa
      
https://github.com/qemu/qemu/commit/d7741743f4f3d2683d1bb6938f88dc0167c21afa
  Author: Eduardo Habkost <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M include/hw/qdev-core.h
    M qom/object.c

  Log Message:
  -----------
  globals: Allow global properties to be optional

Making some global properties optional will let us simplify
compat code when a given property works on most (but not all)
subclasses of a given type.

Device types will be able to opt out from optional compat
properties by simply not registering those properties.

Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 53921bfdce3f8fffcc22338633855247fb7b7a74
      
https://github.com/qemu/qemu/commit/53921bfdce3f8fffcc22338633855247fb7b7a74
  Author: Eduardo Habkost <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/core/machine.c

  Log Message:
  -----------
  virtio: Make disable-legacy/disable-modern compat properties optional

The disable-legacy and disable-modern properties apply only to
some virtio-pci devices.  Make those properties optional.

This fixes the crash introduced by commit f6e501a28ef9 ("virtio: Provide
version-specific variants of virtio PCI devices"):

  $ qemu-system-x86_64 -machine pc-i440fx-2.6 \
    -device virtio-net-pci-non-transitional
  Unexpected error in object_property_find() at qom/object.c:1092:
  qemu-system-x86_64: -device virtio-net-pci-non-transitional: can't apply \
  global virtio-pci.disable-modern=on: Property '.disable-modern' not found
  Aborted (core dumped)

Reported-by: Thomas Huth <address@hidden>
Fixes: f6e501a28ef9 ("virtio: Provide version-specific variants of virtio PCI 
devices")
Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 812e710a9624a3bf3c8bb126ac546b683edb60d5
      
https://github.com/qemu/qemu/commit/812e710a9624a3bf3c8bb126ac546b683edb60d5
  Author: Fei Li <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/misc/edu.c

  Log Message:
  -----------
  hw/misc/edu: add msi_uninit() for pci_edu_uninit()

Let's supplement the msi_uninit() when failing to realize
the pci edu device.

Reported-by: Markus Armbruster <address@hidden>
Signed-off-by: Fei Li <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: b6148757f9baa2de11304c09aaf9f9a276c825cd
      
https://github.com/qemu/qemu/commit/b6148757f9baa2de11304c09aaf9f9a276c825cd
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/core/machine.c
    M hw/tpm/tpm_crb.c
    M hw/tpm/tpm_tis.c

  Log Message:
  -----------
  tpm: add a "ppi" boolean property

The following patches implement the TPM Physical Presence Interface,
make use of a new memory region and a fw_cfg entry. Enable PPI by
default with >=4.0 machine type, to avoid migration issues.

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Tested-by: Stefan Berger <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 3b97c01e9ccdfbd517a0fd631838d6252dbfa692
      
https://github.com/qemu/qemu/commit/3b97c01e9ccdfbd517a0fd631838d6252dbfa692
  Author: Stefan Berger <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/tpm/Makefile.objs
    M hw/tpm/tpm_crb.c
    A hw/tpm/tpm_ppi.c
    A hw/tpm/tpm_ppi.h
    M hw/tpm/tpm_tis.c
    M include/hw/acpi/tpm.h

  Log Message:
  -----------
  tpm: allocate/map buffer for TPM Physical Presence interface

Implement a virtual memory device for the TPM Physical Presence interface.
The memory is located at 0xFED45000 and used by ACPI to send messages to the
firmware (BIOS) and by the firmware to provide parameters for each one of
the supported codes.

This interface should be used by all TPM devices on x86 and can be
added by calling tpm_ppi_init_io().

Note: bios_linker cannot be used to allocate the PPI memory region,
since the reserved memory should stay stable across reboots, and might
be needed before the ACPI tables are installed.

Signed-off-by: Stefan Berger <address@hidden>
Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Tested-by: Stefan Berger <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 0fe246690315335a40a132f05cb6fdc7bfb9adca
      
https://github.com/qemu/qemu/commit/0fe246690315335a40a132f05cb6fdc7bfb9adca
  Author: Stefan Berger <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M docs/specs/tpm.txt
    M hw/i386/acpi-build.c
    M include/hw/acpi/tpm.h

  Log Message:
  -----------
  acpi: expose TPM/PPI configuration parameters to firmware via fw_cfg

To avoid having to hard code the base address of the PPI virtual
memory device we introduce a fw_cfg file etc/tpm/config that holds the
base address of the PPI device, the version of the PPI interface and
the version of the attached TPM.

Signed-off-by: Stefan Berger <address@hidden>
[ Marc-André: renamed to etc/tpm/config, made it static, document it ]
Signed-off-by: Marc-André Lureau <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Tested-by: Stefan Berger <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: ac6dd31e3fe7e19be6fcaa7bf2396780b355137d
      
https://github.com/qemu/qemu/commit/ac6dd31e3fe7e19be6fcaa7bf2396780b355137d
  Author: Stefan Berger <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M docs/specs/tpm.txt
    M hw/acpi/Makefile.objs
    A hw/acpi/tpm.c
    M hw/i386/acpi-build.c
    M include/hw/acpi/tpm.h
    M stubs/tpm.c

  Log Message:
  -----------
  acpi: build TPM Physical Presence interface

The TPM Physical Presence interface consists of an ACPI part, a shared
memory part, and code in the firmware. Users can send messages to the
firmware by writing a code into the shared memory through invoking the
ACPI code. When a reboot happens, the firmware looks for the code and
acts on it by sending sequences of commands to the TPM.

This patch adds the ACPI code. It is similar to the one in EDK2 but doesn't
assume that SMIs are necessary to use. It uses a similar datastructure for
the shared memory as EDK2 does so that EDK2 and SeaBIOS could both make use
of it. I extended the shared memory data structure with an array of 256
bytes, one for each code that could be implemented. The array contains
flags describing the individual codes. This decouples the ACPI implementation
from the firmware implementation.

The underlying TCG specification is accessible from the following page.

https://trustedcomputinggroup.org/tcg-physical-presence-interface-specification/

This patch implements version 1.30.

Signed-off-by: Stefan Berger <address@hidden>
[ Marc-André - ACPI code improvements and windows fixes ]
Signed-off-by: Marc-André Lureau <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Tested-by: Stefan Berger <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: ec86c0f678a9402fb4265c8874bd2ec712b33127
      
https://github.com/qemu/qemu/commit/ec86c0f678a9402fb4265c8874bd2ec712b33127
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M docs/specs/tpm.txt
    M hw/acpi/tpm.c

  Log Message:
  -----------
  acpi: add ACPI memory clear interface

The interface is described in the "TCG Platform Reset Attack
Mitigation Specification", chapter 6 "ACPI _DSM Function". According
to Laszlo, it's not so easy to implement in OVMF, he suggested to do
it in qemu instead.

See specification documentation for more details, and next commit for
memory clear on reset handling.

The underlying TCG specification is accessible from the following
page.

https://trustedcomputinggroup.org/resource/pc-client-work-group-platform-reset-attack-mitigation-specification-version-1-0/

This patch implements version 1.0.

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Tested-by: Stefan Berger <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: ffab1be70692c55f4c81642f03d629fd84eb4b18
      
https://github.com/qemu/qemu/commit/ffab1be70692c55f4c81642f03d629fd84eb4b18
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/tpm/tpm_crb.c
    M hw/tpm/tpm_ppi.c
    M hw/tpm/tpm_ppi.h
    M hw/tpm/tpm_tis.c
    M hw/tpm/trace-events

  Log Message:
  -----------
  tpm: clear RAM when "memory overwrite" requested

Note: the "Platform Reset Attack Mitigation" specification isn't
explicit about NVDIMM, since they could have different usages. It uses
the term "system memory" generally (and also "volatile memory RAM" in
its introduction). For initial support, I propose to consider
non-volatile memory as not being subject to the memory clear. There is
an on-going discussion in the TCG "pcclientwg" working group for
future revisions.

CPU cache clearing is done unconditionally in edk2 since commit
d20ae95a13e851 (edk2-stable201811).

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Tested-by: Stefan Berger <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: e674132ae759c182d46b2e2d4cb9390d145eb6f5
      
https://github.com/qemu/qemu/commit/e674132ae759c182d46b2e2d4cb9390d145eb6f5
  Author: Yang Zhong <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/acpi/memory_hotplug.c

  Log Message:
  -----------
  hw: acpi: Fix memory hotplug AML generation error

When using the generated memory hotplug AML, the iasl
compiler would give the following error:

dsdt.dsl 266: Return (MOST (_UID, Arg0, Arg1, Arg2))
Error 6080 - Called method returns no value ^

Signed-off-by: Yang Zhong <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 31cf4b977319001238f24a4e0513835a2d19191f
      
https://github.com/qemu/qemu/commit/31cf4b977319001238f24a4e0513835a2d19191f
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M tests/data/acpi/pc/DSDT.dimmpxm
    M tests/data/acpi/pc/DSDT.memhp
    M tests/data/acpi/q35/DSDT.dimmpxm
    M tests/data/acpi/q35/DSDT.memhp
    M tests/data/acpi/q35/DSDT.mmio64

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

Update expected files affected by:
hw: acpi: Fix memory hotplug AML generation error

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


  Commit: 1daff2f8193496b0e5e0ab56dc48c570c81f804e
      
https://github.com/qemu/qemu/commit/1daff2f8193496b0e5e0ab56dc48c570c81f804e
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M include/qemu/compiler.h

  Log Message:
  -----------
  qemu/compiler: Define QEMU_NONSTRING

GCC 8 introduced the -Wstringop-truncation checker to detect truncation by
the strncat and strncpy functions (closely related to -Wstringop-overflow,
which detect buffer overflow by string-modifying functions declared in
<string.h>).

In tandem of -Wstringop-truncation, the "nonstring" attribute was added:

  The nonstring variable attribute specifies that an object or member
  declaration with type array of char, signed char, or unsigned char,
  or pointer to such a type is intended to store character arrays that
  do not necessarily contain a terminating NUL. This is useful in detecting
  uses of such arrays or pointers with functions that expect NUL-terminated
  strings, and to avoid warnings when such an array or pointer is used as
  an argument to a bounded string manipulation function such as strncpy.

  From the GCC manual: 
https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#index-nonstring-variable-attribute

Add the QEMU_NONSTRING macro which checks if the compiler supports this
attribute.

Suggested-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 97b583f46c435aaa40942ca73739d79190776b7f
      
https://github.com/qemu/qemu/commit/97b583f46c435aaa40942ca73739d79190776b7f
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M block/sheepdog.c

  Log Message:
  -----------
  block/sheepdog: Use QEMU_NONSTRING for non NUL-terminated arrays

GCC 8 added a -Wstringop-truncation warning:

  The -Wstringop-truncation warning added in GCC 8.0 via r254630 for
  bug 81117 is specifically intended to highlight likely unintended
  uses of the strncpy function that truncate the terminating NUL
  character from the source string.

This new warning leads to compilation failures:

    CC      block/sheepdog.o
  qemu/block/sheepdog.c: In function 'find_vdi_name':
  qemu/block/sheepdog.c:1239:5: error: 'strncpy' specified bound 256 equals 
destination size [-Werror=stringop-truncation]
       strncpy(buf + SD_MAX_VDI_LEN, tag, SD_MAX_VDI_TAG_LEN);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  make: *** [qemu/rules.mak:69: block/sheepdog.o] Error 1

As described previous to the strncpy() calls, the use of strncpy() is
correct here:

    /* This pair of strncpy calls ensures that the buffer is zero-filled,
     * which is desirable since we'll soon be sending those bytes, and
     * don't want the send_req to read uninitialized data.
     */
    strncpy(buf, filename, SD_MAX_VDI_LEN);
    strncpy(buf + SD_MAX_VDI_LEN, tag, SD_MAX_VDI_TAG_LEN);

Use the QEMU_NONSTRING attribute, since this array is intended to store
character arrays that do not necessarily contain a terminating NUL.

Suggested-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 9cbb8eca1729eab1123847e37454975bb555008a
      
https://github.com/qemu/qemu/commit/9cbb8eca1729eab1123847e37454975bb555008a
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M hw/acpi/core.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  hw/acpi: Use QEMU_NONSTRING for non NUL-terminated arrays

GCC 8 added a -Wstringop-truncation warning:

  The -Wstringop-truncation warning added in GCC 8.0 via r254630 for
  bug 81117 is specifically intended to highlight likely unintended
  uses of the strncpy function that truncate the terminating NUL
  character from the source string.

This new warning leads to compilation failures:

    CC      hw/acpi/core.o
  In function 'acpi_table_install', inlined from 'acpi_table_add' at 
qemu/hw/acpi/core.c:296:5:
  qemu/hw/acpi/core.c:184:9: error: 'strncpy' specified bound 4 equals 
destination size [-Werror=stringop-truncation]
     strncpy(ext_hdr->sig, hdrs->sig, sizeof ext_hdr->sig);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  make: *** [qemu/rules.mak:69: hw/acpi/core.o] Error 1

Use the QEMU_NONSTRING attribute, since ACPI tables don't require the
strings to be NUL-terminated.

Suggested-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 0a5526a18b0245dfa20a9fe453b2a9af3125d175
      
https://github.com/qemu/qemu/commit/0a5526a18b0245dfa20a9fe453b2a9af3125d175
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M migration/global_state.c

  Log Message:
  -----------
  migration: Fix stringop-truncation warning

GCC 8 added a -Wstringop-truncation warning:

  The -Wstringop-truncation warning added in GCC 8.0 via r254630 for
  bug 81117 is specifically intended to highlight likely unintended
  uses of the strncpy function that truncate the terminating NUL
  character from the source string.

This new warning leads to compilation failures:

    CC      migration/global_state.o
  qemu/migration/global_state.c: In function 'global_state_store_running':
  qemu/migration/global_state.c:45:5: error: 'strncpy' specified bound 100 
equals destination size [-Werror=stringop-truncation]
       strncpy((char *)global_state.runstate, state, 
sizeof(global_state.runstate));
       
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  make: *** [qemu/rules.mak:69: migration/global_state.o] Error 1

Adding an assert is enough to silence GCC.

(alternatively, we could hard-code "running")

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
[PMD: More verbose commit message]
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: a346af9c881147f04eb7ff9264fe1599928cf067
      
https://github.com/qemu/qemu/commit/a346af9c881147f04eb7ff9264fe1599928cf067
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-01-17 (Thu, 17 Jan 2019)

  Changed paths:
    M migration/global_state.c

  Log Message:
  -----------
  migration: Use strnlen() for fixed-size string

GCC 8 introduced the -Wstringop-overflow, which detect buffer overflow
by string-modifying functions declared in <string.h>, such strncpy(),
used in global_state_store_running().

GCC indeed found an incorrect use of strlen(), because this array
is loaded by VMSTATE_BUFFER(runstate, GlobalState) then parsed
using qapi_enum_parse which does not get the buffer length.

Use strnlen() which returns sizeof(s->runstate) if the array is not
NUL-terminated, assert the size is within range, and enforce the array
to be NUL-terminated to avoid an overflow in qapi_enum_parse().

This fixes:

    CC      migration/global_state.o
  qemu/migration/global_state.c: In function 'global_state_pre_save':
  qemu/migration/global_state.c:109:15: error: 'strlen' argument 1 declared 
attribute 'nonstring' [-Werror=stringop-overflow=]
       s->size = strlen((char *)s->runstate) + 1;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  qemu/migration/global_state.c:24:13: note: argument 'runstate' declared here
       uint8_t runstate[100] QEMU_NONSTRING;
         ^~~~~~~~
  cc1: all warnings being treated as errors
  make: *** [qemu/rules.mak:69: migration/global_state.o] Error 1

Suggested-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 51c1c135608e155d01eea774974d2b9caee9befb
      
https://github.com/qemu/qemu/commit/51c1c135608e155d01eea774974d2b9caee9befb
  Author: Peter Maydell <address@hidden>
  Date:   2019-01-18 (Fri, 18 Jan 2019)

  Changed paths:
    M block/sheepdog.c
    M default-configs/virtio.mak
    M docs/specs/ivshmem-spec.txt
    M docs/specs/tpm.txt
    M hw/acpi/Makefile.objs
    M hw/acpi/core.c
    M hw/acpi/memory_hotplug.c
    A hw/acpi/tpm.c
    M hw/block/vhost-user-blk.c
    M hw/core/machine.c
    M hw/display/virtio-gpu-pci.c
    M hw/display/virtio-vga.c
    M hw/i386/acpi-build.c
    M hw/i386/pc_piix.c
    M hw/misc/edu.c
    M hw/misc/ivshmem.c
    M hw/net/virtio-net.c
    M hw/pci/msix.c
    M hw/pci/pcie.c
    M hw/pci/pcie_port.c
    M hw/scsi/vhost-scsi.c
    M hw/scsi/vhost-user-scsi.c
    M hw/tpm/Makefile.objs
    M hw/tpm/tpm_crb.c
    A hw/tpm/tpm_ppi.c
    A hw/tpm/tpm_ppi.h
    M hw/tpm/tpm_tis.c
    M hw/tpm/trace-events
    M hw/virtio/Makefile.objs
    A hw/virtio/vhost-scsi-pci.c
    A hw/virtio/vhost-user-blk-pci.c
    A hw/virtio/vhost-user-scsi-pci.c
    M hw/virtio/vhost-user.c
    A hw/virtio/vhost-vsock-pci.c
    A hw/virtio/virtio-9p-pci.c
    A hw/virtio/virtio-balloon-pci.c
    A hw/virtio/virtio-blk-pci.c
    M hw/virtio/virtio-crypto-pci.c
    A hw/virtio/virtio-input-host-pci.c
    A hw/virtio/virtio-input-pci.c
    A hw/virtio/virtio-net-pci.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pci.h
    A hw/virtio/virtio-rng-pci.c
    A hw/virtio/virtio-scsi-pci.c
    A hw/virtio/virtio-serial-pci.c
    M include/hw/acpi/acpi-defs.h
    M include/hw/acpi/tpm.h
    M include/hw/pci/pcie.h
    M include/hw/qdev-core.h
    M include/hw/virtio/virtio-net.h
    M include/net/eth.h
    M include/qemu/compiler.h
    M migration/global_state.c
    M qemu-deprecated.texi
    M qom/object.c
    M scripts/device-crash-test
    M stubs/tpm.c
    M tests/Makefile.include
    M tests/acpi-utils.c
    M tests/acpi-utils.h
    M tests/bios-tables-test.c
    M tests/data/acpi/pc/DSDT.dimmpxm
    M tests/data/acpi/pc/DSDT.memhp
    M tests/data/acpi/q35/DSDT.dimmpxm
    M tests/data/acpi/q35/DSDT.memhp
    M tests/data/acpi/q35/DSDT.mmio64
    M tests/ivshmem-test.c
    M tests/vhost-user-test.c
    M tests/vmgenid-test.c
    M util/oslib-posix.c

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

pci, pc, virtio: fixes, features

tpm physical presence interface
rsc support in virtio net
ivshmem is removed
misc cleanups and fixes all over the place

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

# gpg: Signature made Fri 18 Jan 2019 02:11:11 GMT
# gpg:                using RSA key 281F0DB8D28D5469
# 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

* remotes/mst/tags/for_upstream: (49 commits)
  migration: Use strnlen() for fixed-size string
  migration: Fix stringop-truncation warning
  hw/acpi: Use QEMU_NONSTRING for non NUL-terminated arrays
  block/sheepdog: Use QEMU_NONSTRING for non NUL-terminated arrays
  qemu/compiler: Define QEMU_NONSTRING
  acpi: update expected files
  hw: acpi: Fix memory hotplug AML generation error
  tpm: clear RAM when "memory overwrite" requested
  acpi: add ACPI memory clear interface
  acpi: build TPM Physical Presence interface
  acpi: expose TPM/PPI configuration parameters to firmware via fw_cfg
  tpm: allocate/map buffer for TPM Physical Presence interface
  tpm: add a "ppi" boolean property
  hw/misc/edu: add msi_uninit() for pci_edu_uninit()
  virtio: Make disable-legacy/disable-modern compat properties optional
  globals: Allow global properties to be optional
  virtio: virtio 9p really requires CONFIG_VIRTFS to work
  virtio: split virtio crypto bits from virtio-pci.h
  virtio: split virtio gpu bits from virtio-pci.h
  virtio: split virtio serial bits from virtio-pci
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/681d61362d3f...51c1c135608e
      **NOTE:** This service has been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

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