+++ /dev/null
-From fd7faf5cca8a179c583b5138eb6565e59d24bfb9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 24 Mar 2020 00:06:08 +0800
-Subject: drivers: provide devm_platform_get_and_ioremap_resource()
-
-From: Dejin Zheng <zhengdejin5@gmail.com>
-
-[ Upstream commit 890cc39a879906b63912482dfc41944579df2dc6 ]
-
-Since commit "drivers: provide devm_platform_ioremap_resource()",
-it was wrap platform_get_resource() and devm_ioremap_resource() as
-single helper devm_platform_ioremap_resource(). but now, many drivers
-still used platform_get_resource() and devm_ioremap_resource()
-together in the kernel tree. The reason can not be replaced is they
-still need use the resource variables obtained by platform_get_resource().
-so provide this helper.
-
-Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org>
-Suggested-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
-Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
-Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com>
-Link: https://lore.kernel.org/r/20200323160612.17277-2-zhengdejin5@gmail.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Stable-dep-of: 2d47b79d2bd3 ("i2c: mux: reg: check return value after calling platform_get_resource()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/base/platform.c | 22 ++++++++++++++++++++++
- include/linux/platform_device.h | 3 +++
- 2 files changed, 25 insertions(+)
-
-diff --git a/drivers/base/platform.c b/drivers/base/platform.c
-index ea83c279b8a3..c4e398f3de50 100644
---- a/drivers/base/platform.c
-+++ b/drivers/base/platform.c
-@@ -80,6 +80,28 @@ struct resource *platform_get_resource(struct platform_device *dev,
- }
- EXPORT_SYMBOL_GPL(platform_get_resource);
-
-+/**
-+ * devm_platform_get_and_ioremap_resource - call devm_ioremap_resource() for a
-+ * platform device and get resource
-+ *
-+ * @pdev: platform device to use both for memory resource lookup as well as
-+ * resource management
-+ * @index: resource index
-+ * @res: optional output parameter to store a pointer to the obtained resource.
-+ */
-+void __iomem *
-+devm_platform_get_and_ioremap_resource(struct platform_device *pdev,
-+ unsigned int index, struct resource **res)
-+{
-+ struct resource *r;
-+
-+ r = platform_get_resource(pdev, IORESOURCE_MEM, index);
-+ if (res)
-+ *res = r;
-+ return devm_ioremap_resource(&pdev->dev, r);
-+}
-+EXPORT_SYMBOL_GPL(devm_platform_get_and_ioremap_resource);
-+
- /**
- * devm_platform_ioremap_resource - call devm_ioremap_resource() for a platform
- * device
-diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
-index 9e5c98fcea8c..1de7ea6efdc9 100644
---- a/include/linux/platform_device.h
-+++ b/include/linux/platform_device.h
-@@ -52,6 +52,9 @@ extern void arch_setup_pdev_archdata(struct platform_device *);
- extern struct resource *platform_get_resource(struct platform_device *,
- unsigned int, unsigned int);
- extern void __iomem *
-+devm_platform_get_and_ioremap_resource(struct platform_device *pdev,
-+ unsigned int index, struct resource **res);
-+extern void __iomem *
- devm_platform_ioremap_resource(struct platform_device *pdev,
- unsigned int index);
- extern int platform_get_irq(struct platform_device *, unsigned int);
---
-2.35.1
-
+++ /dev/null
-From 7b1c424a567bad0e21426656127727e0b0b1ba72 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 29 Oct 2022 17:38:25 +0800
-Subject: i2c: mux: reg: check return value after calling
- platform_get_resource()
-
-From: Yang Yingliang <yangyingliang@huawei.com>
-
-[ Upstream commit 2d47b79d2bd39cc6369eccf94a06568d84c906ae ]
-
-It will cause null-ptr-deref in resource_size(), if platform_get_resource()
-returns NULL, move calling resource_size() after devm_ioremap_resource() that
-will check 'res' to avoid null-ptr-deref.
-And use devm_platform_get_and_ioremap_resource() to simplify code.
-
-Fixes: b3fdd32799d8 ("i2c: mux: Add register-based mux i2c-mux-reg")
-Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
-Signed-off-by: Wolfram Sang <wsa@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/i2c/muxes/i2c-mux-reg.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/i2c/muxes/i2c-mux-reg.c b/drivers/i2c/muxes/i2c-mux-reg.c
-index 5653295b01cd..6d5cb40bfc96 100644
---- a/drivers/i2c/muxes/i2c-mux-reg.c
-+++ b/drivers/i2c/muxes/i2c-mux-reg.c
-@@ -191,13 +191,12 @@ static int i2c_mux_reg_probe(struct platform_device *pdev)
- if (!mux->data.reg) {
- dev_info(&pdev->dev,
- "Register not set, using platform resource\n");
-- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-- mux->data.reg_size = resource_size(res);
-- mux->data.reg = devm_ioremap_resource(&pdev->dev, res);
-+ mux->data.reg = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
- if (IS_ERR(mux->data.reg)) {
- ret = PTR_ERR(mux->data.reg);
- goto err_put_parent;
- }
-+ mux->data.reg_size = resource_size(res);
- }
-
- if (mux->data.reg_size != 4 && mux->data.reg_size != 2 &&
---
-2.35.1
-
staging-rtl8192e-fix-potential-use-after-free-in-rtl.patch
vme-fix-error-not-catched-in-fake_init.patch
drivers-provide-devm_platform_ioremap_resource.patch
-drivers-provide-devm_platform_get_and_ioremap_resour.patch
-i2c-mux-reg-check-return-value-after-calling-platfor.patch
i2c-ismt-fix-an-out-of-bounds-bug-in-ismt_access.patch
usb-storage-add-check-for-kcalloc.patch
tracing-hist-fix-issue-of-losting-command-info-in-er.patch
+++ /dev/null
-From 6763bf313a8ad82e11b8784177b510a10df1d844 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 24 Mar 2020 00:06:08 +0800
-Subject: drivers: provide devm_platform_get_and_ioremap_resource()
-
-From: Dejin Zheng <zhengdejin5@gmail.com>
-
-[ Upstream commit 890cc39a879906b63912482dfc41944579df2dc6 ]
-
-Since commit "drivers: provide devm_platform_ioremap_resource()",
-it was wrap platform_get_resource() and devm_ioremap_resource() as
-single helper devm_platform_ioremap_resource(). but now, many drivers
-still used platform_get_resource() and devm_ioremap_resource()
-together in the kernel tree. The reason can not be replaced is they
-still need use the resource variables obtained by platform_get_resource().
-so provide this helper.
-
-Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org>
-Suggested-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
-Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
-Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com>
-Link: https://lore.kernel.org/r/20200323160612.17277-2-zhengdejin5@gmail.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Stable-dep-of: 2d47b79d2bd3 ("i2c: mux: reg: check return value after calling platform_get_resource()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/base/platform.c | 22 ++++++++++++++++++++++
- include/linux/platform_device.h | 3 +++
- 2 files changed, 25 insertions(+)
-
-diff --git a/drivers/base/platform.c b/drivers/base/platform.c
-index 75623b914b8c..05826c12fd29 100644
---- a/drivers/base/platform.c
-+++ b/drivers/base/platform.c
-@@ -61,6 +61,28 @@ struct resource *platform_get_resource(struct platform_device *dev,
- }
- EXPORT_SYMBOL_GPL(platform_get_resource);
-
-+/**
-+ * devm_platform_get_and_ioremap_resource - call devm_ioremap_resource() for a
-+ * platform device and get resource
-+ *
-+ * @pdev: platform device to use both for memory resource lookup as well as
-+ * resource management
-+ * @index: resource index
-+ * @res: optional output parameter to store a pointer to the obtained resource.
-+ */
-+void __iomem *
-+devm_platform_get_and_ioremap_resource(struct platform_device *pdev,
-+ unsigned int index, struct resource **res)
-+{
-+ struct resource *r;
-+
-+ r = platform_get_resource(pdev, IORESOURCE_MEM, index);
-+ if (res)
-+ *res = r;
-+ return devm_ioremap_resource(&pdev->dev, r);
-+}
-+EXPORT_SYMBOL_GPL(devm_platform_get_and_ioremap_resource);
-+
- /**
- * devm_platform_ioremap_resource - call devm_ioremap_resource() for a platform
- * device
-diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
-index 569f446502be..cc4684254d3f 100644
---- a/include/linux/platform_device.h
-+++ b/include/linux/platform_device.h
-@@ -55,6 +55,9 @@ extern struct device *
- platform_find_device_by_driver(struct device *start,
- const struct device_driver *drv);
- extern void __iomem *
-+devm_platform_get_and_ioremap_resource(struct platform_device *pdev,
-+ unsigned int index, struct resource **res);
-+extern void __iomem *
- devm_platform_ioremap_resource(struct platform_device *pdev,
- unsigned int index);
- extern int platform_get_irq(struct platform_device *, unsigned int);
---
-2.35.1
-
+++ /dev/null
-From 6430aef7b949ffc4d4ea5577782b90ad33c63dad Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 29 Oct 2022 17:38:25 +0800
-Subject: i2c: mux: reg: check return value after calling
- platform_get_resource()
-
-From: Yang Yingliang <yangyingliang@huawei.com>
-
-[ Upstream commit 2d47b79d2bd39cc6369eccf94a06568d84c906ae ]
-
-It will cause null-ptr-deref in resource_size(), if platform_get_resource()
-returns NULL, move calling resource_size() after devm_ioremap_resource() that
-will check 'res' to avoid null-ptr-deref.
-And use devm_platform_get_and_ioremap_resource() to simplify code.
-
-Fixes: b3fdd32799d8 ("i2c: mux: Add register-based mux i2c-mux-reg")
-Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
-Signed-off-by: Wolfram Sang <wsa@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/i2c/muxes/i2c-mux-reg.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/i2c/muxes/i2c-mux-reg.c b/drivers/i2c/muxes/i2c-mux-reg.c
-index b59a62f8d7a6..ac7971c776fa 100644
---- a/drivers/i2c/muxes/i2c-mux-reg.c
-+++ b/drivers/i2c/muxes/i2c-mux-reg.c
-@@ -187,13 +187,12 @@ static int i2c_mux_reg_probe(struct platform_device *pdev)
- if (!mux->data.reg) {
- dev_info(&pdev->dev,
- "Register not set, using platform resource\n");
-- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-- mux->data.reg_size = resource_size(res);
-- mux->data.reg = devm_ioremap_resource(&pdev->dev, res);
-+ mux->data.reg = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
- if (IS_ERR(mux->data.reg)) {
- ret = PTR_ERR(mux->data.reg);
- goto err_put_parent;
- }
-+ mux->data.reg_size = resource_size(res);
- }
-
- if (mux->data.reg_size != 4 && mux->data.reg_size != 2 &&
---
-2.35.1
-
staging-rtl8192u-fix-use-after-free-in-ieee80211_rx.patch
staging-rtl8192e-fix-potential-use-after-free-in-rtl.patch
vme-fix-error-not-catched-in-fake_init.patch
-drivers-provide-devm_platform_get_and_ioremap_resour.patch
-i2c-mux-reg-check-return-value-after-calling-platfor.patch
i2c-ismt-fix-an-out-of-bounds-bug-in-ismt_access.patch
usb-storage-add-check-for-kcalloc.patch
tracing-hist-fix-issue-of-losting-command-info-in-er.patch