[patch 3/3] acpiphp: prevent duplicate slot numbers when no _SUN

From: Kristen Accardi
Date: Wed Apr 12 2006 - 18:11:10 EST


Dock bridges generally do not implement _SUN, yet show up as ejectable slots.
If you have more than one ejectable slot that does not implement SUN, with the
current code you will get duplicate slot numbers. So, if there is no _SUN,
use the current count of the number of slots found instead.

Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@xxxxxxxxx>

---
drivers/pci/hotplug/acpiphp_glue.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)

--- 2.6-git-kca2.orig/drivers/pci/hotplug/acpiphp_glue.c
+++ 2.6-git-kca2/drivers/pci/hotplug/acpiphp_glue.c
@@ -218,8 +218,13 @@ register_slot(acpi_handle handle, u32 lv
newfunc->flags |= FUNC_HAS_DCK;

status = acpi_evaluate_integer(handle, "_SUN", NULL, &sun);
- if (ACPI_FAILURE(status))
- sun = -1;
+ if (ACPI_FAILURE(status)) {
+ /*
+ * use the count of the number of slots we've found
+ * for the number of the slot
+ */
+ sun = bridge->nr_slots+1;
+ }

/* search for objects that share the same slot */
for (slot = bridge->slots; slot; slot = slot->next)

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