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

Commit a1f721c8 authored by Oliver Neukum's avatar Oliver Neukum Committed by Greg Kroah-Hartman
Browse files

USB: further fix for usb-serial



this is a fix for the outstanding usb-serial issues.

Signed-off-by: default avatarOliver Neukum <oneukum@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent c744f99e
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -99,9 +99,12 @@ static struct usb_serial *get_free_serial (struct usb_serial *serial, int num_po
			continue;

		*minor = i;
		j = 0;
		dbg("%s - minor base = %d", __FUNCTION__, *minor);
		for (i = *minor; (i < (*minor + num_ports)) && (i < SERIAL_TTY_MINORS); ++i)
		for (i = *minor; (i < (*minor + num_ports)) && (i < SERIAL_TTY_MINORS); ++i) {
			serial_table[i] = serial;
			serial->port[j++]->number = i;
		}
		spin_unlock(&table_lock);
		return serial;
	}
@@ -847,7 +850,6 @@ int usb_serial_probe(struct usb_interface *interface,
		port = kzalloc(sizeof(struct usb_serial_port), GFP_KERNEL);
		if (!port)
			goto probe_error;
		port->number = i + serial->minor;
		port->serial = serial;
		spin_lock_init(&port->lock);
		mutex_init(&port->mutex);
@@ -1035,9 +1037,6 @@ int usb_serial_probe(struct usb_interface *interface,
		kfree(port->interrupt_out_buffer);
	}

	/* return the minor range that this device had */
	return_serial (serial);

	/* free up any memory that we allocated */
	for (i = 0; i < serial->num_port_pointers; ++i)
		kfree(serial->port[i]);