static int ipw_open(struct tty_struct *linux_tty, struct file *filp) { int minor = linux_tty->index; struct ipw_tty *tty = get_tty(minor); if (!tty) return -ENODEV; mutex_lock(&tty->ipw_tty_mutex); if (tty->closing) { mutex_unlock(&tty->ipw_tty_mutex); return -ENODEV; } if (atomic_read(&tty->open_count) == 0) tty->tx_bytes_queued = 0; atomic_inc(&tty->open_count); tty->linux_tty = linux_tty; linux_tty->driver_data = tty; linux_tty->low_latency = 1; if (tty->tty_type == TTYTYPE_MODEM) ipwireless_ppp_open(tty->network); mutex_unlock(&tty->ipw_tty_mutex); return 0; }
static int ipw_open(struct tty_struct *linux_tty, struct file *filp) { struct ipw_tty *tty = get_tty(linux_tty->index); if (!tty) return -ENODEV; mutex_lock(&tty->ipw_tty_mutex); if (tty->port.count == 0) tty->tx_bytes_queued = 0; tty->port.count++; tty->port.tty = linux_tty; linux_tty->driver_data = tty; tty->port.low_latency = 1; if (tty->tty_type == TTYTYPE_MODEM) ipwireless_ppp_open(tty->network); mutex_unlock(&tty->ipw_tty_mutex); return 0; }