patch-1.3.19 linux/drivers/pci/pci.c

Next file: linux/drivers/scsi/Makefile
Previous file: linux/drivers/pci/Makefile
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.18/linux/drivers/pci/pci.c linux/drivers/pci/pci.c
@@ -714,6 +714,7 @@
 
 		if (dev->class >> 8 == PCI_CLASS_BRIDGE_PCI) {
 			unsigned int buses;
+			unsigned short cr;
 
 			/*
 			 * Insert it into the tree of buses.
@@ -735,6 +736,8 @@
 			 * Clear all status bits and turn off memory,
 			 * I/O and master enables.
 			 */
+			pcibios_read_config_word(bus->number, devfn,
+						  PCI_COMMAND, &cr);
 			pcibios_write_config_word(bus->number, devfn,
 						  PCI_COMMAND, 0x0000);
 			pcibios_write_config_word(bus->number, devfn,
@@ -763,6 +766,8 @@
 			  | ((unsigned int)(child->subordinate) << 16);
 			pcibios_write_config_dword(bus->number, devfn, 0x18,
 						   buses);
+			pcibios_write_config_word(bus->number, devfn,
+						  PCI_COMMAND, cr);
 		}
 	}
 	/*

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this