diff options
-rw-r--r-- | drivers/isdn/mISDN/dsp_core.c | 4 |
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) { |