Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 05 Jul 2002 12:58:08 +0900
From:      WATANABE Kiyoshi <aab10490@pop16.odn.ne.jp>
To:        Gianmarco Giovannelli <gmarco@giovannelli.it>
Cc:        stable@freebsd.org, darius@dons.net.au
Subject:   Re: ltmdm panic on 4.6-STABLE
Message-ID:  <3D2516F8.1215C102@pop16.odn.ne.jp>
References:  <5.1.1.6.2.20020704074735.01f92ec0@194.184.65.4>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 04 Jul 2002 08:08:52 +0200, Gianmarco Giovannelli wrote:
> I have a smp box running 4.6-STABLE (cvsupped src and ports this morning).
> 
> FreeBSD freebsd.giovannelli.com 4.6-STABLE FreeBSD 4.6-STABLE #3: Wed
-snip-
> I have installed the ltmdm port for using a lucent winmodem.
> ltmdm-1.4_3         Driver for the Lucent LT Winmodem chipset
> (I compiled and installed it before and after the make world without the
> same results)
> 
> freebsd:/home/gmarco# pciconf -l
-snip-
> none2@pci0:12:0:        class=0x078000 card=0x044c11c1 chip=0x044c11c1 rev=0x02 hdr=0x00
-snip-
> As soon as the port start (or I kldloaded the ltmdm.ko mod) the box panics.
> 
> Here it is what I succeded in grab from video:
> 
> panic:register_swi:bad intr 16
> mp_lock=00000001; cpuid=0; lapic.id=01000000
> boot() called on cpu0
-snip-
> Any idea ???

The linux driver ltmodem-6.00c2.tar.gz which is derived from the original Agere's linux600.zip
includes a document about SMP.

DOCs/SMP.txt
================================================================================
FileName DOCs/SMP.txt
-snip-
... The
current problem is merely that the Lucent modem drivers
under Linux have not yet been refined to function with
SMP kernels.  This code change will eventually reside in
the proprietary component of the driver code, and is 
outside the effective access of the Maintainers of this kit.
-snip-
FileName DOCs/SMP.txt
2002March5
================================================================================

So I ignored SMP case when I ported the driver from Linux.
But I don't know whether the problem on SMP is really in the core code.

If you have time to try it,
please test the following patches in order, and tell me if it works.

ports/comms/ltmdm/files/patch-ae (1st bet)
================================================================================
--- sys/dev/ltmdm-1.4_3/ltmdmsio.c
+++ sys/dev/ltmdm/ltmdmsio.c
@@ -123,8 +123,13 @@
 #define lt_enable_intr()    critical_exit(savecrit)
 #endif
 #else
+#ifdef SMP
+#define lt_disable_intr()   COM_DISABLE_INTR()
+#define lt_enable_intr()    COM_ENABLE_INTR()
+#else
 #define lt_disable_intr()   disable_intr()
 #define lt_enable_intr()    enable_intr()
+#endif
 #endif
 
 #if __FreeBSD_version >= 500023 /* >= 20010912 */
================================================================================


ports/comms/ltmdm/files/patch-ae (2nd bet)
================================================================================
--- sys/dev/ltmdm-1.4_3/ltmdmsio.c
+++ sys/dev/ltmdm/ltmdmsio.c
@@ -123,8 +123,15 @@
 #define lt_enable_intr()    critical_exit(savecrit)
 #endif
 #else
+#ifdef SMP
+#undef  COM_LOCK
+#define COM_LOCK()          MPINTR_LOCK()
+#undef  COM_UNLOCK
+#define COM_UNLOCK()        MPINTR_UNLOCK()
+#else
 #define lt_disable_intr()   disable_intr()
 #define lt_enable_intr()    enable_intr()
+#endif
 #endif
 
 #if __FreeBSD_version >= 500023 /* >= 20010912 */
================================================================================


ports/comms/ltmdm/files/patch-ae (3rd bet)
================================================================================
--- sys/dev/ltmdm-1.4_3/ltmdmsio.c
+++ sys/dev/ltmdm/ltmdmsio.c
@@ -123,6 +123,10 @@
 #define lt_enable_intr()    critical_exit(savecrit)
 #endif
 #else
+#ifdef SMP
+#define COM_LOCK()          disable_intr()
+#define COM_UNLOCK()        enable_intr()
+#endif
 #define lt_disable_intr()   disable_intr()
 #define lt_enable_intr()    enable_intr()
 #endif
================================================================================

--



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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D2516F8.1215C102>