generic: backport dwc2 kernel panic fix
authorMathias Kresin <dev@kresin.me>
Thu, 29 Dec 2016 20:47:54 +0000 (21:47 +0100)
committerMathias Kresin <dev@kresin.me>
Mon, 2 Jan 2017 18:16:54 +0000 (19:16 +0100)
In case the soft reset in dwc2_core_reset() timeouts, the
hsotg->core_params are freed albeit it is owned by the core. This
results into a kernel panic as shown in FS#351.

Signed-off-by: Mathias Kresin <dev@kresin.me>
target/linux/generic/patches-4.4/098-usb-dwc2-Remove-unnecessary-kfree.patch [new file with mode: 0644]

diff --git a/target/linux/generic/patches-4.4/098-usb-dwc2-Remove-unnecessary-kfree.patch b/target/linux/generic/patches-4.4/098-usb-dwc2-Remove-unnecessary-kfree.patch
new file mode 100644 (file)
index 0000000..3a27fea
--- /dev/null
@@ -0,0 +1,24 @@
+From cd4b1e34655d46950c065d9284b596cd8d7b28cd Mon Sep 17 00:00:00 2001
+From: John Youn <johnyoun@synopsys.com>
+Date: Thu, 3 Nov 2016 17:55:45 -0700
+Subject: [PATCH] usb: dwc2: Remove unnecessary kfree
+
+This shouldn't be freed by the HCD as it is owned by the core and
+allocated with devm_kzalloc.
+
+Signed-off-by: John Youn <johnyoun@synopsys.com>
+Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
+---
+ drivers/usb/dwc2/hcd.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/usb/dwc2/hcd.c
++++ b/drivers/usb/dwc2/hcd.c
+@@ -3160,7 +3160,6 @@ error3:
+ error2:
+       usb_put_hcd(hcd);
+ error1:
+-      kfree(hsotg->core_params);
+ #ifdef CONFIG_USB_DWC2_TRACK_MISSED_SOFS
+       kfree(hsotg->last_frame_num_array);