Skip site navigation (1)Skip section navigation (2)
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>