selftests-net-ipsec-fix-null-pointer-dereference-in-.patch
input-allocate-keycode-for-phone-linking.patch
x86-mm-don-t-disable-pcid-when-invlpg-has-been-fixed-by-microcode.patch
-usb-chipidea-ci_hdrc_imx-use-dev_err_probe.patch
-usb-chipidea-ci_hdrc_imx-convert-to-platform-remove-.patch
-usb-chipidea-ci_hdrc_imx-decrement-device-s-refcount.patch
net-usb-rtl8150-use-new-tasklet-api.patch
net-usb-rtl8150-enable-basic-endpoint-checking.patch
usb-xhci-add-timeout-argument-in-address_device-usb-.patch
+++ /dev/null
-From 4b3ce9cc891061fbfae4fcc5e64d15b1ea5a9eb6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 18 May 2023 01:01:07 +0200
-Subject: usb: chipidea/ci_hdrc_imx: Convert to platform remove callback
- returning void
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-
-[ Upstream commit ad593ed671feb49e93a77653886c042f68b6cdfd ]
-
-The .remove() callback for a platform driver returns an int which makes
-many driver authors wrongly assume it's possible to do error handling by
-returning an error code. However the value returned is ignored (apart from
-emitting a warning) and this typically results in resource leaks. To improve
-here there is a quest to make the remove callback return void. In the first
-step of this quest all drivers are converted to .remove_new() which already
-returns void. Eventually after all drivers are converted, .remove_new() is
-renamed to .remove().
-
-Trivially convert this driver from always returning zero in the remove
-callback to the void returning variant.
-
-Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-Link: https://lore.kernel.org/r/20230517230239.187727-6-u.kleine-koenig@pengutronix.de
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Stable-dep-of: 74adad500346 ("usb: chipidea: ci_hdrc_imx: decrement device's refcount in .remove() and in the error path of .probe()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/usb/chipidea/ci_hdrc_imx.c | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
-index abe162cd729e9..573795f8738e1 100644
---- a/drivers/usb/chipidea/ci_hdrc_imx.c
-+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
-@@ -510,7 +510,7 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
- return ret;
- }
-
--static int ci_hdrc_imx_remove(struct platform_device *pdev)
-+static void ci_hdrc_imx_remove(struct platform_device *pdev)
- {
- struct ci_hdrc_imx_data *data = platform_get_drvdata(pdev);
-
-@@ -530,8 +530,6 @@ static int ci_hdrc_imx_remove(struct platform_device *pdev)
- if (data->hsic_pad_regulator)
- regulator_disable(data->hsic_pad_regulator);
- }
--
-- return 0;
- }
-
- static void ci_hdrc_imx_shutdown(struct platform_device *pdev)
-@@ -677,7 +675,7 @@ static const struct dev_pm_ops ci_hdrc_imx_pm_ops = {
- };
- static struct platform_driver ci_hdrc_imx_driver = {
- .probe = ci_hdrc_imx_probe,
-- .remove = ci_hdrc_imx_remove,
-+ .remove_new = ci_hdrc_imx_remove,
- .shutdown = ci_hdrc_imx_shutdown,
- .driver = {
- .name = "imx_usb",
---
-2.39.5
-
+++ /dev/null
-From f3f8f9785381cff6992aa2f999476d0ba391d4a2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 16 Dec 2024 10:55:39 +0900
-Subject: usb: chipidea: ci_hdrc_imx: decrement device's refcount in .remove()
- and in the error path of .probe()
-
-From: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
-
-[ Upstream commit 74adad500346fb07d69af2c79acbff4adb061134 ]
-
-Current implementation of ci_hdrc_imx_driver does not decrement the
-refcount of the device obtained in usbmisc_get_init_data(). Add a
-put_device() call in .remove() and in .probe() before returning an
-error.
-
-This bug was found by an experimental static analysis tool that I am
-developing.
-
-Cc: stable <stable@kernel.org>
-Fixes: f40017e0f332 ("chipidea: usbmisc_imx: Add USB support for VF610 SoCs")
-Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
-Acked-by: Peter Chen <peter.chen@kernel.org>
-Link: https://lore.kernel.org/r/20241216015539.352579-1-joe@pf.is.s.u-tokyo.ac.jp
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/usb/chipidea/ci_hdrc_imx.c | 25 +++++++++++++++++--------
- 1 file changed, 17 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
-index 573795f8738e1..ed0c3ea2dfa54 100644
---- a/drivers/usb/chipidea/ci_hdrc_imx.c
-+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
-@@ -360,25 +360,29 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
- data->pinctrl = devm_pinctrl_get(dev);
- if (PTR_ERR(data->pinctrl) == -ENODEV)
- data->pinctrl = NULL;
-- else if (IS_ERR(data->pinctrl))
-- return dev_err_probe(dev, PTR_ERR(data->pinctrl),
-+ else if (IS_ERR(data->pinctrl)) {
-+ ret = dev_err_probe(dev, PTR_ERR(data->pinctrl),
- "pinctrl get failed\n");
-+ goto err_put;
-+ }
-
- data->hsic_pad_regulator =
- devm_regulator_get_optional(dev, "hsic");
- if (PTR_ERR(data->hsic_pad_regulator) == -ENODEV) {
- /* no pad regualator is needed */
- data->hsic_pad_regulator = NULL;
-- } else if (IS_ERR(data->hsic_pad_regulator))
-- return dev_err_probe(dev, PTR_ERR(data->hsic_pad_regulator),
-+ } else if (IS_ERR(data->hsic_pad_regulator)) {
-+ ret = dev_err_probe(dev, PTR_ERR(data->hsic_pad_regulator),
- "Get HSIC pad regulator error\n");
-+ goto err_put;
-+ }
-
- if (data->hsic_pad_regulator) {
- ret = regulator_enable(data->hsic_pad_regulator);
- if (ret) {
- dev_err(dev,
- "Failed to enable HSIC pad regulator\n");
-- return ret;
-+ goto err_put;
- }
- }
- }
-@@ -392,13 +396,14 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
- dev_err(dev,
- "pinctrl_hsic_idle lookup failed, err=%ld\n",
- PTR_ERR(pinctrl_hsic_idle));
-- return PTR_ERR(pinctrl_hsic_idle);
-+ ret = PTR_ERR(pinctrl_hsic_idle);
-+ goto err_put;
- }
-
- ret = pinctrl_select_state(data->pinctrl, pinctrl_hsic_idle);
- if (ret) {
- dev_err(dev, "hsic_idle select failed, err=%d\n", ret);
-- return ret;
-+ goto err_put;
- }
-
- data->pinctrl_hsic_active = pinctrl_lookup_state(data->pinctrl,
-@@ -407,7 +412,8 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
- dev_err(dev,
- "pinctrl_hsic_active lookup failed, err=%ld\n",
- PTR_ERR(data->pinctrl_hsic_active));
-- return PTR_ERR(data->pinctrl_hsic_active);
-+ ret = PTR_ERR(data->pinctrl_hsic_active);
-+ goto err_put;
- }
- }
-
-@@ -507,6 +513,8 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
- if (pdata.flags & CI_HDRC_PMQOS)
- cpu_latency_qos_remove_request(&data->pm_qos_req);
- data->ci_pdev = NULL;
-+err_put:
-+ put_device(data->usbmisc_data->dev);
- return ret;
- }
-
-@@ -530,6 +538,7 @@ static void ci_hdrc_imx_remove(struct platform_device *pdev)
- if (data->hsic_pad_regulator)
- regulator_disable(data->hsic_pad_regulator);
- }
-+ put_device(data->usbmisc_data->dev);
- }
-
- static void ci_hdrc_imx_shutdown(struct platform_device *pdev)
---
-2.39.5
-
+++ /dev/null
-From 0d43ba10abce67b5b9debf14e8ac22a7b1ce7af3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 14 Jun 2022 14:05:22 +0200
-Subject: usb: chipidea: ci_hdrc_imx: use dev_err_probe()
-
-From: Alexander Stein <alexander.stein@ew.tq-group.com>
-
-[ Upstream commit 18171cfc3c236a1587dcad9adc27c6e781af4438 ]
-
-Use dev_err_probe() to simplify handling errors in ci_hdrc_imx_probe()
-
-Acked-by: Peter Chen <peter.chen@kernel.org>
-Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
-Link: https://lore.kernel.org/r/20220614120522.1469957-1-alexander.stein@ew.tq-group.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Stable-dep-of: 74adad500346 ("usb: chipidea: ci_hdrc_imx: decrement device's refcount in .remove() and in the error path of .probe()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/usb/chipidea/ci_hdrc_imx.c | 23 +++++++----------------
- 1 file changed, 7 insertions(+), 16 deletions(-)
-
-diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
-index a54c3cff6c28e..abe162cd729e9 100644
---- a/drivers/usb/chipidea/ci_hdrc_imx.c
-+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
-@@ -360,25 +360,18 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
- data->pinctrl = devm_pinctrl_get(dev);
- if (PTR_ERR(data->pinctrl) == -ENODEV)
- data->pinctrl = NULL;
-- else if (IS_ERR(data->pinctrl)) {
-- if (PTR_ERR(data->pinctrl) != -EPROBE_DEFER)
-- dev_err(dev, "pinctrl get failed, err=%ld\n",
-- PTR_ERR(data->pinctrl));
-- return PTR_ERR(data->pinctrl);
-- }
-+ else if (IS_ERR(data->pinctrl))
-+ return dev_err_probe(dev, PTR_ERR(data->pinctrl),
-+ "pinctrl get failed\n");
-
- data->hsic_pad_regulator =
- devm_regulator_get_optional(dev, "hsic");
- if (PTR_ERR(data->hsic_pad_regulator) == -ENODEV) {
- /* no pad regualator is needed */
- data->hsic_pad_regulator = NULL;
-- } else if (IS_ERR(data->hsic_pad_regulator)) {
-- if (PTR_ERR(data->hsic_pad_regulator) != -EPROBE_DEFER)
-- dev_err(dev,
-- "Get HSIC pad regulator error: %ld\n",
-- PTR_ERR(data->hsic_pad_regulator));
-- return PTR_ERR(data->hsic_pad_regulator);
-- }
-+ } else if (IS_ERR(data->hsic_pad_regulator))
-+ return dev_err_probe(dev, PTR_ERR(data->hsic_pad_regulator),
-+ "Get HSIC pad regulator error\n");
-
- if (data->hsic_pad_regulator) {
- ret = regulator_enable(data->hsic_pad_regulator);
-@@ -470,9 +463,7 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
- &pdata);
- if (IS_ERR(data->ci_pdev)) {
- ret = PTR_ERR(data->ci_pdev);
-- if (ret != -EPROBE_DEFER)
-- dev_err(dev, "ci_hdrc_add_device failed, err=%d\n",
-- ret);
-+ dev_err_probe(dev, ret, "ci_hdrc_add_device failed\n");
- goto err_clk;
- }
-
---
-2.39.5
-