diff options
Diffstat (limited to 'drivers/isdn/mISDN/hwchannel.c')
| -rw-r--r-- | drivers/isdn/mISDN/hwchannel.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/isdn/mISDN/hwchannel.c b/drivers/isdn/mISDN/hwchannel.c index ef34fd40867c..2602be23f341 100644 --- a/drivers/isdn/mISDN/hwchannel.c +++ b/drivers/isdn/mISDN/hwchannel.c | |||
| @@ -148,17 +148,16 @@ mISDN_clear_bchannel(struct bchannel *ch) | |||
| 148 | ch->next_minlen = ch->init_minlen; | 148 | ch->next_minlen = ch->init_minlen; |
| 149 | ch->maxlen = ch->init_maxlen; | 149 | ch->maxlen = ch->init_maxlen; |
| 150 | ch->next_maxlen = ch->init_maxlen; | 150 | ch->next_maxlen = ch->init_maxlen; |
| 151 | skb_queue_purge(&ch->rqueue); | ||
| 152 | ch->rcount = 0; | ||
| 151 | } | 153 | } |
| 152 | EXPORT_SYMBOL(mISDN_clear_bchannel); | 154 | EXPORT_SYMBOL(mISDN_clear_bchannel); |
| 153 | 155 | ||
| 154 | int | 156 | void |
| 155 | mISDN_freebchannel(struct bchannel *ch) | 157 | mISDN_freebchannel(struct bchannel *ch) |
| 156 | { | 158 | { |
| 159 | cancel_work_sync(&ch->workq); | ||
| 157 | mISDN_clear_bchannel(ch); | 160 | mISDN_clear_bchannel(ch); |
| 158 | skb_queue_purge(&ch->rqueue); | ||
| 159 | ch->rcount = 0; | ||
| 160 | flush_work_sync(&ch->workq); | ||
| 161 | return 0; | ||
| 162 | } | 161 | } |
| 163 | EXPORT_SYMBOL(mISDN_freebchannel); | 162 | EXPORT_SYMBOL(mISDN_freebchannel); |
| 164 | 163 | ||
