Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Feb 1998 22:08:29 +0100 (MET)
From:      Wolfgang Helbig <helbig@Informatik.BA-Stuttgart.DE>
To:        hm@kts.org
Cc:        freebsd-isdn@FreeBSD.ORG
Subject:   i4b - SMP
Message-ID:  <199802212108.WAA15542@rvc1.informatik.ba-stuttgart.de>
In-Reply-To: <m0y6Kgl-00023xC@bert.kts.org> from Hellmuth Michaelis at "Feb 21, 98 08:34:19 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
> Wolfgang Helbig wrote:
> 
> > The card (TELES 16.3) didn't interrupt on an SMP machine.
> > This is a gross workaround, but anyway it works *and* provides
> > some information as how to finally fix this problem.
> 
> This is strange. This is really, really strange.

Not *that* strange. During initialization of the ISAC and HSCX
chips they raise the interrupt line - exactly once, since these
chips are requesting interrupts by just setting the level, not by
giving a positive edge on the IR line. In an SMP environment, this
first (and only) edge is lost and the ISR is never called. The
MASK/DEMASK sequence in isic_isac_l1_cmd() produces this edge every
time a layer1 command is issued and ISAC/HSCX commands are pending.

A layer1 command is issued from the "upper half" of the kernel, i.
e. not from the ISR, if ph_data_req() finds that layer 1 is not in
state ,,F7 activated''.

The raising edge is not lost, if maximal debug reporting
is turned on for all layers.

Prerequesite for the final fix is to find out, why this first edge is
lost.

Wolfgang

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?199802212108.WAA15542>