Commit ba3af34e authored by Andreas Eversberg's avatar Andreas Eversberg Committed by David S. Miller

mISDN: Fixed missing spin lock on pipeline process

Need to protect the complete pipeline.
Signed-off-by: default avatarAndreas Eversberg <andreas@eversberg.eu>
Signed-off-by: default avatarKarsten Keil <keil@b1-systems.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 44e09589
...@@ -704,6 +704,8 @@ dsp_function(struct mISDNchannel *ch, struct sk_buff *skb) ...@@ -704,6 +704,8 @@ dsp_function(struct mISDNchannel *ch, struct sk_buff *skb)
break; break;
} }
spin_lock_irqsave(&dsp_lock, flags);
/* decrypt if enabled */ /* decrypt if enabled */
if (dsp->bf_enable) if (dsp->bf_enable)
dsp_bf_decrypt(dsp, skb->data, skb->len); dsp_bf_decrypt(dsp, skb->data, skb->len);
...@@ -741,11 +743,11 @@ dsp_function(struct mISDNchannel *ch, struct sk_buff *skb) ...@@ -741,11 +743,11 @@ dsp_function(struct mISDNchannel *ch, struct sk_buff *skb)
} }
} }
/* we need to process receive data if software */ /* we need to process receive data if software */
spin_lock_irqsave(&dsp_lock, flags);
if (dsp->pcm_slot_tx < 0 && dsp->pcm_slot_rx < 0) { if (dsp->pcm_slot_tx < 0 && dsp->pcm_slot_rx < 0) {
/* process data from card at cmx */ /* process data from card at cmx */
dsp_cmx_receive(dsp, skb); dsp_cmx_receive(dsp, skb);
} }
spin_unlock_irqrestore(&dsp_lock, flags); spin_unlock_irqrestore(&dsp_lock, flags);
if (dsp->rx_disabled) { if (dsp->rx_disabled) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment