diff options
| -rw-r--r-- | drivers/usb/serial/usb_wwan.c | 15 | 
1 files changed, 9 insertions, 6 deletions
| diff --git a/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c index b004b2a485c3..9c014e2ecd68 100644 --- a/drivers/usb/serial/usb_wwan.c +++ b/drivers/usb/serial/usb_wwan.c @@ -295,12 +295,15 @@ static void usb_wwan_indat_callback(struct urb *urb)  		    __func__, status, endpoint);  	} else {  		tty = tty_port_tty_get(&port->port); -		if (urb->actual_length) { -			tty_insert_flip_string(tty, data, urb->actual_length); -			tty_flip_buffer_push(tty); -		} else -			dbg("%s: empty read urb received", __func__); -		tty_kref_put(tty); +		if (tty) { +			if (urb->actual_length) { +				tty_insert_flip_string(tty, data, +						urb->actual_length); +				tty_flip_buffer_push(tty); +			} else +				dbg("%s: empty read urb received", __func__); +			tty_kref_put(tty); +		}  		/* Resubmit urb so we continue receiving */  		if (status != -ESHUTDOWN) { | 
