e1000: Don't set the Capabilities List bit
authordann frazier <dann.frazier@canonical.com>
Wed, 21 Sep 2011 20:06:25 +0000 (14:06 -0600)
committerAnthony Liguori <aliguori@us.ibm.com>
Fri, 23 Sep 2011 15:55:32 +0000 (10:55 -0500)
[Originally sent to qemu-kvm list, but I was redirected here]

The Capabilities Pointer is NULL, so this bit shouldn't be set. The state of
this bit doesn't appear to change any behavior on Linux/Windows versions we've
tested, but it does cause Windows' PCI/PCI Express Compliance Test to balk.

I happen to have a physical 82540EM controller, and it also sets the
Capabilities Bit, but it actually has items on the capabilities list to go
with it :)

Signed-off-by: dann frazier <dann.frazier@canonical.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
hw/e1000.c

index 6a3a941488fa3d431a82ee7b3b2f44aeee16b72c..ce8fc8b510d411bf572a1ca8300df334a766285f 100644 (file)
@@ -1151,8 +1151,6 @@ static int pci_e1000_init(PCIDevice *pci_dev)
 
     pci_conf = d->dev.config;
 
-    /* TODO: we have no capabilities, so why is this bit set? */
-    pci_set_word(pci_conf + PCI_STATUS, PCI_STATUS_CAP_LIST);
     /* TODO: RST# value should be 0, PCI spec 6.2.4 */
     pci_conf[PCI_CACHE_LINE_SIZE] = 0x10;