diff options
Diffstat (limited to 'drivers/isdn/i4l/isdn_tty.c')
-rw-r--r-- | drivers/isdn/i4l/isdn_tty.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c index b37ef1f06b3d..8c404b4e2482 100644 --- a/drivers/isdn/i4l/isdn_tty.c +++ b/drivers/isdn/i4l/isdn_tty.c | |||
@@ -712,22 +712,14 @@ isdn_tty_modem_hup(modem_info * info, int local) | |||
712 | #endif | 712 | #endif |
713 | info->emu.vpar[4] = 0; | 713 | info->emu.vpar[4] = 0; |
714 | info->emu.vpar[5] = 8; | 714 | info->emu.vpar[5] = 8; |
715 | if (info->dtmf_state) { | 715 | kfree(info->dtmf_state); |
716 | kfree(info->dtmf_state); | 716 | info->dtmf_state = NULL; |
717 | info->dtmf_state = NULL; | 717 | kfree(info->silence_state); |
718 | } | 718 | info->silence_state = NULL; |
719 | if (info->silence_state) { | 719 | kfree(info->adpcms); |
720 | kfree(info->silence_state); | 720 | info->adpcms = NULL; |
721 | info->silence_state = NULL; | 721 | kfree(info->adpcmr); |
722 | } | 722 | info->adpcmr = NULL; |
723 | if (info->adpcms) { | ||
724 | kfree(info->adpcms); | ||
725 | info->adpcms = NULL; | ||
726 | } | ||
727 | if (info->adpcmr) { | ||
728 | kfree(info->adpcmr); | ||
729 | info->adpcmr = NULL; | ||
730 | } | ||
731 | #endif | 723 | #endif |
732 | if ((info->msr & UART_MSR_RI) && | 724 | if ((info->msr & UART_MSR_RI) && |
733 | (info->emu.mdmreg[REG_RUNG] & BIT_RUNG)) | 725 | (info->emu.mdmreg[REG_RUNG] & BIT_RUNG)) |
@@ -1721,8 +1713,7 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp) | |||
1721 | */ | 1713 | */ |
1722 | timeout = jiffies + HZ; | 1714 | timeout = jiffies + HZ; |
1723 | while (!(info->lsr & UART_LSR_TEMT)) { | 1715 | while (!(info->lsr & UART_LSR_TEMT)) { |
1724 | set_current_state(TASK_INTERRUPTIBLE); | 1716 | schedule_timeout_interruptible(20); |
1725 | schedule_timeout(20); | ||
1726 | if (time_after(jiffies,timeout)) | 1717 | if (time_after(jiffies,timeout)) |
1727 | break; | 1718 | break; |
1728 | } | 1719 | } |