diff options
| -rw-r--r-- | drivers/isdn/mISDN/dsp_core.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/isdn/mISDN/dsp_core.c b/drivers/isdn/mISDN/dsp_core.c index 1d504ba954f5..c16cb7ac3d2a 100644 --- a/drivers/isdn/mISDN/dsp_core.c +++ b/drivers/isdn/mISDN/dsp_core.c | |||
| @@ -867,11 +867,14 @@ dsp_function(struct mISDNchannel *ch, struct sk_buff *skb) | |||
| 867 | } | 867 | } |
| 868 | if (dsp->hdlc) { | 868 | if (dsp->hdlc) { |
| 869 | /* hdlc */ | 869 | /* hdlc */ |
| 870 | spin_lock_irqsave(&dsp_lock, flags); | 870 | if (!dsp->b_active) { |
| 871 | if (dsp->b_active) { | 871 | ret = -EIO; |
| 872 | skb_queue_tail(&dsp->sendq, skb); | 872 | break; |
| 873 | schedule_work(&dsp->workq); | ||
| 874 | } | 873 | } |
| 874 | hh->prim = PH_DATA_REQ; | ||
| 875 | spin_lock_irqsave(&dsp_lock, flags); | ||
| 876 | skb_queue_tail(&dsp->sendq, skb); | ||
| 877 | schedule_work(&dsp->workq); | ||
| 875 | spin_unlock_irqrestore(&dsp_lock, flags); | 878 | spin_unlock_irqrestore(&dsp_lock, flags); |
| 876 | return 0; | 879 | return 0; |
| 877 | } | 880 | } |
