From 556ee74f67099be6baf1a22368f073a88af389cd Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 17 Aug 2016 14:53:07 +0200 Subject: [PATCH] 3.14-stable patches added patches: usb-renesas_usbhs-protect-the-cfifosel-setting-in-usbhsg_ep_enable.patch usb-serial-option-add-support-for-telit-le910-pid-0x1206.patch --- queue-3.14/series | 2 + ...cfifosel-setting-in-usbhsg_ep_enable.patch | 69 +++++++++++++++++++ ...d-support-for-telit-le910-pid-0x1206.patch | 41 +++++++++++ queue-4.4/series | 10 +++ queue-4.7/series | 13 ++++ 5 files changed, 135 insertions(+) create mode 100644 queue-3.14/usb-renesas_usbhs-protect-the-cfifosel-setting-in-usbhsg_ep_enable.patch create mode 100644 queue-3.14/usb-serial-option-add-support-for-telit-le910-pid-0x1206.patch create mode 100644 queue-4.4/series create mode 100644 queue-4.7/series diff --git a/queue-3.14/series b/queue-3.14/series index e8b07d1bbaa..abbd0f41384 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -1 +1,3 @@ tcp_acks_speedup.patch +usb-renesas_usbhs-protect-the-cfifosel-setting-in-usbhsg_ep_enable.patch +usb-serial-option-add-support-for-telit-le910-pid-0x1206.patch diff --git a/queue-3.14/usb-renesas_usbhs-protect-the-cfifosel-setting-in-usbhsg_ep_enable.patch b/queue-3.14/usb-renesas_usbhs-protect-the-cfifosel-setting-in-usbhsg_ep_enable.patch new file mode 100644 index 00000000000..d2f9e42cbb4 --- /dev/null +++ b/queue-3.14/usb-renesas_usbhs-protect-the-cfifosel-setting-in-usbhsg_ep_enable.patch @@ -0,0 +1,69 @@ +From 15e4292a2d21e9997fdb2b8c014cc461b3f268f0 Mon Sep 17 00:00:00 2001 +From: Yoshihiro Shimoda +Date: Wed, 8 Jun 2016 16:32:50 +0900 +Subject: usb: renesas_usbhs: protect the CFIFOSEL setting in usbhsg_ep_enable() + +From: Yoshihiro Shimoda + +commit 15e4292a2d21e9997fdb2b8c014cc461b3f268f0 upstream. + +This patch fixes an issue that the CFIFOSEL register value is possible +to be changed by usbhsg_ep_enable() wrongly. And then, a data transfer +using CFIFO may not work correctly. + +For example: + # modprobe g_multi file=usb-storage.bin + # ifconfig usb0 192.168.1.1 up + (During the USB host is sending file to the mass storage) + # ifconfig usb0 down + +In this case, since the u_ether.c may call usb_ep_enable() in +eth_stop(), if the renesas_usbhs driver is also using CFIFO for +mass storage, the mass storage may not work correctly. + +So, this patch adds usbhs_lock() and usbhs_unlock() calling in +usbhsg_ep_enable() to protect CFIFOSEL register. This is because: + - CFIFOSEL.CURPIPE = 0 is also needed for the pipe configuration + - The CFIFOSEL (fifo->sel) is already protected by usbhs_lock() + +Fixes: 97664a207bc2 ("usb: renesas_usbhs: shrink spin lock area") +Signed-off-by: Yoshihiro Shimoda +Signed-off-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/renesas_usbhs/mod_gadget.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +--- a/drivers/usb/renesas_usbhs/mod_gadget.c ++++ b/drivers/usb/renesas_usbhs/mod_gadget.c +@@ -558,6 +558,9 @@ static int usbhsg_ep_enable(struct usb_e + struct usbhs_priv *priv = usbhsg_gpriv_to_priv(gpriv); + struct usbhs_pipe *pipe; + int ret = -EIO; ++ unsigned long flags; ++ ++ usbhs_lock(priv, flags); + + /* + * if it already have pipe, +@@ -566,7 +569,8 @@ static int usbhsg_ep_enable(struct usb_e + if (uep->pipe) { + usbhs_pipe_clear(uep->pipe); + usbhs_pipe_sequence_data0(uep->pipe); +- return 0; ++ ret = 0; ++ goto usbhsg_ep_enable_end; + } + + pipe = usbhs_pipe_malloc(priv, +@@ -594,6 +598,9 @@ static int usbhsg_ep_enable(struct usb_e + ret = 0; + } + ++usbhsg_ep_enable_end: ++ usbhs_unlock(priv, flags); ++ + return ret; + } + diff --git a/queue-3.14/usb-serial-option-add-support-for-telit-le910-pid-0x1206.patch b/queue-3.14/usb-serial-option-add-support-for-telit-le910-pid-0x1206.patch new file mode 100644 index 00000000000..48b2c46c366 --- /dev/null +++ b/queue-3.14/usb-serial-option-add-support-for-telit-le910-pid-0x1206.patch @@ -0,0 +1,41 @@ +From 3c0415fa08548e3bc63ef741762664497ab187ed Mon Sep 17 00:00:00 2001 +From: Daniele Palmas +Date: Mon, 6 Jun 2016 12:38:17 +0200 +Subject: USB: serial: option: add support for Telit LE910 PID 0x1206 + +From: Daniele Palmas + +commit 3c0415fa08548e3bc63ef741762664497ab187ed upstream. + +This patch adds support for 0x1206 PID of Telit LE910. + +Since the interfaces positions are the same than the ones for +0x1043 PID of Telit LE922, telit_le922_blacklist_usbcfg3 is used. + +Signed-off-by: Daniele Palmas +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -274,6 +274,7 @@ static void option_instat_callback(struc + #define TELIT_PRODUCT_LE922_USBCFG5 0x1045 + #define TELIT_PRODUCT_LE920 0x1200 + #define TELIT_PRODUCT_LE910 0x1201 ++#define TELIT_PRODUCT_LE910_USBCFG4 0x1206 + + /* ZTE PRODUCTS */ + #define ZTE_VENDOR_ID 0x19d2 +@@ -1206,6 +1207,8 @@ static const struct usb_device_id option + .driver_info = (kernel_ulong_t)&telit_le922_blacklist_usbcfg0 }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910), + .driver_info = (kernel_ulong_t)&telit_le910_blacklist }, ++ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910_USBCFG4), ++ .driver_info = (kernel_ulong_t)&telit_le922_blacklist_usbcfg3 }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920), + .driver_info = (kernel_ulong_t)&telit_le920_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ diff --git a/queue-4.4/series b/queue-4.4/series new file mode 100644 index 00000000000..5b3865dee30 --- /dev/null +++ b/queue-4.4/series @@ -0,0 +1,10 @@ +usb-gadget-avoid-exposing-kernel-stack.patch +usb-f_fs-off-by-one-bug-in-_ffs_func_bind.patch +usb-renesas_usbhs-protect-the-cfifosel-setting-in-usbhsg_ep_enable.patch +usb-quirks-add-no-lpm-quirk-for-elan.patch +usb-dwc3-fix-for-the-isoc-transfer-ep_busy-flag.patch +usb-serial-option-add-support-for-telit-le910-pid-0x1206.patch +usb-renesas_usbhs-fix-null-pointer-dereference-in-xfer_work.patch +usb-usbfs-fix-potential-infoleak-in-devio.patch +arm64-kernel-save-and-restore-uao-and-addr_limit-on-exception-entry.patch +arm64-debug-unmask-pstate.d-earlier.patch diff --git a/queue-4.7/series b/queue-4.7/series new file mode 100644 index 00000000000..29d8de0b014 --- /dev/null +++ b/queue-4.7/series @@ -0,0 +1,13 @@ +usb-dwc3-gadget-only-resume-usb2-phy-in-highspeed.patch +usb-gadget-udc-atmel-also-get-regmap-for-at91sam9x5-pmc.patch +usb-gadget-pch_udc-reorder-spin_lock-to-avoid-deadlock.patch +usb-renesas_usbhs-protect-the-cfifosel-setting-in-usbhsg_ep_enable.patch +usb-quirks-add-no-lpm-quirk-for-elan.patch +usb-dwc3-fix-for-the-isoc-transfer-ep_busy-flag.patch +usb-serial-option-add-support-for-telit-le910-pid-0x1206.patch +usb-renesas_usbhs-fix-null-pointer-dereference-in-xfer_work.patch +arm64-kvm-vhe-context-switch-mdscr_el1.patch +arm64-debug-unmask-pstate.d-earlier.patch +arm64-fix-incorrect-per-cpu-usage-for-boot-cpu.patch +arm64-only-select-arm64_module_plts-if-modules-y.patch +arm64-honor-nosmp-kernel-command-line-option.patch -- 2.47.3