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

From: Jesper Juhl
Date: Sun Dec 11 2005 - 00:41:54 EST


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.


Signed-off-by: Jesper Juhl <jesper.juhl@xxxxxxxxx>
---

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

--- linux-2.6.15-rc5-git1-orig/drivers/pci/hotplug/pciehprm_acpi.c 2005-12-04 18:48:04.000000000 +0100
+++ linux-2.6.15-rc5-git1/drivers/pci/hotplug/pciehprm_acpi.c 2005-12-11 05:27:16.000000000 +0100
@@ -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) {



-
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/