Bug#601034: This subject is intentionally left blank.

Teanlorg Chan alias-bts-5pzpj0srowdc at airsource.co.uk
Mon Apr 25 15:29:49 UTC 2011


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





More information about the Pkg-voip-maintainers mailing list