Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3a75688 authored by Bill Pemberton's avatar Bill Pemberton Committed by Greg Kroah-Hartman
Browse files

Staging: serqt_usb2: add missing calls to tty_kref_put()



tty_port_tty_get() was called without a corresponding tty_kref_put()
in qt_read_bulk_callback() and qt_close().

Signed-off-by: default avatarBill Pemberton <wfp5p@virginia.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 4733fd32
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -360,18 +360,18 @@ static void qt_read_bulk_callback(struct urb *urb)
	if (port_paranoia_check(port, __func__) != 0) {
		dbg("%s - port_paranoia_check, exiting\n", __func__);
		qt_port->ReadBulkStopped = 1;
		return;
		goto exit;
	}

	if (!serial) {
		dbg("%s - bad serial pointer, exiting\n", __func__);
		return;
		goto exit;
	}
	if (qt_port->closePending == 1) {
		/* Were closing , stop reading */
		dbg("%s - (qt_port->closepending == 1\n", __func__);
		qt_port->ReadBulkStopped = 1;
		return;
		goto exit;
	}

	/*
@@ -381,7 +381,7 @@ static void qt_read_bulk_callback(struct urb *urb)
	 */
	if (qt_port->RxHolding == 1) {
		qt_port->ReadBulkStopped = 1;
		return;
		goto exit;
	}

	if (urb->status) {
@@ -389,7 +389,7 @@ static void qt_read_bulk_callback(struct urb *urb)

		dbg("%s - nonzero read bulk status received: %d\n",
		    __func__, urb->status);
		return;
		goto exit;
	}

	if (tty && RxCount) {
@@ -463,6 +463,8 @@ static void qt_read_bulk_callback(struct urb *urb)
	}

	schedule_work(&port->work);
exit:
	tty_kref_put(tty);
}

/*
@@ -1068,6 +1070,7 @@ static void qt_close( struct usb_serial_port *port)
	/* wait up to for transmitter to empty */
	if (serial->dev)
		qt_block_until_empty(tty, qt_port);
	tty_kref_put(tty);

	/* Close uart channel */
	status = qt_close_channel(serial, index);