mISDN: Fix kernel crash when doing hardware conference with more than two members
authorAndreas Eversberg <andreas@eversberg.eu>
Sun, 28 Dec 2008 15:31:26 +0000 (16:31 +0100)
committerKarsten Keil <kkeil@suse.de>
Fri, 9 Jan 2009 21:44:29 +0000 (22:44 +0100)
Fix kernel crash when doing hardware conference with more than two members.
Removed DTMF threshold notice when debugging is disabled.

Signed-off-by: Andreas Eversberg <andreas@eversberg.eu>
Signed-off-by: Karsten Keil <kkeil@suse.de>
drivers/isdn/mISDN/dsp_cmx.c
drivers/isdn/mISDN/dsp_core.c

index 02f6434..0ac67bf 100644 (file)
@@ -927,10 +927,6 @@ conf_software:
 
        /* for more than two members.. */
 
-       /* in case of hdlc, we change to software */
-       if (dsp->hdlc)
-               goto conf_software;
-
        /* if all members already have the same conference */
        if (all_conf)
                return;
@@ -941,6 +937,9 @@ conf_software:
        if (current_conf >= 0) {
 join_members:
                list_for_each_entry(member, &conf->mlist, list) {
+                       /* in case of hdlc, change to software */
+                       if (member->dsp->hdlc)
+                               goto conf_software;
                        /* join to current conference */
                        if (member->dsp->hfc_conf == current_conf)
                                continue;
index 7e60cb9..3083338 100644 (file)
@@ -301,8 +301,9 @@ dsp_control_req(struct dsp *dsp, struct mISDNhead *hh, struct sk_buff *skb)
                if (dsp_debug & DEBUG_DSP_CORE)
                        printk(KERN_DEBUG "%s: start dtmf\n", __func__);
                if (len == sizeof(int)) {
-                       printk(KERN_NOTICE "changing DTMF Threshold "
-                               "to %d\n", *((int *)data));
+                       if (dsp_debug & DEBUG_DSP_CORE)
+                               printk(KERN_NOTICE "changing DTMF Threshold "
+                                       "to %d\n", *((int *)data));
                        dsp->dtmf.treshold = (*(int *)data) * 10000;
                }
                /* init goertzel */