From: Greg Kroah-Hartman Date: Mon, 20 Jun 2022 08:22:14 +0000 (+0200) Subject: 4.19-stable patches X-Git-Tag: v5.4.200~41 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4317eee8c2d3567be9433ba3dc417c186b512653;p=thirdparty%2Fkernel%2Fstable-queue.git 4.19-stable patches added patches: comedi-vmk80xx-fix-expression-for-tx-buffer-size.patch usb-dwc2-fix-memory-leak-in-dwc2_hcd_init.patch usb-gadget-lpc32xx_udc-fix-refcount-leak-in-lpc32xx_udc_probe.patch usb-serial-io_ti-add-agilent-e5805a-support.patch usb-serial-option-add-support-for-cinterion-mv31-with-new-baseline.patch --- diff --git a/queue-4.19/comedi-vmk80xx-fix-expression-for-tx-buffer-size.patch b/queue-4.19/comedi-vmk80xx-fix-expression-for-tx-buffer-size.patch new file mode 100644 index 00000000000..6c962f1ac81 --- /dev/null +++ b/queue-4.19/comedi-vmk80xx-fix-expression-for-tx-buffer-size.patch @@ -0,0 +1,35 @@ +From 242439f7e279d86b3f73b5de724bc67b2f8aeb07 Mon Sep 17 00:00:00 2001 +From: Ian Abbott +Date: Tue, 7 Jun 2022 18:18:19 +0100 +Subject: comedi: vmk80xx: fix expression for tx buffer size + +From: Ian Abbott + +commit 242439f7e279d86b3f73b5de724bc67b2f8aeb07 upstream. + +The expression for setting the size of the allocated bulk TX buffer +(`devpriv->usb_tx_buf`) is calling `usb_endpoint_maxp(devpriv->ep_rx)`, +which is using the wrong endpoint (should be `devpriv->ep_tx`). Fix it. + +Fixes: a23461c47482 ("comedi: vmk80xx: fix transfer-buffer overflow") +Cc: Johan Hovold +Cc: stable@vger.kernel.org # 4.9+ +Reviewed-by: Johan Hovold +Signed-off-by: Ian Abbott +Link: https://lore.kernel.org/r/20220607171819.4121-1-abbotti@mev.co.uk +Signed-off-by: Greg Kroah-Hartman +--- + drivers/staging/comedi/drivers/vmk80xx.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/staging/comedi/drivers/vmk80xx.c ++++ b/drivers/staging/comedi/drivers/vmk80xx.c +@@ -685,7 +685,7 @@ static int vmk80xx_alloc_usb_buffers(str + if (!devpriv->usb_rx_buf) + return -ENOMEM; + +- size = max(usb_endpoint_maxp(devpriv->ep_rx), MIN_BUF_SIZE); ++ size = max(usb_endpoint_maxp(devpriv->ep_tx), MIN_BUF_SIZE); + devpriv->usb_tx_buf = kzalloc(size, GFP_KERNEL); + if (!devpriv->usb_tx_buf) + return -ENOMEM; diff --git a/queue-4.19/series b/queue-4.19/series index 25b64a54ecb..f61cbfc9ce6 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -209,3 +209,8 @@ certs-blacklist_hashes.c-fix-const-confusion-in-cert.patch faddr2line-fix-overlapping-text-section-failures-the.patch irqchip-gic-realview-fix-refcount-leak-in-realview_g.patch irqchip-gic-v3-fix-refcount-leak-in-gic_populate_ppi.patch +comedi-vmk80xx-fix-expression-for-tx-buffer-size.patch +usb-serial-option-add-support-for-cinterion-mv31-with-new-baseline.patch +usb-serial-io_ti-add-agilent-e5805a-support.patch +usb-dwc2-fix-memory-leak-in-dwc2_hcd_init.patch +usb-gadget-lpc32xx_udc-fix-refcount-leak-in-lpc32xx_udc_probe.patch diff --git a/queue-4.19/usb-dwc2-fix-memory-leak-in-dwc2_hcd_init.patch b/queue-4.19/usb-dwc2-fix-memory-leak-in-dwc2_hcd_init.patch new file mode 100644 index 00000000000..d92f94132e7 --- /dev/null +++ b/queue-4.19/usb-dwc2-fix-memory-leak-in-dwc2_hcd_init.patch @@ -0,0 +1,35 @@ +From 3755278f078460b021cd0384562977bf2039a57a Mon Sep 17 00:00:00 2001 +From: Miaoqian Lin +Date: Mon, 30 May 2022 12:54:12 +0400 +Subject: usb: dwc2: Fix memory leak in dwc2_hcd_init + +From: Miaoqian Lin + +commit 3755278f078460b021cd0384562977bf2039a57a upstream. + +usb_create_hcd will alloc memory for hcd, and we should +call usb_put_hcd to free it when platform_get_resource() +fails to prevent memory leak. +goto error2 label instead error1 to fix this. + +Fixes: 856e6e8e0f93 ("usb: dwc2: check return value after calling platform_get_resource()") +Cc: stable +Acked-by: Minas Harutyunyan +Signed-off-by: Miaoqian Lin +Link: https://lore.kernel.org/r/20220530085413.44068-1-linmq006@gmail.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/dwc2/hcd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/dwc2/hcd.c ++++ b/drivers/usb/dwc2/hcd.c +@@ -5236,7 +5236,7 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) { + retval = -EINVAL; +- goto error1; ++ goto error2; + } + hcd->rsrc_start = res->start; + hcd->rsrc_len = resource_size(res); diff --git a/queue-4.19/usb-gadget-lpc32xx_udc-fix-refcount-leak-in-lpc32xx_udc_probe.patch b/queue-4.19/usb-gadget-lpc32xx_udc-fix-refcount-leak-in-lpc32xx_udc_probe.patch new file mode 100644 index 00000000000..64a8361002b --- /dev/null +++ b/queue-4.19/usb-gadget-lpc32xx_udc-fix-refcount-leak-in-lpc32xx_udc_probe.patch @@ -0,0 +1,33 @@ +From 4757c9ade34178b351580133771f510b5ffcf9c8 Mon Sep 17 00:00:00 2001 +From: Miaoqian Lin +Date: Fri, 3 Jun 2022 18:02:44 +0400 +Subject: usb: gadget: lpc32xx_udc: Fix refcount leak in lpc32xx_udc_probe + +From: Miaoqian Lin + +commit 4757c9ade34178b351580133771f510b5ffcf9c8 upstream. + +of_parse_phandle() returns a node pointer with refcount +incremented, we should use of_node_put() on it when not need anymore. +Add missing of_node_put() to avoid refcount leak. +of_node_put() will check NULL pointer. + +Fixes: 24a28e428351 ("USB: gadget driver for LPC32xx") +Cc: stable +Signed-off-by: Miaoqian Lin +Link: https://lore.kernel.org/r/20220603140246.64529-1-linmq006@gmail.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/gadget/udc/lpc32xx_udc.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/gadget/udc/lpc32xx_udc.c ++++ b/drivers/usb/gadget/udc/lpc32xx_udc.c +@@ -3021,6 +3021,7 @@ static int lpc32xx_udc_probe(struct plat + } + + udc->isp1301_i2c_client = isp1301_get_client(isp1301_node); ++ of_node_put(isp1301_node); + if (!udc->isp1301_i2c_client) { + retval = -EPROBE_DEFER; + goto phy_fail; diff --git a/queue-4.19/usb-serial-io_ti-add-agilent-e5805a-support.patch b/queue-4.19/usb-serial-io_ti-add-agilent-e5805a-support.patch new file mode 100644 index 00000000000..541e585f4e5 --- /dev/null +++ b/queue-4.19/usb-serial-io_ti-add-agilent-e5805a-support.patch @@ -0,0 +1,49 @@ +From 908e698f2149c3d6a67d9ae15c75545a3f392559 Mon Sep 17 00:00:00 2001 +From: Robert Eckelmann +Date: Sat, 21 May 2022 23:08:08 +0900 +Subject: USB: serial: io_ti: add Agilent E5805A support + +From: Robert Eckelmann + +commit 908e698f2149c3d6a67d9ae15c75545a3f392559 upstream. + +Add support for Agilent E5805A (rebranded ION Edgeport/4) to io_ti. + +Signed-off-by: Robert Eckelmann +Link: https://lore.kernel.org/r/20220521230808.30931eca@octoberrain +Cc: stable@vger.kernel.org +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/serial/io_ti.c | 2 ++ + drivers/usb/serial/io_usbvend.h | 1 + + 2 files changed, 3 insertions(+) + +--- a/drivers/usb/serial/io_ti.c ++++ b/drivers/usb/serial/io_ti.c +@@ -168,6 +168,7 @@ static const struct usb_device_id edgepo + { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_8S) }, + { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416) }, + { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416B) }, ++ { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_E5805A) }, + { } + }; + +@@ -206,6 +207,7 @@ static const struct usb_device_id id_tab + { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_8S) }, + { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416) }, + { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416B) }, ++ { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_E5805A) }, + { } + }; + +--- a/drivers/usb/serial/io_usbvend.h ++++ b/drivers/usb/serial/io_usbvend.h +@@ -212,6 +212,7 @@ + // + // Definitions for other product IDs + #define ION_DEVICE_ID_MT4X56USB 0x1403 // OEM device ++#define ION_DEVICE_ID_E5805A 0x1A01 // OEM device (rebranded Edgeport/4) + + + #define GENERATION_ID_FROM_USB_PRODUCT_ID(ProductId) \ diff --git a/queue-4.19/usb-serial-option-add-support-for-cinterion-mv31-with-new-baseline.patch b/queue-4.19/usb-serial-option-add-support-for-cinterion-mv31-with-new-baseline.patch new file mode 100644 index 00000000000..5852b0a8922 --- /dev/null +++ b/queue-4.19/usb-serial-option-add-support-for-cinterion-mv31-with-new-baseline.patch @@ -0,0 +1,75 @@ +From 158f7585bfcea4aae0ad4128d032a80fec550df1 Mon Sep 17 00:00:00 2001 +From: Slark Xiao +Date: Wed, 1 Jun 2022 11:47:40 +0800 +Subject: USB: serial: option: add support for Cinterion MV31 with new baseline + +From: Slark Xiao + +commit 158f7585bfcea4aae0ad4128d032a80fec550df1 upstream. + +Adding support for Cinterion device MV31 with Qualcomm +new baseline. Use different PIDs to separate it from +previous base line products. +All interfaces settings keep same as previous. + +Below is test evidence: +T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 6 Spd=480 MxCh= 0 +D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 +P: Vendor=1e2d ProdID=00b8 Rev=04.14 +S: Manufacturer=Cinterion +S: Product=Cinterion PID 0x00B8 USB Mobile Broadband +S: SerialNumber=90418e79 +C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA +I: If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim +I: If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim +I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option +I: If#=0x3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) +I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option +I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option + +T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 7 Spd=480 MxCh= 0 +D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 +P: Vendor=1e2d ProdID=00b9 Rev=04.14 +S: Manufacturer=Cinterion +S: Product=Cinterion PID 0x00B9 USB Mobile Broadband +S: SerialNumber=90418e79 +C: #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA +I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan +I: If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option +I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option +I: If#=0x3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option + +For PID 00b8, interface 3 is GNSS port which don't use serial driver. + +Signed-off-by: Slark Xiao +Link: https://lore.kernel.org/r/20220601034740.5438-1-slark_xiao@163.com +[ johan: rename defines using a "2" infix ] +Cc: stable@vger.kernel.org +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/serial/option.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -432,6 +432,8 @@ static void option_instat_callback(struc + #define CINTERION_PRODUCT_CLS8 0x00b0 + #define CINTERION_PRODUCT_MV31_MBIM 0x00b3 + #define CINTERION_PRODUCT_MV31_RMNET 0x00b7 ++#define CINTERION_PRODUCT_MV31_2_MBIM 0x00b8 ++#define CINTERION_PRODUCT_MV31_2_RMNET 0x00b9 + #define CINTERION_PRODUCT_MV32_WA 0x00f1 + #define CINTERION_PRODUCT_MV32_WB 0x00f2 + +@@ -1979,6 +1981,10 @@ static const struct usb_device_id option + .driver_info = RSVD(3)}, + { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_RMNET, 0xff), + .driver_info = RSVD(0)}, ++ { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_2_MBIM, 0xff), ++ .driver_info = RSVD(3)}, ++ { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_2_RMNET, 0xff), ++ .driver_info = RSVD(0)}, + { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WA, 0xff), + .driver_info = RSVD(3)}, + { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WB, 0xff),