Try not to pass garbage to pci_make_tag; workaround for odd ACPI DSDTs.
Fixes kern/37527.
This commit is contained in:
parent
bcf893f432
commit
645fe8c342
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: mpacpi.c,v 1.55 2007/12/09 20:27:50 jmcneill Exp $ */
|
||||
/* $NetBSD: mpacpi.c,v 1.56 2007/12/12 23:33:22 jmcneill Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2003 Wasabi Systems, Inc.
|
||||
|
@ -36,7 +36,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: mpacpi.c,v 1.55 2007/12/09 20:27:50 jmcneill Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: mpacpi.c,v 1.56 2007/12/12 23:33:22 jmcneill Exp $");
|
||||
|
||||
#include "acpi.h"
|
||||
#include "opt_acpi.h"
|
||||
|
@ -547,7 +547,7 @@ mpacpi_derive_bus(ACPI_HANDLE handle, struct acpi_softc *acpi)
|
|||
*/
|
||||
TAILQ_FOREACH(dev, &dev_list, list) {
|
||||
rv = acpi_eval_integer(dev->handle, METHOD_NAME__ADR, &val);
|
||||
if (ACPI_FAILURE(rv))
|
||||
if (ACPI_FAILURE(rv) || val == 0xffffffff)
|
||||
return -1;
|
||||
|
||||
tag = pci_make_tag(acpi->sc_pc, bus,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: OsdHardware.c,v 1.3 2007/12/09 20:27:54 jmcneill Exp $ */
|
||||
/* $NetBSD: OsdHardware.c,v 1.4 2007/12/12 23:33:22 jmcneill Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2001 Wasabi Systems, Inc.
|
||||
|
@ -44,7 +44,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: OsdHardware.c,v 1.3 2007/12/09 20:27:54 jmcneill Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: OsdHardware.c,v 1.4 2007/12/12 23:33:22 jmcneill Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/device.h>
|
||||
|
@ -206,6 +206,9 @@ AcpiOsReadPciConfiguration(ACPI_PCI_ID *PciId, UINT32 Register, void *Value,
|
|||
|
||||
/* XXX Need to deal with "segment" ("hose" in Alpha terminology). */
|
||||
|
||||
if (PciId->Bus >= 256 || PciId->Device >= 32 || PciId->Function >= 8)
|
||||
return AE_BAD_PARAMETER;
|
||||
|
||||
tag = pci_make_tag(acpi_softc->sc_pc, PciId->Bus, PciId->Device,
|
||||
PciId->Function);
|
||||
tmp = pci_conf_read(acpi_softc->sc_pc, tag, Register & ~3);
|
||||
|
|
Loading…
Reference in New Issue