aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hardware/mISDN/mISDNipac.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/isdn/hardware/mISDN/mISDNipac.c')
-rw-r--r--drivers/isdn/hardware/mISDN/mISDNipac.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/isdn/hardware/mISDN/mISDNipac.c b/drivers/isdn/hardware/mISDN/mISDNipac.c
index 92d4a78bc0a5..6c044d55536b 100644
--- a/drivers/isdn/hardware/mISDN/mISDNipac.c
+++ b/drivers/isdn/hardware/mISDN/mISDNipac.c
@@ -1420,15 +1420,10 @@ hscx_bctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
1420 switch (cmd) { 1420 switch (cmd) {
1421 case CLOSE_CHANNEL: 1421 case CLOSE_CHANNEL:
1422 test_and_clear_bit(FLG_OPEN, &bch->Flags); 1422 test_and_clear_bit(FLG_OPEN, &bch->Flags);
1423 if (test_bit(FLG_ACTIVE, &bch->Flags)) { 1423 spin_lock_irqsave(hx->ip->hwlock, flags);
1424 spin_lock_irqsave(hx->ip->hwlock, flags); 1424 mISDN_freebchannel(bch);
1425 mISDN_freebchannel(bch); 1425 hscx_mode(hx, ISDN_P_NONE);
1426 hscx_mode(hx, ISDN_P_NONE); 1426 spin_unlock_irqrestore(hx->ip->hwlock, flags);
1427 spin_unlock_irqrestore(hx->ip->hwlock, flags);
1428 } else {
1429 skb_queue_purge(&bch->rqueue);
1430 bch->rcount = 0;
1431 }
1432 ch->protocol = ISDN_P_NONE; 1427 ch->protocol = ISDN_P_NONE;
1433 ch->peer = NULL; 1428 ch->peer = NULL;
1434 module_put(hx->ip->owner); 1429 module_put(hx->ip->owner);