e1000: Ignore the Capabilities List bit
dd8e93799f13ef82d83c185b8e71e049452f7d40 unconditionally removed the
PCI_STATUS_CAP_LIST bit from PCI_STATUS, because the e1000 does not have
capabilities. This breaks upgrades from before qemu-0.15, because there the bit
is still set and get_pci_config_device() refused to load incompatible save
states.
Remove the Capabilities List bit from the list of compatible bits, so it is not
validated for an exact match.
Signed-off-by: Philipp Hahn <hahn@univention.de>
@@ -1224,6 +1224,9 @@ static int pci_e1000_init(PCIDevice *pci_dev)
pci_conf = d->dev.config;
+ /* Ignore capability bit, which was set until qemu-0.15 */
+ d->dev.cmask[PCI_STATUS] &= ~PCI_STATUS_CAP_LIST;
+ d->dev.wmask[PCI_STATUS] &= ~PCI_STATUS_CAP_LIST;
/* TODO: RST# value should be 0, PCI spec 6.2.4 */
pci_conf[PCI_CACHE_LINE_SIZE] = 0x10;