Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'usb-7.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB driver fixes from Greg KH:
"Here are some small USB driver fixes for 7.1-rc3 to resolve some
reported issues, and a new device id. These are:

- usblp driver heap leak fixes

- ulpi driver memory leak fix

- typec driver fixes

- dwc3 driver fix

- omap dma driver fix

- new option driver device id addition

All of these have been in linux-next for over a week with no reported
issues"

* tag 'usb-7.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
USB: serial: option: add Telit Cinterion LE910Cx compositions
usb: usblp: fix uninitialized heap leak via LPGETSTATUS ioctl
usb: usblp: fix heap leak in IEEE 1284 device ID via short response
usb: dwc3: Move GUID programming after PHY initialization
usb: typec: tcpm: fix debug accessory mode detection for sink ports
usb: typec: tcpm: reset internal port states on soft reset AMS
usb: ulpi: fix memory leak on ulpi_register() error paths
USB: omap_udc: DMA: Don't enable burst 4 mode

+34 -21
+2 -1
drivers/usb/class/usblp.c
··· 1178 1178 } 1179 1179 1180 1180 /* Allocate buffer for printer status */ 1181 - usblp->statusbuf = kmalloc(STATUS_BUF_SIZE, GFP_KERNEL); 1181 + usblp->statusbuf = kzalloc(STATUS_BUF_SIZE, GFP_KERNEL); 1182 1182 if (!usblp->statusbuf) { 1183 1183 retval = -ENOMEM; 1184 1184 goto abort; ··· 1377 1377 { 1378 1378 int err, length; 1379 1379 1380 + memset(usblp->device_id_string, 0, USBLP_DEVICE_ID_SIZE); 1380 1381 err = usblp_get_id(usblp, 0, usblp->device_id_string, USBLP_DEVICE_ID_SIZE - 1); 1381 1382 if (err < 0) { 1382 1383 dev_dbg(&usblp->intf->dev,
+4 -1
drivers/usb/common/ulpi.c
··· 286 286 ACPI_COMPANION_SET(&ulpi->dev, ACPI_COMPANION(dev)); 287 287 288 288 ret = ulpi_of_register(ulpi); 289 - if (ret) 289 + if (ret) { 290 + kfree(ulpi); 290 291 return ret; 292 + } 291 293 292 294 ret = ulpi_read_id(ulpi); 293 295 if (ret) { 294 296 of_node_put(ulpi->dev.of_node); 297 + kfree(ulpi); 295 298 return ret; 296 299 } 297 300
+6 -6
drivers/usb/dwc3/core.c
··· 1359 1359 1360 1360 hw_mode = DWC3_GHWPARAMS0_MODE(dwc->hwparams.hwparams0); 1361 1361 1362 - /* 1363 - * Write Linux Version Code to our GUID register so it's easy to figure 1364 - * out which kernel version a bug was found. 1365 - */ 1366 - dwc3_writel(dwc, DWC3_GUID, LINUX_VERSION_CODE); 1367 - 1368 1362 ret = dwc3_phy_setup(dwc); 1369 1363 if (ret) 1370 1364 return ret; ··· 1391 1397 ret = dwc3_core_soft_reset(dwc); 1392 1398 if (ret) 1393 1399 goto err_exit_phy; 1400 + 1401 + /* 1402 + * Write Linux Version Code to our GUID register so it's easy to figure 1403 + * out which kernel version a bug was found. 1404 + */ 1405 + dwc3_writel(dwc, DWC3_GUID, LINUX_VERSION_CODE); 1394 1406 1395 1407 dwc3_core_setup_global_control(dwc); 1396 1408 dwc3_core_num_eps(dwc);
-4
drivers/usb/gadget/udc/omap_udc.c
··· 733 733 if (status == 0) { 734 734 omap_writew(reg, UDC_TXDMA_CFG); 735 735 /* EMIFF or SDRC */ 736 - omap_set_dma_src_burst_mode(ep->lch, 737 - OMAP_DMA_DATA_BURST_4); 738 736 omap_set_dma_src_data_pack(ep->lch, 1); 739 737 /* TIPB */ 740 738 omap_set_dma_dest_params(ep->lch, ··· 754 756 UDC_DATA_DMA, 755 757 0, 0); 756 758 /* EMIFF or SDRC */ 757 - omap_set_dma_dest_burst_mode(ep->lch, 758 - OMAP_DMA_DATA_BURST_4); 759 759 omap_set_dma_dest_data_pack(ep->lch, 1); 760 760 } 761 761 }
+4
drivers/usb/serial/option.c
··· 1513 1513 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1231, 0xff), /* Telit LE910Cx (RNDIS) */ 1514 1514 .driver_info = NCTRL(2) | RSVD(3) }, 1515 1515 { USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x1250, 0xff, 0x00, 0x00) }, /* Telit LE910Cx (rmnet) */ 1516 + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1251, 0xff) }, /* Telit LE910Cx (RNDIS) */ 1516 1517 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1252, 0xff) }, /* Telit LE910Cx (MBIM) */ 1518 + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1253, 0xff) }, /* Telit LE910Cx (ECM) */ 1519 + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1254, 0xff) }, /* Telit LE910Cx */ 1520 + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1255, 0xff) }, /* Telit LE910Cx */ 1517 1521 { USB_DEVICE(TELIT_VENDOR_ID, 0x1260), 1518 1522 .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, 1519 1523 { USB_DEVICE(TELIT_VENDOR_ID, 0x1261),
+18 -9
drivers/usb/typec/tcpm/tcpm.c
··· 732 732 (tcpm_cc_is_source((port)->cc2) && \ 733 733 !tcpm_cc_is_source((port)->cc1))) 734 734 735 + #define tcpm_port_is_debug_source(port) \ 736 + (tcpm_cc_is_source((port)->cc1) && tcpm_cc_is_source((port)->cc2)) 737 + 738 + #define tcpm_port_is_debug_sink(port) \ 739 + (tcpm_cc_is_sink((port)->cc1) && tcpm_cc_is_sink((port)->cc2)) 740 + 735 741 #define tcpm_port_is_debug(port) \ 736 - ((tcpm_cc_is_source((port)->cc1) && tcpm_cc_is_source((port)->cc2)) || \ 737 - (tcpm_cc_is_sink((port)->cc1) && tcpm_cc_is_sink((port)->cc2))) 742 + (tcpm_port_is_debug_source(port) || tcpm_port_is_debug_sink(port)) 738 743 739 744 #define tcpm_port_is_audio(port) \ 740 745 (tcpm_cc_is_audio((port)->cc1) && tcpm_cc_is_audio((port)->cc2)) ··· 5181 5176 tcpm_set_state(port, SNK_UNATTACHED, PD_T_DRP_SNK); 5182 5177 break; 5183 5178 case SRC_ATTACH_WAIT: 5184 - if (tcpm_port_is_debug(port)) 5179 + if (tcpm_port_is_debug_source(port)) 5185 5180 tcpm_set_state(port, DEBUG_ACC_ATTACHED, 5186 5181 port->timings.cc_debounce_time); 5187 5182 else if (tcpm_port_is_audio(port)) ··· 5439 5434 tcpm_set_state(port, SRC_UNATTACHED, PD_T_DRP_SRC); 5440 5435 break; 5441 5436 case SNK_ATTACH_WAIT: 5442 - if (tcpm_port_is_debug(port)) 5437 + if (tcpm_port_is_debug_sink(port)) 5443 5438 tcpm_set_state(port, DEBUG_ACC_ATTACHED, 5444 5439 PD_T_CC_DEBOUNCE); 5445 5440 else if (tcpm_port_is_audio(port)) ··· 5459 5454 if (tcpm_port_is_disconnected(port)) 5460 5455 tcpm_set_state(port, SNK_UNATTACHED, 5461 5456 PD_T_PD_DEBOUNCE); 5462 - else if (tcpm_port_is_debug(port)) 5457 + else if (tcpm_port_is_debug_sink(port)) 5463 5458 tcpm_set_state(port, DEBUG_ACC_ATTACHED, 5464 5459 PD_T_CC_DEBOUNCE); 5465 5460 else if (tcpm_port_is_audio(port)) ··· 5940 5935 /* remove existing capabilities */ 5941 5936 tcpm_partner_source_caps_reset(port); 5942 5937 tcpm_pd_send_control(port, PD_CTRL_ACCEPT, TCPC_TX_SOP); 5938 + port->vdm_sm_running = false; 5939 + port->explicit_contract = false; 5943 5940 tcpm_ams_finish(port); 5944 5941 if (port->pwr_role == TYPEC_SOURCE) { 5945 5942 port->upcoming_state = SRC_SEND_CAPABILITIES; ··· 6367 6360 6368 6361 switch (port->state) { 6369 6362 case TOGGLING: 6370 - if (tcpm_port_is_debug(port) || tcpm_port_is_audio(port) || 6363 + if (tcpm_port_is_debug_source(port) || tcpm_port_is_audio(port) || 6371 6364 tcpm_port_is_source(port)) 6372 6365 tcpm_set_state(port, SRC_ATTACH_WAIT, 0); 6373 - else if (tcpm_port_is_sink(port)) 6366 + else if (tcpm_port_is_debug_sink(port) || tcpm_port_is_sink(port)) 6374 6367 tcpm_set_state(port, SNK_ATTACH_WAIT, 0); 6375 6368 break; 6376 6369 case CHECK_CONTAMINANT: ··· 6378 6371 break; 6379 6372 case SRC_UNATTACHED: 6380 6373 case ACC_UNATTACHED: 6381 - if (tcpm_port_is_debug(port) || tcpm_port_is_audio(port) || 6374 + if (tcpm_port_is_debug_source(port) || tcpm_port_is_audio(port) || 6382 6375 tcpm_port_is_source(port)) 6383 6376 tcpm_set_state(port, SRC_ATTACH_WAIT, 0); 6377 + else if (tcpm_port_is_debug_sink(port)) 6378 + tcpm_set_state(port, SNK_ATTACH_WAIT, 0); 6384 6379 break; 6385 6380 case SRC_ATTACH_WAIT: 6386 6381 if (tcpm_port_is_disconnected(port) || ··· 6404 6395 } 6405 6396 break; 6406 6397 case SNK_UNATTACHED: 6407 - if (tcpm_port_is_debug(port) || tcpm_port_is_audio(port) || 6398 + if (tcpm_port_is_debug_sink(port) || tcpm_port_is_audio(port) || 6408 6399 tcpm_port_is_sink(port)) 6409 6400 tcpm_set_state(port, SNK_ATTACH_WAIT, 0); 6410 6401 break;