pcie: fix link active status bit migration
commita87cef825ac9422ba69d48e85571065074c8ccdf
authorMichael S. Tsirkin <mst@redhat.com>
Tue, 19 Jul 2016 20:16:19 +0000 (19 23:16 +0300)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Fri, 5 Aug 2016 21:45:19 +0000 (5 16:45 -0500)
treea108db722aae13e39e5aba7593d7ee3a9c231348
parent97b5a97f2feeea89b07b3a8395c326b351227d28
pcie: fix link active status bit migration

We changed link status register in pci express endpoint capability
over time. Specifically,

commit b2101eae63ea57b571cee4a9075a4287d24ba4a4 ("pcie: Set the "link
active" in the link status register") set data link layer link active
bit in this register without adding compatibility to old machine types.

When migrating from qemu 2.3 and older this affects xhci devices which
under machine type 2.0 and older have a pci express endpoint capability
even if they are on a pci bus.

Add compatibility flags to make this bit value match what it was under
2.3.

Additionally, to avoid breaking migration from qemu 2.3 and up,
suppress checking link status during migration: this seems sane
since hardware can change link status at any time.

https://bugzilla.redhat.com/show_bug.cgi?id=1352860

Reported-by: Gerd Hoffmann <kraxel@redhat.com>
Fixes: b2101eae63ea57b571cee4a9075a4287d24ba4a4
    ("pcie: Set the "link active" in the link status register")
Cc: qemu-stable@nongnu.org
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 6b4495401bdf442457b713b7e3994b465c55af35)
Conflicts:
hw/pci/pcie.c

* removed functional dependency on 6383292

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/pci/pci.c
hw/pci/pcie.c
include/hw/compat.h
include/hw/pci/pci.h