Reduce nr of ptr derefs in drivers/pci/hotplug/pciehprm_acpi.c
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.
Signed-off-by Jesper Juhl <[email protected]>
---
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_firmwaacpi_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) {