Date: Tue, 19 May 2009 05:41:04 +0300 From: Alexander Motin <mav@FreeBSD.org> To: Magnus Kling <klingfon@gmail.com> Cc: freebsd-current@freebsd.org Subject: Re: Kernel panic when reboot on server with a Promise SX4000 and two ATA disks RAID1. Message-ID: <4A121C40.7040201@FreeBSD.org> In-Reply-To: <43b1bb350905181331r44b35b13i22aa1ba6a18103ed@mail.gmail.com> References: <43b1bb350905150939s5d503f00x27116e7ffe79a37@mail.gmail.com> <4A10F3E3.40306@FreeBSD.org> <43b1bb350905180025g682d3764qba5a450d85d8f961@mail.gmail.com> <43b1bb350905181331r44b35b13i22aa1ba6a18103ed@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------030500010006020409010308 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Magnus Kling wrote: > Compiled once again. No change. The kernel panics. I don't see obvious problems there. I think something else may erase that controller softc pointer. Can you try to apply attached patch. It may give us some more clues about what is actually become wrong there. May be it is somehow related to the RAID array built on controller. ata-raid part is quite complicated and historically was buggy quite often. Can you instead of your array drives try to attach some other one without any array built or just disable ata-raid module? Are you booting from some other device now? -- Alexander Motin --------------030500010006020409010308 Content-Type: text/plain; name="ata-promise.c.debug.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="ata-promise.c.debug.patch" --- ata-promise.c.prev 2009-05-14 17:57:13.000000000 +0300 +++ ata-promise.c 2009-05-19 05:20:13.000000000 +0300 @@ -1053,6 +1053,15 @@ ata_promise_sx4_command(struct ata_reque { device_t gparent = GRANDPARENT(request->dev); struct ata_pci_controller *ctlr = device_get_softc(gparent); + +if (ctlr == NULL) { + printf("ctlr IS NULL!!!\n"); + device_printf(request->dev, "request->dev\n"); + device_printf(request->parent, "request->parent\n"); + device_printf(device_get_parent(request->dev), "device_get_parent(request->dev)\n"); + device_printf(gparent, "gparent\n"); +} + struct ata_channel *ch = device_get_softc(request->parent); struct ata_dma_prdentry *prd = request->dma->sg; caddr_t window = rman_get_virtual(ctlr->r_res1); --------------030500010006020409010308--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A121C40.7040201>