Date: Tue, 24 Jan 2006 10:07:26 +0100 From: =?ISO-8859-1?Q?S=F8ren_Schmidt?= <soren.schmidt@gmail.com> To: Nicolas Blais <nb_root@videotron.ca> Cc: Michael Landin Hostbaek <mich@freebsd.org>, freebsd-current@freebsd.org, =?ISO-8859-1?Q?S=F8ren_Schmidt?= <sos@deepcore.dk> Subject: Re: -CURRENT freeze at boot after update Message-ID: <82eac8c60601240107t5750571xa70b95e439dab9b0@mail.gmail.com> In-Reply-To: <200601232102.35528.nb_root@videotron.ca> References: <200601211159.50768.nb_root@videotron.ca> <20060123182607.GR99407@mich2.itxmarket.com> <43D528AD.7020309@deepcore.dk> <200601232102.35528.nb_root@videotron.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] OK, the patch was flawed actually, find two new attached below. Please try first dma-p1 then dma-p2 and finally both and let me know if that changes anything. Thanks! -Søren On 1/24/06, Nicolas Blais <nb_root@videotron.ca> wrote: > > > > I spoke briefly to sos@ about it, and he has been unable to reproduce > > > this, so someone with time / knowledge should dig deeper and send him > a > > > mail with the findings. > > > > The only thing that comes to mind is the below patch, please try that > > out and let me know. However that way the legacy ports (those stuck at > > irq14 & irq15) cannot share interrupt with *anything*, which I did want > > to fix as a side effect of this actually... > > > > -Søren > > Hi, sorry for the wait. > > I recompiled my kernel with your patch, unfortunatly it does nothing to > prevent the freeze. > > If you have any patches, I'm willing to try it. > > Thanks, > Nicolas. > > -- > FreeBSD 7.0-CURRENT #2: Mon Jan 23 17:24:42 EST 2006 > nicblais@clk01a:/usr/obj/usr/src/sys/CLK01A > PGP? (updated 16 Nov 05) : http://www.clkroot.net/security/nb_root.asc > > > [-- Attachment #2 --] Index: ata-all.c =================================================================== RCS file: /home/ncvs/src/sys/dev/ata/ata-all.c,v retrieving revision 1.263 diff -u -r1.263 ata-all.c --- ata-all.c 18 Jan 2006 13:10:16 -0000 1.263 +++ ata-all.c 24 Jan 2006 09:02:01 -0000 @@ -324,9 +324,6 @@ mtx_lock(&ch->state_mtx); do { - /* ignore interrupt if its not for us */ - if (ch->hw.status && !ch->hw.status(ch->dev)) - break; /* do we have a running request */ if (!(request = ch->running)) @@ -334,6 +331,10 @@ ATA_DEBUG_RQ(request, "interrupt"); + /* ignore interrupt if its not for us */ + if (ch->hw.status && !ch->hw.status(ch->dev)) + break; + /* safetycheck for the right state */ if (ch->state != ATA_ACTIVE && ch->state != ATA_STALL_QUEUE) { device_printf(request->dev, "interrupt on idle channel ignored\n"); [-- Attachment #3 --] Index: ata-pci.c =================================================================== RCS file: /home/ncvs/src/sys/dev/ata/ata-pci.c,v retrieving revision 1.112 diff -u -r1.112 ata-pci.c --- ata-pci.c 18 Jan 2006 13:10:17 -0000 1.112 +++ ata-pci.c 24 Jan 2006 09:04:33 -0000 @@ -439,7 +439,8 @@ { struct ata_channel *ch = device_get_softc(dev); - if (ch->dma && ((ch->flags & ATA_ALWAYS_DMASTAT) || + if (!ata_legacy(device_get_parent(dev)) && + ch->dma && ((ch->flags & ATA_ALWAYS_DMASTAT) || (ch->dma->flags & ATA_DMA_ACTIVE))) { int bmstat = ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?82eac8c60601240107t5750571xa70b95e439dab9b0>
