Fwd: Kernel panic on 7.2-RC1 when booting with ACPI enabled
kernel.
John Baldwin
jhb at freebsd.org
Fri May 1 19:08:36 UTC 2009
On Friday 01 May 2009 2:30:28 pm Magnus Kling wrote:
> 2009/4/30 John Baldwin <jhb at freebsd.org>
>
> > On Saturday 25 April 2009 6:27:23 am Magnus Kling wrote:
> > > 2009/4/24 John Baldwin <jhb at freebsd.org>
> > > > Can you do 'frame 10' followed by 'p *(struct acpi_pci_devinfo
> > > > *)child->ivars'
> > > >
> > > > --
> > > > John Baldwin
> > >
> > >
> > > Sure, no problem. This is a none critical server so I can do alot of
> > > debugging and testing if that is needed.
> > >
> > >
> > > (kgdb) frame 10
> > > #10 0xc0db4ca8 in acpi_pci_child_location_str_method (cbdev=0xc2212680,
> > > child=0xc2243400, buf=0xc22c2400 "slot=0 function=0 handle=",
> > > buflen=1024)
> > > at /usr/src/sys/modules/acpi/acpi/../../../dev/acpica/acpi_pci.c:150
> > > 150 strlcat(buf, acpi_name(dinfo->ap_handle), buflen);
> > >
> > > (kgdb) p *(struct acpi_pci_devinfo *)child->ivars
> > > $1 = {ap_dinfo = {pci_links = {stqe_next = 0xc0b00f8c}, resources = {
> > > stqh_first = 0xc0b00f8c, stqh_last = 0x1030000}, cfg = {dev = 0x0,
> > > bar = {4, 0, 0, 3257136600, 0, 0}, bios = 0, subvendor = 0,
> > > subdevice = 0, vendor = 0, device = 0, cmdreg = 0, statreg = 0,
> > > baseclass = 0 '\0', subclass = 0 '\0', progif = 0 '\0', revid = 0
> >
> > Hmm, this is all completely wrong and trashed. What if you do 'p *child'?
> >
> > --
> > John Baldwin
> >
> (kgdb) p *child
> $2 = {ops = 0xc2161800, link = {tqe_next = 0xc2243380, tqe_prev =
> 0xc2243484}, devlink = {tqe_next = 0xc2243380, tqe_prev = 0xc224348c},
> parent = 0xc2212680, children = {tqh_first = 0xc2262880, tqh_last =
> 0xc2262704}, driver = 0xc0b7066c, devclass = 0xc211e240, unit = 0,
> nameunit = 0xc2241640 "atapci0", desc = 0xc223f900 "Promise PDC20621
> UDMA100 controller", busy = 0, state = DS_ATTACHED, devflags = 0,
> flags = 13, order = 0 '\0', pad = 0 '\0', ivars = 0xc223f5c0, softc =
> 0xc2244800, sysctl_ctx = {tqh_first = 0xc2264380, tqh_last = 0xc2241594},
> sysctl_tree = 0xc223f840}
> (kgdb)
Maybe try adding KTR traces for all calls to device_set_ivars(). I wonder if
something is trashing this device's ivars.
Oh, dear. The ata(4) driver overwrites the ivars of some PCI devices it
attaches to. This is very, very wrong. Which ATA controller do you have?
--
John Baldwin
More information about the freebsd-acpi
mailing list