Skip to contentSkip to conversation

Reduce nr of ptr derefs in drivers/pci/hotplug/pciehprm_acpi.c

PATCH New Jesper Juhl 1 participant 1 message Dec 11, 2005

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Reduce nr of ptr derefs in drivers/pci/hotplug/pciehprm_acpi.c

Here's a small patch to reduce the nr. of pointer dereferences in drivers/pci/hotplug/pciehprm_acpi.c

Benefits:
- micro speed optimization due to fewer pointer derefs
- generated code is slightly smaller
- better readability

Please consider applying.

---

 drivers/pci/hotplug/pciehprm_acpi.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

orig:

   text    data     bss     dec     hex filename
   2013       0     256    2269     8dd drivers/pci/hotplug/pciehprm_acpi.o
patched:
   text    data     bss     dec     hex filename
   2002       0     256    2258     8d2 drivers/pci/hotplug/pciehprm_acpi.o
drivers/pci/hotplug/pciehprm_acpi.c +8 -5
@@ -174,7 +174,9 @@ int pciehp_get_hp_hw_control_from_firmwa
 	acpi_status status;
 	acpi_handle chandle, handle = DEVICE_ACPI_HANDLE(&(dev->dev));
 	struct pci_dev *pdev = dev;
+	struct pci_bus *parent;
 	u8 *path_name;
+
 	/*
 	 * Per PCI firmware specification, we should run the ACPI _OSC
 	 * method to get control of hotplug hardware before using it.
@@ -190,17 +192,18 @@ int pciehp_get_hp_hw_control_from_firmwa
 		 */
 		if (!pdev || !pdev->bus->parent)
 			break;
+		parent = pdev->bus->parent;
 		dbg("Could not find %s in acpi namespace, trying parent\n",
 				pci_name(pdev));
-		if (!pdev->bus->parent->self)
+		if (!parent->self)
 			/* Parent must be a host bridge */
 			handle = acpi_get_pci_rootbridge_handle(
-					pci_domain_nr(pdev->bus->parent),
-					pdev->bus->parent->number);
+					pci_domain_nr(parent),
+					parent->number);
 		else
 			handle = DEVICE_ACPI_HANDLE(
-					&(pdev->bus->parent->self->dev));
-		pdev = pdev->bus->parent->self;
+					&(parent->self->dev));
+		pdev = parent->self;
 	}
 
 	while (handle) {