Skip to content

Commit da609ed

Browse files
committed
Merge tag 'usb-serial-5.18-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
Johan writes: USB-serial fixes for 5.18-rc4 Here's a fix for a potential overflow issue in the whiteheat driver when using the old ARM ABI. Included are also some new modem device ids. All have been in linux-next with no reported issues. * tag 'usb-serial-5.18-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial: USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader USB: serial: option: add support for Cinterion MV32-WA/MV32-WB USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions
2 parents f4fd84a + e23e50e commit da609ed

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

drivers/usb/serial/cp210x.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@ static const struct usb_device_id id_table[] = {
194194
{ USB_DEVICE(0x16DC, 0x0015) }, /* W-IE-NE-R Plein & Baus GmbH CML Control, Monitoring and Data Logger */
195195
{ USB_DEVICE(0x17A8, 0x0001) }, /* Kamstrup Optical Eye/3-wire */
196196
{ USB_DEVICE(0x17A8, 0x0005) }, /* Kamstrup M-Bus Master MultiPort 250D */
197+
{ USB_DEVICE(0x17A8, 0x0101) }, /* Kamstrup 868 MHz wM-Bus C-Mode Meter Reader (Int Ant) */
198+
{ USB_DEVICE(0x17A8, 0x0102) }, /* Kamstrup 868 MHz wM-Bus C-Mode Meter Reader (Ext Ant) */
197199
{ USB_DEVICE(0x17F4, 0xAAAA) }, /* Wavesense Jazz blood glucose meter */
198200
{ USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */
199201
{ USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */

drivers/usb/serial/option.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,8 @@ static void option_instat_callback(struct urb *urb);
432432
#define CINTERION_PRODUCT_CLS8 0x00b0
433433
#define CINTERION_PRODUCT_MV31_MBIM 0x00b3
434434
#define CINTERION_PRODUCT_MV31_RMNET 0x00b7
435+
#define CINTERION_PRODUCT_MV32_WA 0x00f1
436+
#define CINTERION_PRODUCT_MV32_WB 0x00f2
435437

436438
/* Olivetti products */
437439
#define OLIVETTI_VENDOR_ID 0x0b3c
@@ -1217,6 +1219,10 @@ static const struct usb_device_id option_ids[] = {
12171219
.driver_info = NCTRL(0) | RSVD(1) },
12181220
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1056, 0xff), /* Telit FD980 */
12191221
.driver_info = NCTRL(2) | RSVD(3) },
1222+
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1057, 0xff), /* Telit FN980 */
1223+
.driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
1224+
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1058, 0xff), /* Telit FN980 (PCIe) */
1225+
.driver_info = NCTRL(0) | RSVD(1) },
12201226
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1060, 0xff), /* Telit LN920 (rmnet) */
12211227
.driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
12221228
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1061, 0xff), /* Telit LN920 (MBIM) */
@@ -1233,6 +1239,8 @@ static const struct usb_device_id option_ids[] = {
12331239
.driver_info = NCTRL(2) | RSVD(3) },
12341240
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1073, 0xff), /* Telit FN990 (ECM) */
12351241
.driver_info = NCTRL(0) | RSVD(1) },
1242+
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1075, 0xff), /* Telit FN990 (PCIe) */
1243+
.driver_info = RSVD(0) },
12361244
{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910),
12371245
.driver_info = NCTRL(0) | RSVD(1) | RSVD(3) },
12381246
{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM),
@@ -1969,6 +1977,10 @@ static const struct usb_device_id option_ids[] = {
19691977
.driver_info = RSVD(3)},
19701978
{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_RMNET, 0xff),
19711979
.driver_info = RSVD(0)},
1980+
{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WA, 0xff),
1981+
.driver_info = RSVD(3)},
1982+
{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WB, 0xff),
1983+
.driver_info = RSVD(3)},
19721984
{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100),
19731985
.driver_info = RSVD(4) },
19741986
{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD120),

drivers/usb/serial/whiteheat.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -584,9 +584,8 @@ static int firm_send_command(struct usb_serial_port *port, __u8 command,
584584
switch (command) {
585585
case WHITEHEAT_GET_DTR_RTS:
586586
info = usb_get_serial_port_data(port);
587-
memcpy(&info->mcr, command_info->result_buffer,
588-
sizeof(struct whiteheat_dr_info));
589-
break;
587+
info->mcr = command_info->result_buffer[0];
588+
break;
590589
}
591590
}
592591
exit:

0 commit comments

Comments
 (0)