diff options
Diffstat (limited to 'drivers/net/usb/hso.c')
| -rw-r--r-- | drivers/net/usb/hso.c | 20 | 
1 files changed, 3 insertions, 17 deletions
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index e2dd3249b6b..cba1d46e672 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c @@ -1925,7 +1925,6 @@ static void hso_std_serial_write_bulk_callback(struct urb *urb)  {  	struct hso_serial *serial = urb->context;  	int status = urb->status; -	struct tty_struct *tty;  	/* sanity check */  	if (!serial) { @@ -1941,11 +1940,7 @@ static void hso_std_serial_write_bulk_callback(struct urb *urb)  		return;  	}  	hso_put_activity(serial->parent); -	tty = tty_port_tty_get(&serial->port); -	if (tty) { -		tty_wakeup(tty); -		tty_kref_put(tty); -	} +	tty_port_tty_wakeup(&serial->port);  	hso_kick_transmit(serial);  	D1(" "); @@ -2008,12 +2003,8 @@ static void ctrl_callback(struct urb *urb)  		put_rxbuf_data_and_resubmit_ctrl_urb(serial);  		spin_unlock(&serial->serial_lock);  	} else { -		struct tty_struct *tty = tty_port_tty_get(&serial->port);  		hso_put_activity(serial->parent); -		if (tty) { -			tty_wakeup(tty); -			tty_kref_put(tty); -		} +		tty_port_tty_wakeup(&serial->port);  		/* response to a write command */  		hso_kick_transmit(serial);  	} @@ -3133,18 +3124,13 @@ static void hso_serial_ref_free(struct kref *ref)  static void hso_free_interface(struct usb_interface *interface)  {  	struct hso_serial *hso_dev; -	struct tty_struct *tty;  	int i;  	for (i = 0; i < HSO_SERIAL_TTY_MINORS; i++) {  		if (serial_table[i] &&  		    (serial_table[i]->interface == interface)) {  			hso_dev = dev2ser(serial_table[i]); -			tty = tty_port_tty_get(&hso_dev->port); -			if (tty) { -				tty_hangup(tty); -				tty_kref_put(tty); -			} +			tty_port_tty_hangup(&hso_dev->port, false);  			mutex_lock(&hso_dev->parent->mutex);  			hso_dev->parent->usb_gone = 1;  			mutex_unlock(&hso_dev->parent->mutex);  |