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

Commit 8e493ca1 authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman
Browse files

USB: usb_wwan: fix bulk-urb allocation



Make sure we do not allocate urbs if we do not have a bulk endpoint.

Legacy code used incorrect assumption to test for bulk endpoints.

Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 169b245a
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -455,9 +455,6 @@ static struct urb *usb_wwan_setup_urb(struct usb_serial_port *port,
	struct usb_serial *serial = port->serial;
	struct urb *urb;

	if (endpoint == -1)
		return NULL;	/* endpoint not needed */

	urb = usb_alloc_urb(0, GFP_KERNEL);	/* No ISO */
	if (urb == NULL) {
		dev_dbg(&serial->interface->dev,
@@ -489,6 +486,9 @@ int usb_wwan_port_probe(struct usb_serial_port *port)
	init_usb_anchor(&portdata->delayed);

	for (i = 0; i < N_IN_URB; i++) {
		if (!port->bulk_in_size)
			break;

		buffer = (u8 *)__get_free_page(GFP_KERNEL);
		if (!buffer)
			goto bail_out_error;
@@ -502,8 +502,8 @@ int usb_wwan_port_probe(struct usb_serial_port *port)
	}

	for (i = 0; i < N_OUT_URB; i++) {
		if (port->bulk_out_endpointAddress == -1)
			continue;
		if (!port->bulk_out_size)
			break;

		buffer = kmalloc(OUT_BUFLEN, GFP_KERNEL);
		if (!buffer)