Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Jan 2002 10:53:01 +0100
From:      Gary Jennejohn <garyj@jennejohn.org>
To:        Andrew Gordon <arg-bsd@arg1.demon.co.uk>
Cc:        <freebsd-isdn@freebsd.org>
Subject:   Re: ifpi2 problems - partially fixed!
Message-ID:  <200201140953.g0E9r1Y15890@peedub.jennejohn.org>
In-Reply-To: <20020114090708.I29792-100000@server.arg.sj.co.uk>
References:  <20020114090708.I29792-100000@server.arg.sj.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 14 January 2002 00:23, Andrew Gordon wrote:

> With this patch, I see the printf() at about the same point
> where it used to lock up previously (and it now keeps going!).
>
> @@ -974,6 +972,8 @@
>         /* was there an interrupt from this card ? */
>         if ((stat & ASL_IRQ_Pending) == 0)
>                 return; /* no */
> +
> +again:
>         /* interrupts are high active */
>         if (stat & ASL_IRQ_TIMER)
>           NDBGL1(L1_H_IRQ, "timer interrupt ???");
> @@ -987,6 +987,14 @@
>           NDBGL1(L1_H_IRQ, "ISAC");
>                 ifpi2_isacsx_intr(sc);
>         }
> +       stat = bus_space_read_1(btag, bhandle, STAT0_OFFSET);
> +       NDBGL1(L1_H_IRQ, "stat %x", stat);
> +       /* Have we cleared all pending interrupts ? */
> +       if ((stat & ASL_IRQ_Pending) != 0)
> +       {
> +               printf("Repeat IRQ!\n");
> +               goto again;
> +       }
>  }
>

OK, this looks like a reasonable patch, I'll apply it. I think 
you're right about the slow HW. I did all my testing with a 1.2 
GHz Athlon. I also recently installed the driver on a friend's 
machine with a 166 MHz P2 and never saw any problems under high 
load.

>
>
> However, there is one remaining problem - which may be a
> general I4B bug rather than ifpi2 specific.  If I have full
> debugging turned on as it tries to make a connection
> (isdndebug -l1 -m), then I usually see this:
>
> Jan 13 19:56:27 router /kernel: i4b: unit 0, assigned TEI =
> 116 = 0x74 i4b-L2 i4b_T200_timeout: unit 0, RC = 0
> i4b-L2 i4b_rxd_ack: ((N(R)-1)=127) != (UA=0) !!!
> i4b-L2 i4b_invoke_retransmission: nr = 0
> i4b-L2 i4b_invoke_retransmission: nr(0) != vs(1)
> i4b-L2 i4b_invoke_retransmission: ERROR, l2sc->vs = 0,
> l2sc->ua_num = -1 i4b-L2 i4b_i_frame_queued_up: ERROR, mbuf
> NULL after IF_DEQUEUE i4b-L3 T303_timeout: SETUP not answered,
> cr = 98
>

Hmm, I'll look into it. I also noticed a problem with my 
friend's machine. If I did a reboot the kernel hung due to an 
apparent problem with the ifpi2 being in a strange state (not 
completely reset by the software reset). I had to do a hard 
reset in order to avoid the hang. On my system here I never 
observed the problem.

-- 
Gary Jennejohn garyj@jennejohn.org gj@freebsd.org

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isdn" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200201140953.g0E9r1Y15890>