From 18cadfb0ffdafac40986655da7d8ea3024a576d3 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Mon, 5 Sep 2022 11:10:09 -0400 Subject: [PATCH] Drop usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch Signed-off-by: Sasha Levin --- queue-5.10/series | 1 - ...-qcom-fix-peripheral-and-otg-suspend.patch | 78 ------------------- queue-5.15/series | 1 - ...-qcom-fix-peripheral-and-otg-suspend.patch | 78 ------------------- queue-5.19/series | 1 - ...-qcom-fix-peripheral-and-otg-suspend.patch | 78 ------------------- 6 files changed, 237 deletions(-) delete mode 100644 queue-5.10/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch delete mode 100644 queue-5.15/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch delete mode 100644 queue-5.19/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch diff --git a/queue-5.10/series b/queue-5.10/series index 11a0e743389..c4e993c0b43 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -5,7 +5,6 @@ drm-msm-dsi-fix-number-of-regulators-for-sdm660.patch platform-x86-pmc_atom-fix-slp_typx-bitfield-mask.patch iio-adc-mcp3911-make-use-of-the-sign-bit.patch usb-dwc3-qcom-add-helper-functions-to-enable-disable.patch -usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch bpf-cgroup-fix-kernel-bug-in-purge_effective_progs.patch ieee802154-adf7242-defer-destroy_workqueue-call.patch alsa-hda-intel-nhlt-remove-use-of-__func__-in-dev_db.patch diff --git a/queue-5.10/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch b/queue-5.10/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch deleted file mode 100644 index 41f2e846db7..00000000000 --- a/queue-5.10/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 945d90c923bf7d66ca297b7f46804cb642606aaf Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 4 Aug 2022 17:09:58 +0200 -Subject: usb: dwc3: qcom: fix peripheral and OTG suspend - -From: Johan Hovold - -[ Upstream commit c5f14abeb52b0177b940fd734133d383da3521d8 ] - -A recent commit implementing wakeup support in host mode instead broke -suspend for peripheral and OTG mode. - -The hack that was added in the suspend path to determine the speed of -any device connected to the USB2 bus not only accesses internal driver -data for a child device, but also dereferences a NULL pointer or -accesses freed data when the controller is not acting as host. - -There's no quick fix to the layering violation, but since reverting -would leave us with broken suspend in host mode with wakeup triggering -immediately, let's keep the hack for now. - -Fix the immediate issues by only checking the host bus speed and -enabling wakeup interrupts when acting as host. - -Fixes: 6895ea55c385 ("usb: dwc3: qcom: Configure wakeup interrupts during suspend") -Reported-by: kernel test robot -Signed-off-by: Johan Hovold -Link: https://lore.kernel.org/r/20220804151001.23612-7-johan+linaro@kernel.org -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - drivers/usb/dwc3/dwc3-qcom.c | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - -diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c -index 456ade31ef795..c77cfcf3bca96 100644 ---- a/drivers/usb/dwc3/dwc3-qcom.c -+++ b/drivers/usb/dwc3/dwc3-qcom.c -@@ -309,8 +309,13 @@ static bool dwc3_qcom_is_host(struct dwc3_qcom *qcom) - static enum usb_device_speed dwc3_qcom_read_usb2_speed(struct dwc3_qcom *qcom) - { - struct dwc3 *dwc = platform_get_drvdata(qcom->dwc3); -- struct usb_hcd *hcd = platform_get_drvdata(dwc->xhci); - struct usb_device *udev; -+ struct usb_hcd *hcd; -+ -+ /* -+ * FIXME: Fix this layering violation. -+ */ -+ hcd = platform_get_drvdata(dwc->xhci); - - /* - * It is possible to query the speed of all children of -@@ -413,7 +418,11 @@ static int dwc3_qcom_suspend(struct dwc3_qcom *qcom, bool wakeup) - if (ret) - dev_warn(qcom->dev, "failed to disable interconnect: %d\n", ret); - -- if (wakeup) { -+ /* -+ * The role is stable during suspend as role switching is done from a -+ * freezable workqueue. -+ */ -+ if (dwc3_qcom_is_host(qcom) && wakeup) { - qcom->usb2_speed = dwc3_qcom_read_usb2_speed(qcom); - dwc3_qcom_enable_interrupts(qcom); - } -@@ -431,7 +440,7 @@ static int dwc3_qcom_resume(struct dwc3_qcom *qcom, bool wakeup) - if (!qcom->is_suspended) - return 0; - -- if (wakeup) -+ if (dwc3_qcom_is_host(qcom) && wakeup) - dwc3_qcom_disable_interrupts(qcom); - - for (i = 0; i < qcom->num_clocks; i++) { --- -2.35.1 - diff --git a/queue-5.15/series b/queue-5.15/series index 78458597f96..e3f847fa2e5 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -7,7 +7,6 @@ iio-adc-mcp3911-make-use-of-the-sign-bit.patch skmsg-fix-wrong-last-sg-check-in-sk_msg_recvmsg.patch bpf-restrict-bpf_sys_bpf-to-cap_perfmon.patch usb-dwc3-qcom-add-helper-functions-to-enable-disable.patch -usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch bpf-cgroup-fix-kernel-bug-in-purge_effective_progs.patch ieee802154-adf7242-defer-destroy_workqueue-call.patch drm-i915-backlight-extract-backlight-code-to-a-separ.patch diff --git a/queue-5.15/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch b/queue-5.15/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch deleted file mode 100644 index d79068c1e91..00000000000 --- a/queue-5.15/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 68eb295c5451893d7e7d2ab7d2e4aaf7dc11a135 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 4 Aug 2022 17:09:58 +0200 -Subject: usb: dwc3: qcom: fix peripheral and OTG suspend - -From: Johan Hovold - -[ Upstream commit c5f14abeb52b0177b940fd734133d383da3521d8 ] - -A recent commit implementing wakeup support in host mode instead broke -suspend for peripheral and OTG mode. - -The hack that was added in the suspend path to determine the speed of -any device connected to the USB2 bus not only accesses internal driver -data for a child device, but also dereferences a NULL pointer or -accesses freed data when the controller is not acting as host. - -There's no quick fix to the layering violation, but since reverting -would leave us with broken suspend in host mode with wakeup triggering -immediately, let's keep the hack for now. - -Fix the immediate issues by only checking the host bus speed and -enabling wakeup interrupts when acting as host. - -Fixes: 6895ea55c385 ("usb: dwc3: qcom: Configure wakeup interrupts during suspend") -Reported-by: kernel test robot -Signed-off-by: Johan Hovold -Link: https://lore.kernel.org/r/20220804151001.23612-7-johan+linaro@kernel.org -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - drivers/usb/dwc3/dwc3-qcom.c | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - -diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c -index ccbdf7ae906ea..057e7c64bfa9b 100644 ---- a/drivers/usb/dwc3/dwc3-qcom.c -+++ b/drivers/usb/dwc3/dwc3-qcom.c -@@ -309,8 +309,13 @@ static bool dwc3_qcom_is_host(struct dwc3_qcom *qcom) - static enum usb_device_speed dwc3_qcom_read_usb2_speed(struct dwc3_qcom *qcom) - { - struct dwc3 *dwc = platform_get_drvdata(qcom->dwc3); -- struct usb_hcd *hcd = platform_get_drvdata(dwc->xhci); - struct usb_device *udev; -+ struct usb_hcd *hcd; -+ -+ /* -+ * FIXME: Fix this layering violation. -+ */ -+ hcd = platform_get_drvdata(dwc->xhci); - - /* - * It is possible to query the speed of all children of -@@ -413,7 +418,11 @@ static int dwc3_qcom_suspend(struct dwc3_qcom *qcom, bool wakeup) - if (ret) - dev_warn(qcom->dev, "failed to disable interconnect: %d\n", ret); - -- if (wakeup) { -+ /* -+ * The role is stable during suspend as role switching is done from a -+ * freezable workqueue. -+ */ -+ if (dwc3_qcom_is_host(qcom) && wakeup) { - qcom->usb2_speed = dwc3_qcom_read_usb2_speed(qcom); - dwc3_qcom_enable_interrupts(qcom); - } -@@ -431,7 +440,7 @@ static int dwc3_qcom_resume(struct dwc3_qcom *qcom, bool wakeup) - if (!qcom->is_suspended) - return 0; - -- if (wakeup) -+ if (dwc3_qcom_is_host(qcom) && wakeup) - dwc3_qcom_disable_interrupts(qcom); - - for (i = 0; i < qcom->num_clocks; i++) { --- -2.35.1 - diff --git a/queue-5.19/series b/queue-5.19/series index a98e622dfc4..c87d0f9e2d5 100644 --- a/queue-5.19/series +++ b/queue-5.19/series @@ -13,7 +13,6 @@ iio-adc-mcp3911-make-use-of-the-sign-bit.patch skmsg-fix-wrong-last-sg-check-in-sk_msg_recvmsg.patch bpf-restrict-bpf_sys_bpf-to-cap_perfmon.patch usb-dwc3-qcom-add-helper-functions-to-enable-disable.patch -usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch ip_tunnel-respect-tunnel-key-s-flow_flags-in-ip-tunn.patch bpf-cgroup-fix-kernel-bug-in-purge_effective_progs.patch drm-i915-gvt-fix-comet-lake.patch diff --git a/queue-5.19/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch b/queue-5.19/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch deleted file mode 100644 index f617b62a1eb..00000000000 --- a/queue-5.19/usb-dwc3-qcom-fix-peripheral-and-otg-suspend.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 24c8db3a3963ef8c711e4309701faea9223c090a Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 4 Aug 2022 17:09:58 +0200 -Subject: usb: dwc3: qcom: fix peripheral and OTG suspend - -From: Johan Hovold - -[ Upstream commit c5f14abeb52b0177b940fd734133d383da3521d8 ] - -A recent commit implementing wakeup support in host mode instead broke -suspend for peripheral and OTG mode. - -The hack that was added in the suspend path to determine the speed of -any device connected to the USB2 bus not only accesses internal driver -data for a child device, but also dereferences a NULL pointer or -accesses freed data when the controller is not acting as host. - -There's no quick fix to the layering violation, but since reverting -would leave us with broken suspend in host mode with wakeup triggering -immediately, let's keep the hack for now. - -Fix the immediate issues by only checking the host bus speed and -enabling wakeup interrupts when acting as host. - -Fixes: 6895ea55c385 ("usb: dwc3: qcom: Configure wakeup interrupts during suspend") -Reported-by: kernel test robot -Signed-off-by: Johan Hovold -Link: https://lore.kernel.org/r/20220804151001.23612-7-johan+linaro@kernel.org -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - drivers/usb/dwc3/dwc3-qcom.c | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - -diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c -index 25ae37b1a39df..436264db6afe9 100644 ---- a/drivers/usb/dwc3/dwc3-qcom.c -+++ b/drivers/usb/dwc3/dwc3-qcom.c -@@ -309,8 +309,13 @@ static bool dwc3_qcom_is_host(struct dwc3_qcom *qcom) - static enum usb_device_speed dwc3_qcom_read_usb2_speed(struct dwc3_qcom *qcom) - { - struct dwc3 *dwc = platform_get_drvdata(qcom->dwc3); -- struct usb_hcd *hcd = platform_get_drvdata(dwc->xhci); - struct usb_device *udev; -+ struct usb_hcd *hcd; -+ -+ /* -+ * FIXME: Fix this layering violation. -+ */ -+ hcd = platform_get_drvdata(dwc->xhci); - - /* - * It is possible to query the speed of all children of -@@ -413,7 +418,11 @@ static int dwc3_qcom_suspend(struct dwc3_qcom *qcom, bool wakeup) - if (ret) - dev_warn(qcom->dev, "failed to disable interconnect: %d\n", ret); - -- if (wakeup) { -+ /* -+ * The role is stable during suspend as role switching is done from a -+ * freezable workqueue. -+ */ -+ if (dwc3_qcom_is_host(qcom) && wakeup) { - qcom->usb2_speed = dwc3_qcom_read_usb2_speed(qcom); - dwc3_qcom_enable_interrupts(qcom); - } -@@ -431,7 +440,7 @@ static int dwc3_qcom_resume(struct dwc3_qcom *qcom, bool wakeup) - if (!qcom->is_suspended) - return 0; - -- if (wakeup) -+ if (dwc3_qcom_is_host(qcom) && wakeup) - dwc3_qcom_disable_interrupts(qcom); - - for (i = 0; i < qcom->num_clocks; i++) { --- -2.35.1 - -- 2.47.3