Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Jan 2005 12:11:49 -0800
From:      Nate Lawson <nate@root.org>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        freebsd-current@FreeBSD.org
Subject:   Re: page fault panic in device_get_softc/acpi_pcib_route_interrupt
Message-ID:  <41DEED05.4040000@root.org>
In-Reply-To: <200501071451.01876.jhb@FreeBSD.org>
References:  <20587818.1102626838092.JavaMail.tomcat@pne-ps4-sn1> <41DEC937.5030709@telia.com> <41DED722.7070801@root.org> <200501071451.01876.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41DEED05.4040000>