A little digging reveals a thread [1] reporting similar behaviour (crashes 
which go away when echo cancellation is disabled). The explanation [2] goes 
something like this:

Therefore, oslec most likely is killing the FPU registers since it believes 
that dahdi-base.c is taking care of saving and restoring them by hand.

The fix is pretty simple:

diff -U3 -r dahdi/drivers/dahdi/Kbuild dahdi.fixed/drivers/dahdi/Kbuild
--- dahdi/drivers/dahdi/Kbuild  2010-08-02 12:09:15.000000000 +0100
+++ dahdi.fixed/drivers/dahdi/Kbuild    2011-04-08 16:27:35.000000000 +0100
@@ -157,7 +157,7 @@
 ifneq (,$(DAHDI_MMX_AUTO))
   ifneq (,$(DAHDI_MMX_CONFIG_VALS))
     DAHDI_USE_MMX=yes
-    CFLAGS_zaptel-base.o += -DCONFIG_DAHDI_MMX
+    CFLAGS_dahdi-base.o += -DCONFIG_DAHDI_MMX
   endif
 endif

It passes the obvious sanity check (there's no reference to "zaptel-base" 
anywhere else in Kbuild).

Testing this fix is also pretty simple:

1. Get the source and unpack it (you can skip this if it's already been built)
  # m-a unpack dahdi
2. Edit /usr/src/modules/dahdi/drivers/dahdi/Kbuild and replace 
CFLAGS_zaptel-base.o with CFLAGS_dahdi-base.o
3. Stop asterisk and unload dahdi modules.
4. Rebuild dahdi
  # m-a a-i --not-unpack -f dahdi
5. If things are still broken, reboot. (This might be related to omitting step 
3; oops.)

It probably has nothing to do with zaphfc other than that the code happens to run at 
around the same time; the only crash log I have handy is in "imap-login" which 
didn't manage to print a backtrace (the other crashes seemed equally unhelpful).

- Teanlorg

[1] 
http://lists.digium.com/pipermail/asterisk-users/2010-October/thread.html#254817
[2] http://lists.digium.com/pipermail/asterisk-users/2010-October/254890.html



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to