Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 106955
b: refs/heads/master
c: 362b707
h: refs/heads/master
i:
  106953: 81a7f7a
  106951: c4a795f
v: v3
  • Loading branch information
Matthew Wilcox authored and Jesse Barnes committed Jul 28, 2008
1 parent 7239fd3 commit 7084e1d
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 12 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d6d385743463f38a0da899cd4607e526ad9a049f
refs/heads/master: 362b7077a5546b42131af15ba4776f30c9a72d0c
18 changes: 7 additions & 11 deletions trunk/drivers/acpi/pci_slot.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ static struct acpi_pci_driver acpi_pci_slot_driver = {
};

static int
check_slot(acpi_handle handle, int *device, unsigned long *sun)
check_slot(acpi_handle handle, unsigned long *sun)
{
int retval = 0;
int device = -1;
unsigned long adr, sta;
acpi_status status;
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
Expand All @@ -89,32 +89,27 @@ check_slot(acpi_handle handle, int *device, unsigned long *sun)
if (check_sta_before_sun) {
/* If SxFy doesn't have _STA, we just assume it's there */
status = acpi_evaluate_integer(handle, "_STA", NULL, &sta);
if (ACPI_SUCCESS(status) && !(sta & ACPI_STA_DEVICE_PRESENT)) {
retval = -1;
if (ACPI_SUCCESS(status) && !(sta & ACPI_STA_DEVICE_PRESENT))
goto out;
}
}

status = acpi_evaluate_integer(handle, "_ADR", NULL, &adr);
if (ACPI_FAILURE(status)) {
dbg("_ADR returned %d on %s\n", status, (char *)buffer.pointer);
retval = -1;
goto out;
}

*device = (adr >> 16) & 0xffff;

/* No _SUN == not a slot == bail */
status = acpi_evaluate_integer(handle, "_SUN", NULL, sun);
if (ACPI_FAILURE(status)) {
dbg("_SUN returned %d on %s\n", status, (char *)buffer.pointer);
retval = -1;
goto out;
}

device = (adr >> 16) & 0xffff;
out:
kfree(buffer.pointer);
return retval;
return device;
}

struct callback_args {
Expand Down Expand Up @@ -144,7 +139,8 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
struct callback_args *parent_context = context;
struct pci_bus *pci_bus = parent_context->pci_bus;

if (check_slot(handle, &device, &sun))
device = check_slot(handle, &sun);
if (device < 0)
return AE_OK;

slot = kmalloc(sizeof(*slot), GFP_KERNEL);
Expand Down

0 comments on commit 7084e1d

Please sign in to comment.