Re: page fault panic in device_get_softc/acpi_pcib_route_interrupt

From: Nate Lawson <nate_at_root.org>
Date: Thu, 06 Jan 2005 14:23:11 -0800
John Baldwin wrote:
> On Thursday 06 January 2005 02:56 pm, Pawel Worach wrote:
>>Copyright (c) 1992-2005 The FreeBSD Project.
>>Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>>         The Regents of the University of California. All rights reserved.
>>FreeBSD 6.0-CURRENT #0: Thu Jan  6 20:31:16 CET 2005
>>     root_at_zero:/usr/obj/usr/src/sys/ZERO
>>...
>>pcib0: matched entry for 0.15.INTA (src \LPUS:0)
>>
>>
>>Fatal trap 12: page fault while in kernel mode
>>cpuid = 0; apic id = 00
>>fault virtual address   = 0x48
> 
> 
> The fact that the source is '\LPUS' is bothersome, it should probably just be 
> 'LPUS' (without the leading slash).  Do you have your acpidump somewhere 
> where we can look at it?  Also, is there a BIOS upgrade available?

The namespace is as follows:

\_SB
	PCI0 (and 1-4)
		PICM (and APIC)
			references to LPUS, no \
\LPUS

A possible fix is to change each reference to LP* in the PICM and APIC 
packages to be \LPUS, \LP05, etc.  Then recompile and load your asl via 
the instructions for overriding it in acpi(4).

I'm still not sure why this is broken though so I think it's a red 
herring and suspect the asl fix won't help.  I suspect the real reason 
is that \LPUS is not probed/attached before calling pci_add_child() on 
PCI0.  Pawel, can you stick a printf in acpi_pci_link_attach() right 
before the return (0) like this:

printf("pci link attached: %s\n", acpi_name(acpi_get_handle(dev)));

I suspect we won't see LPUS there before it panics.

-- 
Nate
Received on Thu Jan 06 2005 - 21:23:27 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:25 UTC