From owner-freebsd-current Mon Oct 11 3:44: 6 1999 Delivered-To: freebsd-current@freebsd.org Received: from freebsd.dk (freebsd.dk [212.242.42.178]) by hub.freebsd.org (Postfix) with ESMTP id B3AB314CD0 for ; Mon, 11 Oct 1999 03:43:56 -0700 (PDT) (envelope-from sos@freebsd.dk) Received: (from sos@localhost) by freebsd.dk (8.9.3/8.9.1) id MAA36975; Mon, 11 Oct 1999 12:43:53 +0200 (CEST) (envelope-from sos) From: Soren Schmidt Message-Id: <199910111043.MAA36975@freebsd.dk> Subject: Re: ATA related panic In-Reply-To: <3801B89C.5DDD29D9@altavista.net> from Maxim Sobolev at "Oct 11, 1999 01:14:53 pm" To: sobomax@altavista.net Date: Mon, 11 Oct 1999 12:43:53 +0200 (CEST) Cc: current@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL54 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG It seems Maxim Sobolev wrote: > It seems that ATA is broken - it paniced when kernel is booting. Following is > diagnostic output: > > isa0: on motherboard > pccard0: on motherboard > > Fatal trap 12: page fault while in kernel mode > fault virtual address = 0xc > fault code = supervisor read, page not present > instruction pointer = 0x8:0xc01ca927 > stack pointer = 0x10:0xc032fe14 > frame pointer = 0x10:0xc032fe28 > 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) > interrupt mask = net tty bio cam > trap number = 12 > panic: page fault Oops, try this patch: Index: ata-all.c =================================================================== RCS file: /home/ncvs/src/sys/dev/ata/ata-all.c,v retrieving revision 1.25 diff -u -r1.25 ata-all.c --- ata-all.c 1999/10/10 18:08:36 1.25 +++ ata-all.c 1999/10/11 10:42:36 @@ -115,7 +115,7 @@ /* check if allready in use by a PCI device */ for (ctlr = 0; ctlr < atanlun; ctlr++) { - if (atadevices[ctlr]->ioaddr == rman_get_start(port)) { + if (atadevices[ctlr] && atadevices[ctlr]->ioaddr==rman_get_start(port)){ printf("ata-isa%d: already registered as ata%d\n", device_get_unit(dev), ctlr); bus_release_resource(dev, SYS_RES_IOPORT, 0, port); -Soren To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message