diff options
Diffstat (limited to 'usr/src/uts/intel/io/pci/pci_boot.c')
| -rw-r--r-- | usr/src/uts/intel/io/pci/pci_boot.c | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/usr/src/uts/intel/io/pci/pci_boot.c b/usr/src/uts/intel/io/pci/pci_boot.c index b59724ca9b..761c8f9499 100644 --- a/usr/src/uts/intel/io/pci/pci_boot.c +++ b/usr/src/uts/intel/io/pci/pci_boot.c @@ -246,30 +246,27 @@ static int pci_bbn_present(int bus) { ACPI_HANDLE hdl; - ACPI_BUFFER rb; int rv; /* no dip means no _BBN */ if (pci_bus_res[bus].dip == NULL) return (0); - rv = acpica_get_handle(pci_bus_res[bus].dip, &hdl); - if (rv != AE_OK) - return (-1); - - rb.Length = ACPI_ALLOCATE_BUFFER; - - rv = AcpiEvaluateObject(hdl, "_BBN", NULL, &rb); - - if (rb.Length > 0) - AcpiOsFree(rb.Pointer); + rv = -1; /* default return value in case of error below */ + if (ACPI_SUCCESS(acpica_get_handle(pci_bus_res[bus].dip, &hdl))) { + switch (AcpiEvaluateObject(hdl, "_BBN", NULL, NULL)) { + case AE_OK: + rv = 1; + break; + case AE_NOT_FOUND: + rv = 0; + break; + default: + break; + } + } - if (rv == AE_OK) - return (1); - else if (rv == AE_NOT_FOUND) - return (0); - else - return (-1); + return (rv); } /* @@ -309,8 +306,8 @@ pci_bus_renumber() return (1); /* get the FADT */ - if (AcpiGetFirmwareTable(FADT_SIG, 1, ACPI_LOGICAL_ADDRESSING, - (ACPI_TABLE_HEADER **)&fadt) != AE_OK) + if (AcpiGetTable(ACPI_SIG_FADT, 1, (ACPI_TABLE_HEADER **)&fadt) != + AE_OK) return (0); /* compare OEM Table ID to "SUNm31" */ |
