Date: Sun, 2 Sep 2001 00:38:16 +0400 From: "Sergey A. Osokin" <osa@freebsd.org.ru> To: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org> Cc: current@FreeBSD.org Subject: Re: panic on current ACPI Message-ID: <20010902003816.A40883@freebsd.org.ru> In-Reply-To: <20010901232504F.iwasaki@jp.FreeBSD.org> References: <20010901232504F.iwasaki@jp.FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Sep 01, 2001 at 11:25:04PM +0900, Mitsuru IWASAKI wrote: > Hi, I've noticed that the recent CURRENT got panic on some machines > if we have `device acpica' in kernel config. > > ---- > ata0: at 0x1f0 irq 14 on atapci0 > > > Fatal trap 12: page fault while in kernel mode > fault virtual address = 0x28 > fault code = supervisor read, page not present > instruction pointer = 0x8:0xc058ed3c > stack pointer = 0x10:0xc05c6be0 > frame pointer = 0x10:0xc05c6be0 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, def32 1, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 0 (swapper) > kernel: type 12 trap, code=0 > Stopped at acpi_timer_get_timecount+0x08: movl 0x28(%eax),%edx > ---- > > I think that this is because acpi_timer device is identified twice, > so I've just made a quick fix for this so that acpi_timer_identify() > is called only once. > > I hope more proper fixes would be made... > > Thanks > > Index: acpi_timer.c > =================================================================== > RCS file: /home/ncvs/src/sys/dev/acpica/acpi_timer.c,v > retrieving revision 1.10 > diff -u -r1.10 acpi_timer.c > --- acpi_timer.c 5 Aug 2001 23:20:32 -0000 1.10 > +++ acpi_timer.c 1 Sep 2001 12:04:14 -0000 > @@ -55,7 +55,7 @@ > #define _COMPONENT ACPI_SYSTEM > MODULE_NAME("TIMER") > > -static device_t acpi_timer_dev; > +static device_t acpi_timer_dev = NULL; > struct resource *acpi_timer_reg; > #define TIMER_READ bus_space_read_4(rman_get_bustag(acpi_timer_reg), \ > rman_get_bushandle(acpi_timer_reg), \ > @@ -122,6 +122,9 @@ > return_VOID; > > if (AcpiGbl_FADT == NULL) > + return_VOID; > + > + if (acpi_timer_dev != NULL) > return_VOID; > > if ((dev = BUS_ADD_CHILD(parent, 0, "acpi_timer", 0)) == NULL) { > > I have the same problem. Your patch works for me. Thanks. -- Rgdz, /"\ Sergey Osokin aka oZZ, \ / ASCII RIBBON CAMPAIGN osa@freebsd.org.ru X AGAINST HTML MAIL http://freebsd.org.ru/~osa/ / \ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010902003816.A40883>