Skip to content

Commit

Permalink
mISDN: Fixed missing spin lock on pipeline process
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Andreas Eversberg authored and David S. Miller committed May 25, 2009
1 parent 44e0958 commit ba3af34
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion drivers/isdn/mISDN/dsp_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -704,6 +704,8 @@ dsp_function(struct mISDNchannel *ch, struct sk_buff *skb)
break;
}

spin_lock_irqsave(&dsp_lock, flags);

/* decrypt if enabled */
if (dsp->bf_enable)
dsp_bf_decrypt(dsp, skb->data, skb->len);
Expand Down Expand Up @@ -741,11 +743,11 @@ dsp_function(struct mISDNchannel *ch, struct sk_buff *skb)
}
}
/* 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) {
/* process data from card at cmx */
dsp_cmx_receive(dsp, skb);
}

spin_unlock_irqrestore(&dsp_lock, flags);

if (dsp->rx_disabled) {
Expand Down

0 comments on commit ba3af34

Please sign in to comment.