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>