Kaynağa Gözat

mISDN: Fix kernel crash when doing hardware conference with more than two members

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>
Andreas Eversberg 17 yıl önce
ebeveyn
işleme
c6a2e587e5
2 değiştirilmiş dosya ile 6 ekleme ve 6 silme
  1. 3 4
      drivers/isdn/mISDN/dsp_cmx.c
  2. 3 2
      drivers/isdn/mISDN/dsp_core.c

+ 3 - 4
drivers/isdn/mISDN/dsp_cmx.c

@@ -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;

+ 3 - 2
drivers/isdn/mISDN/dsp_core.c

@@ -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 */