aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/mISDN
diff options
context:
space:
mode:
authorAndreas Eversberg <andreas@eversberg.eu>2009-05-22 07:04:47 -0400
committerDavid S. Miller <davem@davemloft.net>2009-05-25 03:51:32 -0400
commitba3af34ec9866dddac36c15947f867eb8e889bbc (patch)
tree21895b97b7ec004e39ad01d97a0fec83a657eab0 /drivers/isdn/mISDN
parent44e095897d745a03d71611fd318f26d8b12a4771 (diff)
mISDN: Fixed missing spin lock on pipeline process
Need to protect the complete pipeline. Signed-off-by: Andreas Eversberg <andreas@eversberg.eu> Signed-off-by: Karsten Keil <keil@b1-systems.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/isdn/mISDN')
-rw-r--r--drivers/isdn/mISDN/dsp_core.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/isdn/mISDN/dsp_core.c b/drivers/isdn/mISDN/dsp_core.c
index 1c49368e0a90..621ea9bc7c25 100644
--- a/drivers/isdn/mISDN/dsp_core.c
+++ b/drivers/isdn/mISDN/dsp_core.c
@@ -704,6 +704,8 @@ dsp_function(struct mISDNchannel *ch, struct sk_buff *skb)
704 break; 704 break;
705 } 705 }
706 706
707 spin_lock_irqsave(&dsp_lock, flags);
708
707 /* decrypt if enabled */ 709 /* decrypt if enabled */
708 if (dsp->bf_enable) 710 if (dsp->bf_enable)
709 dsp_bf_decrypt(dsp, skb->data, skb->len); 711 dsp_bf_decrypt(dsp, skb->data, skb->len);
@@ -741,11 +743,11 @@ dsp_function(struct mISDNchannel *ch, struct sk_buff *skb)
741 } 743 }
742 } 744 }
743 /* we need to process receive data if software */ 745 /* we need to process receive data if software */
744 spin_lock_irqsave(&dsp_lock, flags);
745 if (dsp->pcm_slot_tx < 0 && dsp->pcm_slot_rx < 0) { 746 if (dsp->pcm_slot_tx < 0 && dsp->pcm_slot_rx < 0) {
746 /* process data from card at cmx */ 747 /* process data from card at cmx */
747 dsp_cmx_receive(dsp, skb); 748 dsp_cmx_receive(dsp, skb);
748 } 749 }
750
749 spin_unlock_irqrestore(&dsp_lock, flags); 751 spin_unlock_irqrestore(&dsp_lock, flags);
750 752
751 if (dsp->rx_disabled) { 753 if (dsp->rx_disabled) {