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

Commit a89a798a authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'usb-serial-4.5-rc2' of...

Merge tag 'usb-serial-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial

 into usb-linus

Johan writes:

USB-serial fixes for v4.5-rc2

Here are two fixes of crashes in the visor driver that could be
triggered using bad (malicious) descriptors, a fix for two memory leaks
in the new mxu11x0 driver, and an interface-blacklist fix for the option
driver.

Included are also some new device ids.

Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
parents d8f00cd6 4152b387
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ static const struct usb_device_id id_table[] = {
	{ USB_DEVICE(0x10C4, 0x81AC) }, /* MSD Dash Hawk */
	{ USB_DEVICE(0x10C4, 0x81AD) }, /* INSYS USB Modem */
	{ USB_DEVICE(0x10C4, 0x81C8) }, /* Lipowsky Industrie Elektronik GmbH, Baby-JTAG */
	{ USB_DEVICE(0x10C4, 0x81D7) }, /* IAI Corp. RCB-CV-USB USB to RS485 Adaptor */
	{ USB_DEVICE(0x10C4, 0x81E2) }, /* Lipowsky Industrie Elektronik GmbH, Baby-LIN */
	{ USB_DEVICE(0x10C4, 0x81E7) }, /* Aerocomm Radio */
	{ USB_DEVICE(0x10C4, 0x81E8) }, /* Zephyr Bioharness */
+1 −0
Original line number Diff line number Diff line
@@ -824,6 +824,7 @@ static const struct usb_device_id id_table_combined[] = {
	{ USB_DEVICE(FTDI_VID, FTDI_TURTELIZER_PID),
		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
	{ USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_USB60F) },
	{ USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_SCU18) },
	{ USB_DEVICE(FTDI_VID, FTDI_REU_TINY_PID) },

	/* Papouch devices based on FTDI chip */
+1 −0
Original line number Diff line number Diff line
@@ -615,6 +615,7 @@
 */
#define RATOC_VENDOR_ID		0x0584
#define RATOC_PRODUCT_ID_USB60F	0xb020
#define RATOC_PRODUCT_ID_SCU18	0xb03a

/*
 * Infineon Technologies
+20 −0
Original line number Diff line number Diff line
@@ -368,6 +368,16 @@ static int mxu1_port_probe(struct usb_serial_port *port)
	return 0;
}

static int mxu1_port_remove(struct usb_serial_port *port)
{
	struct mxu1_port *mxport;

	mxport = usb_get_serial_port_data(port);
	kfree(mxport);

	return 0;
}

static int mxu1_startup(struct usb_serial *serial)
{
	struct mxu1_device *mxdev;
@@ -427,6 +437,14 @@ static int mxu1_startup(struct usb_serial *serial)
	return err;
}

static void mxu1_release(struct usb_serial *serial)
{
	struct mxu1_device *mxdev;

	mxdev = usb_get_serial_data(serial);
	kfree(mxdev);
}

static int mxu1_write_byte(struct usb_serial_port *port, u32 addr,
			   u8 mask, u8 byte)
{
@@ -957,7 +975,9 @@ static struct usb_serial_driver mxu11x0_device = {
	.id_table		= mxu1_idtable,
	.num_ports		= 1,
	.port_probe             = mxu1_port_probe,
	.port_remove            = mxu1_port_remove,
	.attach			= mxu1_startup,
	.release                = mxu1_release,
	.open			= mxu1_open,
	.close			= mxu1_close,
	.ioctl			= mxu1_ioctl,
+17 −1
Original line number Diff line number Diff line
@@ -268,6 +268,8 @@ static void option_instat_callback(struct urb *urb);
#define TELIT_PRODUCT_CC864_SINGLE		0x1006
#define TELIT_PRODUCT_DE910_DUAL		0x1010
#define TELIT_PRODUCT_UE910_V2			0x1012
#define TELIT_PRODUCT_LE922_USBCFG0		0x1042
#define TELIT_PRODUCT_LE922_USBCFG3		0x1043
#define TELIT_PRODUCT_LE920			0x1200
#define TELIT_PRODUCT_LE910			0x1201

@@ -615,6 +617,16 @@ static const struct option_blacklist_info telit_le920_blacklist = {
	.reserved = BIT(1) | BIT(5),
};

static const struct option_blacklist_info telit_le922_blacklist_usbcfg0 = {
	.sendsetup = BIT(2),
	.reserved = BIT(0) | BIT(1) | BIT(3),
};

static const struct option_blacklist_info telit_le922_blacklist_usbcfg3 = {
	.sendsetup = BIT(0),
	.reserved = BIT(1) | BIT(2) | BIT(3),
};

static const struct usb_device_id option_ids[] = {
	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
@@ -1160,6 +1172,10 @@ static const struct usb_device_id option_ids[] = {
	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) },
	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) },
	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UE910_V2) },
	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG0),
		.driver_info = (kernel_ulong_t)&telit_le922_blacklist_usbcfg0 },
	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG3),
		.driver_info = (kernel_ulong_t)&telit_le922_blacklist_usbcfg3 },
	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910),
		.driver_info = (kernel_ulong_t)&telit_le910_blacklist },
	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920),
@@ -1679,7 +1695,7 @@ static const struct usb_device_id option_ids[] = {
	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_P) },
	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8),
		.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX) },
	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX, 0xff) },
	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLXX),
		.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, 
Loading