* [PATCH v2 0/2] PCI Hotplug: internal interface cleanups
@ 2009-09-10 18:33 Alex Chiang
2009-09-10 18:34 ` [PATCH v2 1/2] PCI Hotplug: acpiphp: find bridges the easy way Alex Chiang
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Alex Chiang @ 2009-09-10 18:33 UTC (permalink / raw)
To: jbarnes; +Cc: linux-pci, linux-kernel
This is a re-post of an old patch series that wasn't picked up last
time due to being too late in the merge window.
It removes a bunch of copy/paste code in acpiphp by simplifying some
internal interfaces.
Please consider this for .32.
Thanks!
v1 -> v2:
- incorporated Kenji-san's comments
---
Alex Chiang (2):
PCI Hotplug: acpiphp: find bridges the easy way
PCI Hotplug: convert acpi_pci_detect_ejectable() to take an acpi_handle
drivers/pci/hotplug/acpi_pcihp.c | 12 ++--
drivers/pci/hotplug/acpiphp_glue.c | 104 +++++++++---------------------------
drivers/pci/hotplug/pciehp_acpi.c | 7 +-
include/linux/pci_hotplug.h | 2 -
4 files changed, 38 insertions(+), 87 deletions(-)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] PCI Hotplug: acpiphp: find bridges the easy way
2009-09-10 18:33 [PATCH v2 0/2] PCI Hotplug: internal interface cleanups Alex Chiang
@ 2009-09-10 18:34 ` Alex Chiang
2009-09-10 18:34 ` [PATCH v2 2/2] PCI Hotplug: convert acpi_pci_detect_ejectable() to take an acpi_handle Alex Chiang
2009-09-14 15:47 ` [PATCH v2 0/2] PCI Hotplug: internal interface cleanups Jesse Barnes
2 siblings, 0 replies; 5+ messages in thread
From: Alex Chiang @ 2009-09-10 18:34 UTC (permalink / raw)
To: jbarnes; +Cc: linux-pci, linux-kernel, Bjorn Helgaas
Instead of constantly evaluating _ADR and _SEG over and over again,
let's simplify our lives by using:
acpi_pci_find_root() for root bridges
acpi_get_pci_dev() for p2p bridges
This change eliminates some copy 'n paste code and also allows us
to simplify some internal interfaces.
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Alex Chiang <achiang@hp.com>
---
drivers/pci/hotplug/acpiphp_glue.c | 81 +++++++++---------------------------
1 files changed, 21 insertions(+), 60 deletions(-)
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 2e5f259..e72e0ad 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -277,14 +277,15 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
/* see if it's worth looking at this bridge */
-static int detect_ejectable_slots(struct pci_bus *pbus)
+static int detect_ejectable_slots(acpi_handle handle)
{
- int found = acpi_pci_detect_ejectable(pbus);
+ int found;
+ struct pci_bus *pbus;
+
+ pbus = pci_bus_from_handle(handle);
+ found = acpi_pci_detect_ejectable(pbus);
if (!found) {
- acpi_handle bridge_handle = acpi_pci_get_bridge_handle(pbus);
- if (!bridge_handle)
- return 0;
- acpi_walk_namespace(ACPI_TYPE_DEVICE, bridge_handle, (u32)1,
+ acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, (u32)1,
is_pci_dock_device, (void *)&found, NULL);
}
return found;
@@ -415,9 +416,10 @@ static inline void config_p2p_bridge_flags(struct acpiphp_bridge *bridge)
/* allocate and initialize host bridge data structure */
-static void add_host_bridge(acpi_handle *handle, struct pci_bus *pci_bus)
+static void add_host_bridge(acpi_handle *handle)
{
struct acpiphp_bridge *bridge;
+ struct acpi_pci_root *root = acpi_pci_find_root(handle);
bridge = kzalloc(sizeof(struct acpiphp_bridge), GFP_KERNEL);
if (bridge == NULL)
@@ -426,7 +428,7 @@ static void add_host_bridge(acpi_handle *handle, struct pci_bus *pci_bus)
bridge->type = BRIDGE_TYPE_HOST;
bridge->handle = handle;
- bridge->pci_bus = pci_bus;
+ bridge->pci_bus = root->bus;
spin_lock_init(&bridge->res_lock);
@@ -435,7 +437,7 @@ static void add_host_bridge(acpi_handle *handle, struct pci_bus *pci_bus)
/* allocate and initialize PCI-to-PCI bridge data structure */
-static void add_p2p_bridge(acpi_handle *handle, struct pci_dev *pci_dev)
+static void add_p2p_bridge(acpi_handle *handle)
{
struct acpiphp_bridge *bridge;
@@ -449,8 +451,8 @@ static void add_p2p_bridge(acpi_handle *handle, struct pci_dev *pci_dev)
bridge->handle = handle;
config_p2p_bridge_flags(bridge);
- bridge->pci_dev = pci_dev_get(pci_dev);
- bridge->pci_bus = pci_dev->subordinate;
+ bridge->pci_dev = acpi_get_pci_dev(handle);
+ bridge->pci_bus = bridge->pci_dev->subordinate;
if (!bridge->pci_bus) {
err("This is not a PCI-to-PCI bridge!\n");
goto err;
@@ -467,7 +469,7 @@ static void add_p2p_bridge(acpi_handle *handle, struct pci_dev *pci_dev)
init_bridge_misc(bridge);
return;
err:
- pci_dev_put(pci_dev);
+ pci_dev_put(bridge->pci_dev);
kfree(bridge);
return;
}
@@ -478,39 +480,21 @@ static acpi_status
find_p2p_bridge(acpi_handle handle, u32 lvl, void *context, void **rv)
{
acpi_status status;
- acpi_handle dummy_handle;
- unsigned long long tmp;
- int device, function;
struct pci_dev *dev;
- struct pci_bus *pci_bus = context;
-
- status = acpi_get_handle(handle, "_ADR", &dummy_handle);
- if (ACPI_FAILURE(status))
- return AE_OK; /* continue */
-
- status = acpi_evaluate_integer(handle, "_ADR", NULL, &tmp);
- if (ACPI_FAILURE(status)) {
- dbg("%s: _ADR evaluation failure\n", __func__);
- return AE_OK;
- }
-
- device = (tmp >> 16) & 0xffff;
- function = tmp & 0xffff;
-
- dev = pci_get_slot(pci_bus, PCI_DEVFN(device, function));
+ dev = acpi_get_pci_dev(handle);
if (!dev || !dev->subordinate)
goto out;
/* check if this bridge has ejectable slots */
- if ((detect_ejectable_slots(dev->subordinate) > 0)) {
+ if ((detect_ejectable_slots(handle) > 0)) {
dbg("found PCI-to-PCI bridge at PCI %s\n", pci_name(dev));
- add_p2p_bridge(handle, dev);
+ add_p2p_bridge(handle);
}
/* search P2P bridges under this p2p bridge */
status = acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, (u32)1,
- find_p2p_bridge, dev->subordinate, NULL);
+ find_p2p_bridge, NULL, NULL);
if (ACPI_FAILURE(status))
warn("find_p2p_bridge failed (error code = 0x%x)\n", status);
@@ -525,9 +509,7 @@ static int add_bridge(acpi_handle handle)
{
acpi_status status;
unsigned long long tmp;
- int seg, bus;
acpi_handle dummy_handle;
- struct pci_bus *pci_bus;
/* if the bridge doesn't have _STA, we assume it is always there */
status = acpi_get_handle(handle, "_STA", &dummy_handle);
@@ -542,36 +524,15 @@ static int add_bridge(acpi_handle handle)
return 0;
}
- /* get PCI segment number */
- status = acpi_evaluate_integer(handle, "_SEG", NULL, &tmp);
-
- seg = ACPI_SUCCESS(status) ? tmp : 0;
-
- /* get PCI bus number */
- status = acpi_evaluate_integer(handle, "_BBN", NULL, &tmp);
-
- if (ACPI_SUCCESS(status)) {
- bus = tmp;
- } else {
- warn("can't get bus number, assuming 0\n");
- bus = 0;
- }
-
- pci_bus = pci_find_bus(seg, bus);
- if (!pci_bus) {
- err("Can't find bus %04x:%02x\n", seg, bus);
- return 0;
- }
-
/* check if this bridge has ejectable slots */
- if (detect_ejectable_slots(pci_bus) > 0) {
+ if (detect_ejectable_slots(handle) > 0) {
dbg("found PCI host-bus bridge with hot-pluggable slots\n");
- add_host_bridge(handle, pci_bus);
+ add_host_bridge(handle);
}
/* search P2P bridges under this host bridge */
status = acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, (u32)1,
- find_p2p_bridge, pci_bus, NULL);
+ find_p2p_bridge, NULL, NULL);
if (ACPI_FAILURE(status))
warn("find_p2p_bridge failed (error code = 0x%x)\n", status);
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] PCI Hotplug: convert acpi_pci_detect_ejectable() to take an acpi_handle
2009-09-10 18:33 [PATCH v2 0/2] PCI Hotplug: internal interface cleanups Alex Chiang
2009-09-10 18:34 ` [PATCH v2 1/2] PCI Hotplug: acpiphp: find bridges the easy way Alex Chiang
@ 2009-09-10 18:34 ` Alex Chiang
2009-09-14 3:24 ` Kenji Kaneshige
2009-09-14 15:47 ` [PATCH v2 0/2] PCI Hotplug: internal interface cleanups Jesse Barnes
2 siblings, 1 reply; 5+ messages in thread
From: Alex Chiang @ 2009-09-10 18:34 UTC (permalink / raw)
To: jbarnes; +Cc: linux-pci, linux-kernel, Kenji Kaneshige
acpi_pci_detect_ejectable() goes through effort to convert its
struct pci_bus arg to an acpi_handle, but every time we use this
interface, we already have the handle available.
So let's just use the handle instead of converting back and forth.
Cc: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Alex Chiang <achiang@hp.com>
---
drivers/pci/hotplug/acpi_pcihp.c | 12 ++++++------
drivers/pci/hotplug/acpiphp_glue.c | 33 +++++++++++----------------------
drivers/pci/hotplug/pciehp_acpi.c | 7 ++++---
include/linux/pci_hotplug.h | 2 +-
4 files changed, 22 insertions(+), 32 deletions(-)
diff --git a/drivers/pci/hotplug/acpi_pcihp.c b/drivers/pci/hotplug/acpi_pcihp.c
index eb15958..ec3c039 100644
--- a/drivers/pci/hotplug/acpi_pcihp.c
+++ b/drivers/pci/hotplug/acpi_pcihp.c
@@ -500,18 +500,18 @@ check_hotplug(acpi_handle handle, u32 lvl, void *context, void **rv)
/**
* acpi_pci_detect_ejectable - check if the PCI bus has ejectable slots
- * @pbus - PCI bus to scan
+ * @handle - handle of the PCI bus to scan
*
* Returns 1 if the PCI bus has ACPI based ejectable slots, 0 otherwise.
*/
-int acpi_pci_detect_ejectable(struct pci_bus *pbus)
+int acpi_pci_detect_ejectable(acpi_handle handle)
{
- acpi_handle handle;
int found = 0;
- if (!(handle = acpi_pci_get_bridge_handle(pbus)))
- return 0;
- acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, (u32)1,
+ if (!handle)
+ return found;
+
+ acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1,
check_hotplug, (void *)&found, NULL);
return found;
}
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index e72e0ad..680c336 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -62,22 +62,6 @@ static void acpiphp_sanitize_bus(struct pci_bus *bus);
static void acpiphp_set_hpp_values(acpi_handle handle, struct pci_bus *bus);
static void handle_hotplug_event_func(acpi_handle handle, u32 type, void *context);
-static struct pci_bus *pci_bus_from_handle(acpi_handle handle)
-{
- struct pci_bus *pbus;
- struct acpi_pci_root *root;
-
- root = acpi_pci_find_root(handle);
- if (root)
- pbus = root->bus;
- else {
- struct pci_dev *pdev = acpi_get_pci_dev(handle);
- pbus = pdev->subordinate;
- pci_dev_put(pdev);
- }
- return pbus;
-}
-
/* callback routine to check for the existence of a pci dock device */
static acpi_status
is_pci_dock_device(acpi_handle handle, u32 lvl, void *context, void **rv)
@@ -279,11 +263,7 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
/* see if it's worth looking at this bridge */
static int detect_ejectable_slots(acpi_handle handle)
{
- int found;
- struct pci_bus *pbus;
-
- pbus = pci_bus_from_handle(handle);
- found = acpi_pci_detect_ejectable(pbus);
+ int found = acpi_pci_detect_ejectable(handle);
if (!found) {
acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, (u32)1,
is_pci_dock_device, (void *)&found, NULL);
@@ -1364,7 +1344,16 @@ static void acpiphp_sanitize_bus(struct pci_bus *bus)
/* Program resources in newly inserted bridge */
static int acpiphp_configure_bridge (acpi_handle handle)
{
- struct pci_bus *bus = pci_bus_from_handle(handle);
+ struct pci_bus *bus;
+
+ if (acpi_is_root_bridge(handle)) {
+ struct acpi_pci_root *root = acpi_pci_find_root(handle);
+ bus = root->bus;
+ } else {
+ struct pci_dev *pdev = acpi_get_pci_dev(handle);
+ bus = pdev->subordinate;
+ pci_dev_put(pdev);
+ }
pci_bus_size_bridges(bus);
pci_bus_assign_resources(bus);
diff --git a/drivers/pci/hotplug/pciehp_acpi.c b/drivers/pci/hotplug/pciehp_acpi.c
index 9604801..7163e6a 100644
--- a/drivers/pci/hotplug/pciehp_acpi.c
+++ b/drivers/pci/hotplug/pciehp_acpi.c
@@ -47,7 +47,7 @@ int pciehp_acpi_slot_detection_check(struct pci_dev *dev)
{
if (slot_detection_mode != PCIEHP_DETECT_ACPI)
return 0;
- if (acpi_pci_detect_ejectable(dev->subordinate))
+ if (acpi_pci_detect_ejectable(DEVICE_ACPI_HANDLE(&dev->dev)))
return 0;
return -ENODEV;
}
@@ -76,9 +76,9 @@ static int __init dummy_probe(struct pcie_device *dev)
{
int pos;
u32 slot_cap;
+ acpi_handle handle;
struct slot *slot, *tmp;
struct pci_dev *pdev = dev->port;
- struct pci_bus *pbus = pdev->subordinate;
/* Note: pciehp_detect_mode != PCIEHP_DETECT_ACPI here */
if (pciehp_get_hp_hw_control_from_firmware(pdev))
return -ENODEV;
@@ -94,7 +94,8 @@ static int __init dummy_probe(struct pcie_device *dev)
dup_slot_id++;
}
list_add_tail(&slot->slot_list, &dummy_slots);
- if (!acpi_slot_detected && acpi_pci_detect_ejectable(pbus))
+ handle = DEVICE_ACPI_HANDLE(&pdev->dev);
+ if (!acpi_slot_detected && acpi_pci_detect_ejectable(handle))
acpi_slot_detected = 1;
return -ENODEV; /* dummy driver always returns error */
}
diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
index 1b00cc3..f0c31ae 100644
--- a/include/linux/pci_hotplug.h
+++ b/include/linux/pci_hotplug.h
@@ -231,7 +231,7 @@ extern acpi_status acpi_get_hp_params_from_firmware(struct pci_bus *bus,
struct hotplug_params *hpp);
int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
-int acpi_pci_detect_ejectable(struct pci_bus *pbus);
+int acpi_pci_detect_ejectable(acpi_handle handle);
#endif
#endif
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] PCI Hotplug: convert acpi_pci_detect_ejectable() to take an acpi_handle
2009-09-10 18:34 ` [PATCH v2 2/2] PCI Hotplug: convert acpi_pci_detect_ejectable() to take an acpi_handle Alex Chiang
@ 2009-09-14 3:24 ` Kenji Kaneshige
0 siblings, 0 replies; 5+ messages in thread
From: Kenji Kaneshige @ 2009-09-14 3:24 UTC (permalink / raw)
To: Alex Chiang; +Cc: jbarnes, linux-pci, linux-kernel
Alex Chiang wrote:
> acpi_pci_detect_ejectable() goes through effort to convert its
> struct pci_bus arg to an acpi_handle, but every time we use this
> interface, we already have the handle available.
>
> So let's just use the handle instead of converting back and forth.
>
> Cc: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
> Signed-off-by: Alex Chiang <achiang@hp.com>
> ---
>
> drivers/pci/hotplug/acpi_pcihp.c | 12 ++++++------
> drivers/pci/hotplug/acpiphp_glue.c | 33 +++++++++++----------------------
> drivers/pci/hotplug/pciehp_acpi.c | 7 ++++---
> include/linux/pci_hotplug.h | 2 +-
> 4 files changed, 22 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/pci/hotplug/acpi_pcihp.c b/drivers/pci/hotplug/acpi_pcihp.c
> index eb15958..ec3c039 100644
> --- a/drivers/pci/hotplug/acpi_pcihp.c
> +++ b/drivers/pci/hotplug/acpi_pcihp.c
> @@ -500,18 +500,18 @@ check_hotplug(acpi_handle handle, u32 lvl, void *context, void **rv)
>
> /**
> * acpi_pci_detect_ejectable - check if the PCI bus has ejectable slots
> - * @pbus - PCI bus to scan
> + * @handle - handle of the PCI bus to scan
> *
> * Returns 1 if the PCI bus has ACPI based ejectable slots, 0 otherwise.
> */
> -int acpi_pci_detect_ejectable(struct pci_bus *pbus)
> +int acpi_pci_detect_ejectable(acpi_handle handle)
> {
> - acpi_handle handle;
> int found = 0;
>
> - if (!(handle = acpi_pci_get_bridge_handle(pbus)))
> - return 0;
> - acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, (u32)1,
> + if (!handle)
> + return found;
> +
> + acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1,
> check_hotplug, (void *)&found, NULL);
> return found;
> }
> diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
> index e72e0ad..680c336 100644
> --- a/drivers/pci/hotplug/acpiphp_glue.c
> +++ b/drivers/pci/hotplug/acpiphp_glue.c
> @@ -62,22 +62,6 @@ static void acpiphp_sanitize_bus(struct pci_bus *bus);
> static void acpiphp_set_hpp_values(acpi_handle handle, struct pci_bus *bus);
> static void handle_hotplug_event_func(acpi_handle handle, u32 type, void *context);
>
> -static struct pci_bus *pci_bus_from_handle(acpi_handle handle)
> -{
> - struct pci_bus *pbus;
> - struct acpi_pci_root *root;
> -
> - root = acpi_pci_find_root(handle);
> - if (root)
> - pbus = root->bus;
> - else {
> - struct pci_dev *pdev = acpi_get_pci_dev(handle);
> - pbus = pdev->subordinate;
> - pci_dev_put(pdev);
> - }
> - return pbus;
> -}
> -
> /* callback routine to check for the existence of a pci dock device */
> static acpi_status
> is_pci_dock_device(acpi_handle handle, u32 lvl, void *context, void **rv)
> @@ -279,11 +263,7 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
> /* see if it's worth looking at this bridge */
> static int detect_ejectable_slots(acpi_handle handle)
> {
> - int found;
> - struct pci_bus *pbus;
> -
> - pbus = pci_bus_from_handle(handle);
> - found = acpi_pci_detect_ejectable(pbus);
> + int found = acpi_pci_detect_ejectable(handle);
> if (!found) {
> acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, (u32)1,
> is_pci_dock_device, (void *)&found, NULL);
> @@ -1364,7 +1344,16 @@ static void acpiphp_sanitize_bus(struct pci_bus *bus)
> /* Program resources in newly inserted bridge */
> static int acpiphp_configure_bridge (acpi_handle handle)
> {
> - struct pci_bus *bus = pci_bus_from_handle(handle);
> + struct pci_bus *bus;
> +
> + if (acpi_is_root_bridge(handle)) {
> + struct acpi_pci_root *root = acpi_pci_find_root(handle);
> + bus = root->bus;
> + } else {
> + struct pci_dev *pdev = acpi_get_pci_dev(handle);
> + bus = pdev->subordinate;
> + pci_dev_put(pdev);
> + }
>
> pci_bus_size_bridges(bus);
> pci_bus_assign_resources(bus);
> diff --git a/drivers/pci/hotplug/pciehp_acpi.c b/drivers/pci/hotplug/pciehp_acpi.c
> index 9604801..7163e6a 100644
> --- a/drivers/pci/hotplug/pciehp_acpi.c
> +++ b/drivers/pci/hotplug/pciehp_acpi.c
> @@ -47,7 +47,7 @@ int pciehp_acpi_slot_detection_check(struct pci_dev *dev)
> {
> if (slot_detection_mode != PCIEHP_DETECT_ACPI)
> return 0;
> - if (acpi_pci_detect_ejectable(dev->subordinate))
> + if (acpi_pci_detect_ejectable(DEVICE_ACPI_HANDLE(&dev->dev)))
> return 0;
> return -ENODEV;
> }
> @@ -76,9 +76,9 @@ static int __init dummy_probe(struct pcie_device *dev)
> {
> int pos;
> u32 slot_cap;
> + acpi_handle handle;
> struct slot *slot, *tmp;
> struct pci_dev *pdev = dev->port;
> - struct pci_bus *pbus = pdev->subordinate;
> /* Note: pciehp_detect_mode != PCIEHP_DETECT_ACPI here */
> if (pciehp_get_hp_hw_control_from_firmware(pdev))
> return -ENODEV;
> @@ -94,7 +94,8 @@ static int __init dummy_probe(struct pcie_device *dev)
> dup_slot_id++;
> }
> list_add_tail(&slot->slot_list, &dummy_slots);
> - if (!acpi_slot_detected && acpi_pci_detect_ejectable(pbus))
> + handle = DEVICE_ACPI_HANDLE(&pdev->dev);
> + if (!acpi_slot_detected && acpi_pci_detect_ejectable(handle))
> acpi_slot_detected = 1;
> return -ENODEV; /* dummy driver always returns error */
> }
> diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
> index 1b00cc3..f0c31ae 100644
> --- a/include/linux/pci_hotplug.h
> +++ b/include/linux/pci_hotplug.h
> @@ -231,7 +231,7 @@ extern acpi_status acpi_get_hp_params_from_firmware(struct pci_bus *bus,
> struct hotplug_params *hpp);
> int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
> int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
> -int acpi_pci_detect_ejectable(struct pci_bus *pbus);
> +int acpi_pci_detect_ejectable(acpi_handle handle);
> #endif
> #endif
Reviewd-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Tested-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 0/2] PCI Hotplug: internal interface cleanups
2009-09-10 18:33 [PATCH v2 0/2] PCI Hotplug: internal interface cleanups Alex Chiang
2009-09-10 18:34 ` [PATCH v2 1/2] PCI Hotplug: acpiphp: find bridges the easy way Alex Chiang
2009-09-10 18:34 ` [PATCH v2 2/2] PCI Hotplug: convert acpi_pci_detect_ejectable() to take an acpi_handle Alex Chiang
@ 2009-09-14 15:47 ` Jesse Barnes
2 siblings, 0 replies; 5+ messages in thread
From: Jesse Barnes @ 2009-09-14 15:47 UTC (permalink / raw)
To: Alex Chiang; +Cc: linux-pci, linux-kernel
On Thu, 10 Sep 2009 12:33:58 -0600
Alex Chiang <achiang@hp.com> wrote:
> This is a re-post of an old patch series that wasn't picked up last
> time due to being too late in the merge window.
>
> It removes a bunch of copy/paste code in acpiphp by simplifying some
> internal interfaces.
>
> Please consider this for .32.
>
> Thanks!
>
> v1 -> v2:
> - incorporated Kenji-san's comments
>
> ---
>
> Alex Chiang (2):
> PCI Hotplug: acpiphp: find bridges the easy way
> PCI Hotplug: convert acpi_pci_detect_ejectable() to take an
> acpi_handle
Applied to linux-next, thanks guys.
--
Jesse Barnes, Intel Open Source Technology Center
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-09-14 15:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-10 18:33 [PATCH v2 0/2] PCI Hotplug: internal interface cleanups Alex Chiang
2009-09-10 18:34 ` [PATCH v2 1/2] PCI Hotplug: acpiphp: find bridges the easy way Alex Chiang
2009-09-10 18:34 ` [PATCH v2 2/2] PCI Hotplug: convert acpi_pci_detect_ejectable() to take an acpi_handle Alex Chiang
2009-09-14 3:24 ` Kenji Kaneshige
2009-09-14 15:47 ` [PATCH v2 0/2] PCI Hotplug: internal interface cleanups Jesse Barnes
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.