page fault panic in device_get_softc/acpi_pcib_route_interrupt
Nate Lawson
nate at root.org
Fri Jan 7 12:12:05 PST 2005
John Baldwin wrote:
>
> Err, I just use the _PRT walk to force the device_t to attach if it doesn't
> already. The device will always attach though, even it's not referenced, it
> just does so in the regular new-bus order, so all links are probed, and ones
> that aren't referenced by any _PRT's that we parse do get disabled via _DIS.
Ah, I see. That is a reasonable approach.
>>The ASL patch John just sent should fix your issue. My question if this
>>works is why it just started occuring and also, what the proper handle
>>to use is for relative references (i.e., why didn't AcpiGetHandle(ROOT,
>>"LPUS") work since \LPUS is right under the root?)
>
> Yes, this is a good question, and I'm not sure my ASL patch will fix his
> problem. I wonder if he is getting back a NULL ACPI_HANDLE?
Pawel, can you split out the lines so we can isolate where the panic is
occurring? At the end of acpi_pcib.c, before the call to
acpi_pci_link_route_interrupt(), add:
{
device_t foo = acpi_get_device(lnkdev);
printf("acpi handle %p, name %s\n", lnkdev, lnkdev? acpi_name(lnkdev) :
"none");
printf("link device: %p index %d\n", foo, prt->SourceIndex);
printf("device parent %s, state %x\n",
device_get_nameunit(device_get_parent(foo)), device_get_state(foo));
}
--
Nate
More information about the freebsd-current
mailing list