2014-07-14 20:16:33

by Rafael J. Wysocki

[permalink] [raw]
Subject: [PATCH] ACPI / hotplug / PCI: Eliminate acpiphp_dev_to_bridge()

From: Rafael J. Wysocki <[email protected]>

Since acpiphp_dev_to_bridge() is only called by acpiphp_check_host_bridge(),
move the code from it to that function directly which reduces the call
chain depth and makes the code slightly easier to follow.

Signed-off-by: Rafael J. Wysocki <[email protected]>
---
drivers/pci/hotplug/acpiphp_glue.c | 24 ++++++++----------------
1 file changed, 8 insertions(+), 16 deletions(-)

Index: linux-pm/drivers/pci/hotplug/acpiphp_glue.c
===================================================================
--- linux-pm.orig/drivers/pci/hotplug/acpiphp_glue.c
+++ linux-pm/drivers/pci/hotplug/acpiphp_glue.c
@@ -369,20 +369,6 @@ static acpi_status acpiphp_add_context(a
return AE_OK;
}

-static struct acpiphp_bridge *acpiphp_dev_to_bridge(struct acpi_device *adev)
-{
- struct acpiphp_bridge *bridge = NULL;
-
- acpi_lock_hp_context();
- if (adev->hp) {
- bridge = to_acpiphp_root_context(adev->hp)->root_bridge;
- if (bridge)
- get_bridge(bridge);
- }
- acpi_unlock_hp_context();
- return bridge;
-}
-
static void cleanup_bridge(struct acpiphp_bridge *bridge)
{
struct acpiphp_slot *slot;
@@ -753,9 +739,15 @@ static void acpiphp_sanitize_bus(struct

void acpiphp_check_host_bridge(struct acpi_device *adev)
{
- struct acpiphp_bridge *bridge;
+ struct acpiphp_bridge *bridge = NULL;

- bridge = acpiphp_dev_to_bridge(adev);
+ acpi_lock_hp_context();
+ if (adev->hp) {
+ bridge = to_acpiphp_root_context(adev->hp)->root_bridge;
+ if (bridge)
+ get_bridge(bridge);
+ }
+ acpi_unlock_hp_context();
if (bridge) {
pci_lock_rescan_remove();


2014-07-15 20:55:15

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH] ACPI / hotplug / PCI: Eliminate acpiphp_dev_to_bridge()

On Mon, Jul 14, 2014 at 2:34 PM, Rafael J. Wysocki <[email protected]> wrote:
> From: Rafael J. Wysocki <[email protected]>
>
> Since acpiphp_dev_to_bridge() is only called by acpiphp_check_host_bridge(),
> move the code from it to that function directly which reduces the call
> chain depth and makes the code slightly easier to follow.
>
> Signed-off-by: Rafael J. Wysocki <[email protected]>

Acked-by: Bjorn Helgaas <[email protected]>

> ---
> drivers/pci/hotplug/acpiphp_glue.c | 24 ++++++++----------------
> 1 file changed, 8 insertions(+), 16 deletions(-)
>
> Index: linux-pm/drivers/pci/hotplug/acpiphp_glue.c
> ===================================================================
> --- linux-pm.orig/drivers/pci/hotplug/acpiphp_glue.c
> +++ linux-pm/drivers/pci/hotplug/acpiphp_glue.c
> @@ -369,20 +369,6 @@ static acpi_status acpiphp_add_context(a
> return AE_OK;
> }
>
> -static struct acpiphp_bridge *acpiphp_dev_to_bridge(struct acpi_device *adev)
> -{
> - struct acpiphp_bridge *bridge = NULL;
> -
> - acpi_lock_hp_context();
> - if (adev->hp) {
> - bridge = to_acpiphp_root_context(adev->hp)->root_bridge;
> - if (bridge)
> - get_bridge(bridge);
> - }
> - acpi_unlock_hp_context();
> - return bridge;
> -}
> -
> static void cleanup_bridge(struct acpiphp_bridge *bridge)
> {
> struct acpiphp_slot *slot;
> @@ -753,9 +739,15 @@ static void acpiphp_sanitize_bus(struct
>
> void acpiphp_check_host_bridge(struct acpi_device *adev)
> {
> - struct acpiphp_bridge *bridge;
> + struct acpiphp_bridge *bridge = NULL;
>
> - bridge = acpiphp_dev_to_bridge(adev);
> + acpi_lock_hp_context();
> + if (adev->hp) {
> + bridge = to_acpiphp_root_context(adev->hp)->root_bridge;
> + if (bridge)
> + get_bridge(bridge);
> + }
> + acpi_unlock_hp_context();
> if (bridge) {
> pci_lock_rescan_remove();
>
>