Subject: PCI: Fix PCI bus mastering enable problem in pciehp

From: Rajesh Shah <[email-masked]>
Date: Tue, 16 Aug 2005 17:32:04 -0700

Martin Franc reported that the pciehp driver was not enabling bus
master capability on his hot-plugged card. pciehprm_enable_card()
was updating the PCI command register only if _HPP indicated a
value for SERR or PERR that was different from the current setting.
I don't have hardware that reproduces this problem, but Martin
reports that this patch fixes the problem for him.

Signed-off-by: Rajesh Shah <[email-masked]>
Signed-off-by: Greg Kroah-Hartman <[email-masked]>

---
 drivers/pci/hotplug/pciehprm_acpi.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- gregkh-2.6.orig/drivers/pci/hotplug/pciehprm_acpi.c	2005-08-28 16:41:01.000000000 -0700
+++ gregkh-2.6/drivers/pci/hotplug/pciehprm_acpi.c	2005-09-09 13:51:46.000000000 -0700
@@ -1696,15 +1696,15 @@ void pciehprm_enable_card(
 	pci_bus->number = func->bus;
 	devfn = PCI_DEVFN(func->device, func->function);
 
-	rc = pci_bus_read_config_word(pci_bus, devfn, PCI_COMMAND, &command);
+	rc = pci_bus_read_config_word(pci_bus, devfn, PCI_COMMAND, &cmd);
 
 	if (card_type == PCI_HEADER_TYPE_BRIDGE) {
-		rc = pci_bus_read_config_word(pci_bus, devfn, PCI_BRIDGE_CONTROL, &bcommand);
+		rc = pci_bus_read_config_word(pci_bus, devfn, PCI_BRIDGE_CONTROL, &bcmd);
 	}
 
-	cmd = command  = command | PCI_COMMAND_MASTER | PCI_COMMAND_INVALIDATE
+	command  = cmd | PCI_COMMAND_MASTER | PCI_COMMAND_INVALIDATE
 		| PCI_COMMAND_IO | PCI_COMMAND_MEMORY;
-	bcmd = bcommand  = bcommand | PCI_BRIDGE_CTL_NO_ISA;
+	bcommand  = bcmd | PCI_BRIDGE_CTL_NO_ISA;
 
 	ab = find_acpi_bridge_by_bus(acpi_bridges_head, ctrl->seg, ctrl->bus);
 	if (ab) {