- Complete r231621 by also blacklisting the bridge used by VMware for PCIe

devices. While at it, update the comment now that we know that MSI-X
  doesn't work with ESXi 5.1 for Intel 82576 either and the underlying issue
  is a bug in the MSI-X allocation code of the hypervisor.
  Reported by: Harald Schmalzbauer
- Make the nomatch table const.

MFC after:	1 week
This commit is contained in:
marius 2013-03-02 15:54:02 +00:00
parent 44df97db57
commit 718767a4c1

View File

@ -234,10 +234,11 @@ static const struct pci_quirk pci_quirks[] = {
{ 0x74501022, PCI_QUIRK_DISABLE_MSI, 0, 0 },
/*
* MSI-X doesn't work with at least LSI SAS1068E passed through by
* VMware.
* MSI-X allocation doesn't work properly for devices passed through
* by VMware up to at least ESXi 5.1.
*/
{ 0x079015ad, PCI_QUIRK_DISABLE_MSI, 0, 0 },
{ 0x079015ad, PCI_QUIRK_DISABLE_MSI, 0, 0 }, /* PCI/PCI-X */
{ 0x07a015ad, PCI_QUIRK_DISABLE_MSI, 0, 0 }, /* PCIe */
/*
* Some virtualization environments emulate an older chipset
@ -3643,11 +3644,11 @@ pci_print_child(device_t dev, device_t child)
return (retval);
}
static struct
static const struct
{
int class;
int subclass;
char *desc;
int class;
int subclass;
const char *desc;
} pci_nomatch_tab[] = {
{PCIC_OLD, -1, "old"},
{PCIC_OLD, PCIS_OLD_NONVGA, "non-VGA display device"},
@ -3739,8 +3740,9 @@ static struct
void
pci_probe_nomatch(device_t dev, device_t child)
{
int i;
char *cp, *scp, *device;
int i;
const char *cp, *scp;
char *device;
/*
* Look for a listing for this device in a loaded device database.
@ -3773,7 +3775,6 @@ pci_probe_nomatch(device_t dev, device_t child)
printf(" at device %d.%d (no driver attached)\n",
pci_get_slot(child), pci_get_function(child));
pci_cfg_save(child, device_get_ivars(child), 1);
return;
}
/*