PCI probe leaves master abort disabled in PCI_BRIDGE_CONTROL

From: David S. Miller
Date: Mon Feb 13 2006 - 20:11:38 EST

In drivers/pci/probe.c:pci_scan_bridge(), if this is not the first
pass (pass != 0) we don't restore the PCI_BRIDGE_CONTROL_REGISTER and

int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass)
/* Disable MasterAbortMode during probing to avoid reporting
of bus errors (in some architectures) */
pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &bctl);
pci_write_config_word(dev, PCI_BRIDGE_CONTROL,
if ((buses & 0xffff00) && !pcibios_assign_all_busses() && !is_cardbus) {
unsigned int cmax, busnr;
* Bus already configured by firmware, process it in the first
* pass and just note the configuration.
if (pass)
return max;

pci_write_config_word(dev, PCI_BRIDGE_CONTROL, bctl);

This doesn't seem intentional.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/