diff options
Diffstat (limited to 'drivers/isdn/hardware/mISDN/netjet.c')
-rw-r--r-- | drivers/isdn/hardware/mISDN/netjet.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/isdn/hardware/mISDN/netjet.c b/drivers/isdn/hardware/mISDN/netjet.c index 27998d7188a5..55a77ed7b176 100644 --- a/drivers/isdn/hardware/mISDN/netjet.c +++ b/drivers/isdn/hardware/mISDN/netjet.c | |||
@@ -808,14 +808,10 @@ nj_bctrl(struct mISDNchannel *ch, u32 cmd, void *arg) | |||
808 | switch (cmd) { | 808 | switch (cmd) { |
809 | case CLOSE_CHANNEL: | 809 | case CLOSE_CHANNEL: |
810 | test_and_clear_bit(FLG_OPEN, &bch->Flags); | 810 | test_and_clear_bit(FLG_OPEN, &bch->Flags); |
811 | if (test_bit(FLG_ACTIVE, &bch->Flags)) { | 811 | spin_lock_irqsave(&card->lock, flags); |
812 | spin_lock_irqsave(&card->lock, flags); | 812 | mISDN_freebchannel(bch); |
813 | mISDN_freebchannel(bch); | 813 | mode_tiger(bc, ISDN_P_NONE); |
814 | test_and_clear_bit(FLG_TX_BUSY, &bch->Flags); | 814 | spin_unlock_irqrestore(&card->lock, flags); |
815 | test_and_clear_bit(FLG_ACTIVE, &bch->Flags); | ||
816 | mode_tiger(bc, ISDN_P_NONE); | ||
817 | spin_unlock_irqrestore(&card->lock, flags); | ||
818 | } | ||
819 | ch->protocol = ISDN_P_NONE; | 815 | ch->protocol = ISDN_P_NONE; |
820 | ch->peer = NULL; | 816 | ch->peer = NULL; |
821 | module_put(THIS_MODULE); | 817 | module_put(THIS_MODULE); |