Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 May 2004 00:44:37 +0100
From:      Peter Edwards <peadar@freebsd.org>
To:        Nate Lawson <njl@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org
Subject:   Re: cvs commit: src/sys/dev/acpica acpivar.h
Message-ID:  <40AD42E5.7050101@freebsd.org>
In-Reply-To: <200405181653.i4IGrU6g062365@repoman.freebsd.org>
References:  <200405181653.i4IGrU6g062365@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Nate,
This appears to be the cause of a boot-time panic for me, which for some 
reason only manifests itself when I've modules other than ACPI brought 
in by the loader (any of agp, vesa or snd_ich)

Unlike the methods they replace, the __BUS_ACCESSOR methods from 
sys/bus.h don't seem to check the return code of BUS_READ_IVAR to return 
NULL on failure. The first few frames of the panic look like this 
(sorry, too early in the boot process for a dump: I can transcribe more 
if you need it)

 > AcpiNsWalkNamespace() + 0x53 (contrib/dev/acpica/nswalk.c:291)
 > AcpiWalkNamespace() + 0x47 (contrib/dev/acpica/nsxfeval.c:525)
 > acpi_pci_attach()

At the site of the crash:
 > ChildType = ChildNode->Type

The value of ChildNode appears to be 0xffffffff (taken from EAX), so it 
looks like that's what the __BUS_ACCESSOR method is returning for a 
failure.  Rolling back the commit fixes the issue.

Nate Lawson wrote:

>njl         2004/05/18 09:53:29 PDT
>
>  FreeBSD src repository
>
>  Modified files:
>    sys/dev/acpica       acpivar.h 
>  Log:
>  Use the simpler __BUS_ACCESSOR macros for ivars instead of defining them
>  ourselves.
>  
>  Revision  Changes    Path
>  1.65      +3 -56     src/sys/dev/acpica/acpivar.h
>
>  
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40AD42E5.7050101>