From: Greg Kroah-Hartman Date: Fri, 6 Dec 2024 09:43:48 +0000 (+0100) Subject: 6.6-stable patches X-Git-Tag: v6.6.64~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=620b98135b2f7a1a951c58b05a5bca8c2453b87b;p=thirdparty%2Fkernel%2Fstable-queue.git 6.6-stable patches added patches: arm64-dts-allwinner-pinephone-add-mount-matrix-to-accelerometer.patch arm64-dts-freescale-imx8mm-verdin-fix-sd-regulator-startup-delay.patch arm64-dts-freescale-imx8mp-verdin-fix-sd-regulator-startup-delay.patch arm64-dts-ti-k3-am62-verdin-fix-sd-regulator-startup-delay.patch md-md-bitmap-add-missing-destroy_work_on_stack.patch media-amphion-set-video-drvdata-before-register-video-device.patch media-i2c-dw9768-fix-pm_runtime_set_suspended-with-runtime-pm-enabled.patch media-imx-jpeg-set-video-drvdata-before-register-video-device.patch media-mtk-jpeg-fix-null-ptr-deref-during-unload-module.patch --- diff --git a/queue-6.6/arm64-dts-allwinner-pinephone-add-mount-matrix-to-accelerometer.patch b/queue-6.6/arm64-dts-allwinner-pinephone-add-mount-matrix-to-accelerometer.patch new file mode 100644 index 00000000000..68f1bc285f3 --- /dev/null +++ b/queue-6.6/arm64-dts-allwinner-pinephone-add-mount-matrix-to-accelerometer.patch @@ -0,0 +1,45 @@ +From 2496b2aaacf137250f4ca449f465e2cadaabb0e8 Mon Sep 17 00:00:00 2001 +From: Dragan Simic +Date: Thu, 19 Sep 2024 21:15:26 +0200 +Subject: arm64: dts: allwinner: pinephone: Add mount matrix to accelerometer + +From: Dragan Simic + +commit 2496b2aaacf137250f4ca449f465e2cadaabb0e8 upstream. + +The way InvenSense MPU-6050 accelerometer is mounted on the user-facing side +of the Pine64 PinePhone mainboard, which makes it rotated 90 degrees counter- +clockwise, [1] requires the accelerometer's x- and y-axis to be swapped, and +the direction of the accelerometer's y-axis to be inverted. + +Rectify this by adding a mount-matrix to the accelerometer definition in the +Pine64 PinePhone dtsi file. + +[1] https://files.pine64.org/doc/PinePhone/PinePhone%20mainboard%20bottom%20placement%20v1.1%2020191031.pdf + +Fixes: 91f480d40942 ("arm64: dts: allwinner: Add initial support for Pine64 PinePhone") +Cc: stable@vger.kernel.org +Suggested-by: Ondrej Jirman +Suggested-by: Andrey Skvortsov +Signed-off-by: Dragan Simic +Reviewed-by: Andrey Skvortsov +Link: https://patch.msgid.link/129f0c754d071cca1db5d207d9d4a7bd9831dff7.1726773282.git.dsimic@manjaro.org +[wens@csie.org: Replaced Helped-by with Suggested-by] +Signed-off-by: Chen-Yu Tsai +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +@@ -202,6 +202,9 @@ + interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */ + vdd-supply = <®_dldo1>; + vddio-supply = <®_dldo1>; ++ mount-matrix = "0", "1", "0", ++ "-1", "0", "0", ++ "0", "0", "1"; + }; + }; + diff --git a/queue-6.6/arm64-dts-freescale-imx8mm-verdin-fix-sd-regulator-startup-delay.patch b/queue-6.6/arm64-dts-freescale-imx8mm-verdin-fix-sd-regulator-startup-delay.patch new file mode 100644 index 00000000000..89025bf674b --- /dev/null +++ b/queue-6.6/arm64-dts-freescale-imx8mm-verdin-fix-sd-regulator-startup-delay.patch @@ -0,0 +1,33 @@ +From 0ca7699c376743b633b6419a42888dba386d5351 Mon Sep 17 00:00:00 2001 +From: Francesco Dolcini +Date: Thu, 24 Oct 2024 15:06:50 +0200 +Subject: arm64: dts: freescale: imx8mm-verdin: Fix SD regulator startup delay + +From: Francesco Dolcini + +commit 0ca7699c376743b633b6419a42888dba386d5351 upstream. + +The power switch used to power the SD card interface might have +more than 2ms turn-on time, increase the startup delay to 20ms to +prevent failures. + +Fixes: 6a57f224f734 ("arm64: dts: freescale: add initial support for verdin imx8m mini") +Cc: stable@vger.kernel.org +Signed-off-by: Francesco Dolcini +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi ++++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi +@@ -145,7 +145,7 @@ + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "+V3.3_SD"; +- startup-delay-us = <2000>; ++ startup-delay-us = <20000>; + }; + + reserved-memory { diff --git a/queue-6.6/arm64-dts-freescale-imx8mp-verdin-fix-sd-regulator-startup-delay.patch b/queue-6.6/arm64-dts-freescale-imx8mp-verdin-fix-sd-regulator-startup-delay.patch new file mode 100644 index 00000000000..45f3b9c6146 --- /dev/null +++ b/queue-6.6/arm64-dts-freescale-imx8mp-verdin-fix-sd-regulator-startup-delay.patch @@ -0,0 +1,33 @@ +From 6c5789c9d2c06968532243daa235f6ff809ad71e Mon Sep 17 00:00:00 2001 +From: Francesco Dolcini +Date: Thu, 24 Oct 2024 15:06:51 +0200 +Subject: arm64: dts: freescale: imx8mp-verdin: Fix SD regulator startup delay + +From: Francesco Dolcini + +commit 6c5789c9d2c06968532243daa235f6ff809ad71e upstream. + +The power switch used to power the SD card interface might have +more than 2ms turn-on time, increase the startup delay to 20ms to +prevent failures. + +Fixes: a39ed23bdf6e ("arm64: dts: freescale: add initial support for verdin imx8m plus") +Cc: stable@vger.kernel.org +Signed-off-by: Francesco Dolcini +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi ++++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi +@@ -134,7 +134,7 @@ + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "+V3.3_SD"; +- startup-delay-us = <2000>; ++ startup-delay-us = <20000>; + }; + + reserved-memory { diff --git a/queue-6.6/arm64-dts-ti-k3-am62-verdin-fix-sd-regulator-startup-delay.patch b/queue-6.6/arm64-dts-ti-k3-am62-verdin-fix-sd-regulator-startup-delay.patch new file mode 100644 index 00000000000..2530efc5b21 --- /dev/null +++ b/queue-6.6/arm64-dts-ti-k3-am62-verdin-fix-sd-regulator-startup-delay.patch @@ -0,0 +1,34 @@ +From 2213ca51998fef61d3df4ca156054cdcc37c42b8 Mon Sep 17 00:00:00 2001 +From: Francesco Dolcini +Date: Thu, 24 Oct 2024 15:06:28 +0200 +Subject: arm64: dts: ti: k3-am62-verdin: Fix SD regulator startup delay + +From: Francesco Dolcini + +commit 2213ca51998fef61d3df4ca156054cdcc37c42b8 upstream. + +The power switch used to power the SD card interface might have +more than 2ms turn-on time, increase the startup delay to 20ms to +prevent failures. + +Fixes: 316b80246b16 ("arm64: dts: ti: add verdin am62") +Cc: stable@vger.kernel.org +Signed-off-by: Francesco Dolcini +Link: https://lore.kernel.org/r/20241024130628.49650-1-francesco@dolcini.it +Signed-off-by: Vignesh Raghavendra +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi ++++ b/arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi +@@ -134,7 +134,7 @@ + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "+V3.3_SD"; +- startup-delay-us = <2000>; ++ startup-delay-us = <20000>; + }; + + reg_sdhc1_vqmmc: regulator-sdhci1-vqmmc { diff --git a/queue-6.6/md-md-bitmap-add-missing-destroy_work_on_stack.patch b/queue-6.6/md-md-bitmap-add-missing-destroy_work_on_stack.patch new file mode 100644 index 00000000000..3429b40aa17 --- /dev/null +++ b/queue-6.6/md-md-bitmap-add-missing-destroy_work_on_stack.patch @@ -0,0 +1,33 @@ +From 6012169e8aae9c0eda38bbedcd7a1540a81220ae Mon Sep 17 00:00:00 2001 +From: Yuan Can +Date: Tue, 5 Nov 2024 21:01:05 +0800 +Subject: md/md-bitmap: Add missing destroy_work_on_stack() + +From: Yuan Can + +commit 6012169e8aae9c0eda38bbedcd7a1540a81220ae upstream. + +This commit add missed destroy_work_on_stack() operations for +unplug_work.work in bitmap_unplug_async(). + +Fixes: a022325ab970 ("md/md-bitmap: add a new helper to unplug bitmap asynchrously") +Cc: stable@vger.kernel.org +Signed-off-by: Yuan Can +Reviewed-by: Yu Kuai +Link: https://lore.kernel.org/r/20241105130105.127336-1-yuancan@huawei.com +Signed-off-by: Song Liu +Signed-off-by: Greg Kroah-Hartman +--- + drivers/md/md-bitmap.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/md/md-bitmap.c ++++ b/drivers/md/md-bitmap.c +@@ -1089,6 +1089,7 @@ void md_bitmap_unplug_async(struct bitma + + queue_work(md_bitmap_wq, &unplug_work.work); + wait_for_completion(&done); ++ destroy_work_on_stack(&unplug_work.work); + } + EXPORT_SYMBOL(md_bitmap_unplug_async); + diff --git a/queue-6.6/media-amphion-set-video-drvdata-before-register-video-device.patch b/queue-6.6/media-amphion-set-video-drvdata-before-register-video-device.patch new file mode 100644 index 00000000000..094ee39613a --- /dev/null +++ b/queue-6.6/media-amphion-set-video-drvdata-before-register-video-device.patch @@ -0,0 +1,41 @@ +From 8cbb1a7bd5973b57898b26eb804fe44af440bb63 Mon Sep 17 00:00:00 2001 +From: Ming Qian +Date: Fri, 13 Sep 2024 15:21:45 +0900 +Subject: media: amphion: Set video drvdata before register video device + +From: Ming Qian + +commit 8cbb1a7bd5973b57898b26eb804fe44af440bb63 upstream. + +The video drvdata should be set before the video device is registered, +otherwise video_drvdata() may return NULL in the open() file ops, and led +to oops. + +Fixes: 3cd084519c6f ("media: amphion: add vpu v4l2 m2m support") +Cc: +Signed-off-by: Ming Qian +Reviewed-by: TaoJiang +Signed-off-by: Hans Verkuil +Signed-off-by: Greg Kroah-Hartman +--- + drivers/media/platform/amphion/vpu_v4l2.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/media/platform/amphion/vpu_v4l2.c ++++ b/drivers/media/platform/amphion/vpu_v4l2.c +@@ -825,6 +825,7 @@ int vpu_add_func(struct vpu_dev *vpu, st + vfd->fops = vdec_get_fops(); + vfd->ioctl_ops = vdec_get_ioctl_ops(); + } ++ video_set_drvdata(vfd, vpu); + + ret = video_register_device(vfd, VFL_TYPE_VIDEO, -1); + if (ret) { +@@ -832,7 +833,6 @@ int vpu_add_func(struct vpu_dev *vpu, st + v4l2_m2m_release(func->m2m_dev); + return ret; + } +- video_set_drvdata(vfd, vpu); + func->vfd = vfd; + + ret = v4l2_m2m_register_media_controller(func->m2m_dev, func->vfd, func->function); diff --git a/queue-6.6/media-i2c-dw9768-fix-pm_runtime_set_suspended-with-runtime-pm-enabled.patch b/queue-6.6/media-i2c-dw9768-fix-pm_runtime_set_suspended-with-runtime-pm-enabled.patch new file mode 100644 index 00000000000..8d909799abf --- /dev/null +++ b/queue-6.6/media-i2c-dw9768-fix-pm_runtime_set_suspended-with-runtime-pm-enabled.patch @@ -0,0 +1,76 @@ +From d6594d50761728d09f23238cf9c368bab6260ef3 Mon Sep 17 00:00:00 2001 +From: Jinjie Ruan +Date: Fri, 1 Nov 2024 17:40:48 +0800 +Subject: media: i2c: dw9768: Fix pm_runtime_set_suspended() with runtime pm enabled + +From: Jinjie Ruan + +commit d6594d50761728d09f23238cf9c368bab6260ef3 upstream. + +It is not valid to call pm_runtime_set_suspended() and +pm_runtime_set_active() for devices with runtime PM enabled because it +returns -EAGAIN if it is enabled already and working. So, adjust the +order to fix it. + +Cc: stable@vger.kernel.org +Fixes: 5f9a089b6de3 ("dw9768: Enable low-power probe on ACPI") +Suggested-by: Sakari Ailus +Signed-off-by: Jinjie Ruan +Signed-off-by: Sakari Ailus +Signed-off-by: Hans Verkuil +Signed-off-by: Greg Kroah-Hartman +--- + drivers/media/i2c/dw9768.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/drivers/media/i2c/dw9768.c ++++ b/drivers/media/i2c/dw9768.c +@@ -476,10 +476,9 @@ static int dw9768_probe(struct i2c_clien + * to be powered on in an ACPI system. Similarly for power off in + * remove. + */ +- pm_runtime_enable(dev); + full_power = (is_acpi_node(dev_fwnode(dev)) && + acpi_dev_state_d0(dev)) || +- (is_of_node(dev_fwnode(dev)) && !pm_runtime_enabled(dev)); ++ (is_of_node(dev_fwnode(dev)) && !IS_ENABLED(CONFIG_PM)); + if (full_power) { + ret = dw9768_runtime_resume(dev); + if (ret < 0) { +@@ -489,6 +488,7 @@ static int dw9768_probe(struct i2c_clien + pm_runtime_set_active(dev); + } + ++ pm_runtime_enable(dev); + ret = v4l2_async_register_subdev(&dw9768->sd); + if (ret < 0) { + dev_err(dev, "failed to register V4L2 subdev: %d", ret); +@@ -500,12 +500,12 @@ static int dw9768_probe(struct i2c_clien + return 0; + + err_power_off: ++ pm_runtime_disable(dev); + if (full_power) { + dw9768_runtime_suspend(dev); + pm_runtime_set_suspended(dev); + } + err_clean_entity: +- pm_runtime_disable(dev); + media_entity_cleanup(&dw9768->sd.entity); + err_free_handler: + v4l2_ctrl_handler_free(&dw9768->ctrls); +@@ -522,12 +522,12 @@ static void dw9768_remove(struct i2c_cli + v4l2_async_unregister_subdev(&dw9768->sd); + v4l2_ctrl_handler_free(&dw9768->ctrls); + media_entity_cleanup(&dw9768->sd.entity); ++ pm_runtime_disable(dev); + if ((is_acpi_node(dev_fwnode(dev)) && acpi_dev_state_d0(dev)) || +- (is_of_node(dev_fwnode(dev)) && !pm_runtime_enabled(dev))) { ++ (is_of_node(dev_fwnode(dev)) && !IS_ENABLED(CONFIG_PM))) { + dw9768_runtime_suspend(dev); + pm_runtime_set_suspended(dev); + } +- pm_runtime_disable(dev); + } + + static const struct of_device_id dw9768_of_table[] = { diff --git a/queue-6.6/media-imx-jpeg-set-video-drvdata-before-register-video-device.patch b/queue-6.6/media-imx-jpeg-set-video-drvdata-before-register-video-device.patch new file mode 100644 index 00000000000..298828e5a41 --- /dev/null +++ b/queue-6.6/media-imx-jpeg-set-video-drvdata-before-register-video-device.patch @@ -0,0 +1,41 @@ +From d2b7ecc26bd5406d5ba927be1748aa99c568696c Mon Sep 17 00:00:00 2001 +From: Ming Qian +Date: Fri, 13 Sep 2024 15:21:44 +0900 +Subject: media: imx-jpeg: Set video drvdata before register video device + +From: Ming Qian + +commit d2b7ecc26bd5406d5ba927be1748aa99c568696c upstream. + +The video drvdata should be set before the video device is registered, +otherwise video_drvdata() may return NULL in the open() file ops, and led +to oops. + +Fixes: 2db16c6ed72c ("media: imx-jpeg: Add V4L2 driver for i.MX8 JPEG Encoder/Decoder") +Cc: +Signed-off-by: Ming Qian +Reviewed-by: TaoJiang +Signed-off-by: Hans Verkuil +Signed-off-by: Greg Kroah-Hartman +--- + drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c ++++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +@@ -2837,6 +2837,7 @@ static int mxc_jpeg_probe(struct platfor + jpeg->dec_vdev->vfl_dir = VFL_DIR_M2M; + jpeg->dec_vdev->device_caps = V4L2_CAP_STREAMING | + V4L2_CAP_VIDEO_M2M_MPLANE; ++ video_set_drvdata(jpeg->dec_vdev, jpeg); + if (mode == MXC_JPEG_ENCODE) { + v4l2_disable_ioctl(jpeg->dec_vdev, VIDIOC_DECODER_CMD); + v4l2_disable_ioctl(jpeg->dec_vdev, VIDIOC_TRY_DECODER_CMD); +@@ -2849,7 +2850,6 @@ static int mxc_jpeg_probe(struct platfor + dev_err(dev, "failed to register video device\n"); + goto err_vdev_register; + } +- video_set_drvdata(jpeg->dec_vdev, jpeg); + if (mode == MXC_JPEG_ENCODE) + v4l2_info(&jpeg->v4l2_dev, + "encoder device registered as /dev/video%d (%d,%d)\n", diff --git a/queue-6.6/media-mtk-jpeg-fix-null-ptr-deref-during-unload-module.patch b/queue-6.6/media-mtk-jpeg-fix-null-ptr-deref-during-unload-module.patch new file mode 100644 index 00000000000..3d19a9490c2 --- /dev/null +++ b/queue-6.6/media-mtk-jpeg-fix-null-ptr-deref-during-unload-module.patch @@ -0,0 +1,106 @@ +From 17af2b39daf12870cac61ffc360e62bc35798afb Mon Sep 17 00:00:00 2001 +From: Guoqing Jiang +Date: Thu, 12 Sep 2024 10:48:01 +0800 +Subject: media: mtk-jpeg: Fix null-ptr-deref during unload module + +From: Guoqing Jiang + +commit 17af2b39daf12870cac61ffc360e62bc35798afb upstream. + +The workqueue should be destroyed in mtk_jpeg_core.c since commit +09aea13ecf6f ("media: mtk-jpeg: refactor some variables"), otherwise +the below calltrace can be easily triggered. + +[ 677.862514] Unable to handle kernel paging request at virtual address dfff800000000023 +[ 677.863633] KASAN: null-ptr-deref in range [0x0000000000000118-0x000000000000011f] +... +[ 677.879654] CPU: 6 PID: 1071 Comm: modprobe Tainted: G O 6.8.12-mtk+gfa1a78e5d24b+ #17 +... +[ 677.882838] pc : destroy_workqueue+0x3c/0x770 +[ 677.883413] lr : mtk_jpegdec_destroy_workqueue+0x70/0x88 [mtk_jpeg_dec_hw] +[ 677.884314] sp : ffff80008ad974f0 +[ 677.884744] x29: ffff80008ad974f0 x28: ffff0000d7115580 x27: ffff0000dd691070 +[ 677.885669] x26: ffff0000dd691408 x25: ffff8000844af3e0 x24: ffff80008ad97690 +[ 677.886592] x23: ffff0000e051d400 x22: ffff0000dd691010 x21: dfff800000000000 +[ 677.887515] x20: 0000000000000000 x19: 0000000000000000 x18: ffff800085397ac0 +[ 677.888438] x17: 0000000000000000 x16: ffff8000801b87c8 x15: 1ffff000115b2e10 +[ 677.889361] x14: 00000000f1f1f1f1 x13: 0000000000000000 x12: ffff7000115b2e4d +[ 677.890285] x11: 1ffff000115b2e4c x10: ffff7000115b2e4c x9 : ffff80000aa43e90 +[ 677.891208] x8 : 00008fffeea4d1b4 x7 : ffff80008ad97267 x6 : 0000000000000001 +[ 677.892131] x5 : ffff80008ad97260 x4 : ffff7000115b2e4d x3 : 0000000000000000 +[ 677.893054] x2 : 0000000000000023 x1 : dfff800000000000 x0 : 0000000000000118 +[ 677.893977] Call trace: +[ 677.894297] destroy_workqueue+0x3c/0x770 +[ 677.894826] mtk_jpegdec_destroy_workqueue+0x70/0x88 [mtk_jpeg_dec_hw] +[ 677.895677] devm_action_release+0x50/0x90 +[ 677.896211] release_nodes+0xe8/0x170 +[ 677.896688] devres_release_all+0xf8/0x178 +[ 677.897219] device_unbind_cleanup+0x24/0x170 +[ 677.897785] device_release_driver_internal+0x35c/0x480 +[ 677.898461] device_release_driver+0x20/0x38 +... +[ 677.912665] ---[ end trace 0000000000000000 ]--- + +Fixes: 09aea13ecf6f ("media: mtk-jpeg: refactor some variables") +Cc: +Signed-off-by: Guoqing Jiang +Signed-off-by: Hans Verkuil +Signed-off-by: Greg Kroah-Hartman +--- + drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c | 10 ++++++++++ + drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c | 11 ----------- + 2 files changed, 10 insertions(+), 11 deletions(-) + +--- a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c ++++ b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c +@@ -1294,6 +1294,11 @@ static int mtk_jpeg_single_core_init(str + return 0; + } + ++static void mtk_jpeg_destroy_workqueue(void *data) ++{ ++ destroy_workqueue(data); ++} ++ + static int mtk_jpeg_probe(struct platform_device *pdev) + { + struct mtk_jpeg_dev *jpeg; +@@ -1338,6 +1343,11 @@ static int mtk_jpeg_probe(struct platfor + | WQ_FREEZABLE); + if (!jpeg->workqueue) + return -EINVAL; ++ ret = devm_add_action_or_reset(&pdev->dev, ++ mtk_jpeg_destroy_workqueue, ++ jpeg->workqueue); ++ if (ret) ++ return ret; + } + + ret = v4l2_device_register(&pdev->dev, &jpeg->v4l2_dev); +--- a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c ++++ b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c +@@ -578,11 +578,6 @@ static int mtk_jpegdec_hw_init_irq(struc + return 0; + } + +-static void mtk_jpegdec_destroy_workqueue(void *data) +-{ +- destroy_workqueue(data); +-} +- + static int mtk_jpegdec_hw_probe(struct platform_device *pdev) + { + struct mtk_jpegdec_clk *jpegdec_clk; +@@ -606,12 +601,6 @@ static int mtk_jpegdec_hw_probe(struct p + dev->plat_dev = pdev; + dev->dev = &pdev->dev; + +- ret = devm_add_action_or_reset(&pdev->dev, +- mtk_jpegdec_destroy_workqueue, +- master_dev->workqueue); +- if (ret) +- return ret; +- + spin_lock_init(&dev->hw_lock); + dev->hw_state = MTK_JPEG_HW_IDLE; + diff --git a/queue-6.6/series b/queue-6.6/series index 1204d966f02..ea62eff50e5 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -605,3 +605,12 @@ quota-flush-quota_release_work-upon-quota-writeback.patch btrfs-don-t-loop-for-nowait-writes-when-checking-for.patch btrfs-add-a-sanity-check-for-btrfs-root-in-btrfs_sea.patch btrfs-ref-verify-fix-use-after-free-after-invalid-re.patch +md-md-bitmap-add-missing-destroy_work_on_stack.patch +arm64-dts-allwinner-pinephone-add-mount-matrix-to-accelerometer.patch +arm64-dts-freescale-imx8mm-verdin-fix-sd-regulator-startup-delay.patch +arm64-dts-ti-k3-am62-verdin-fix-sd-regulator-startup-delay.patch +media-amphion-set-video-drvdata-before-register-video-device.patch +media-imx-jpeg-set-video-drvdata-before-register-video-device.patch +media-mtk-jpeg-fix-null-ptr-deref-during-unload-module.patch +media-i2c-dw9768-fix-pm_runtime_set_suspended-with-runtime-pm-enabled.patch +arm64-dts-freescale-imx8mp-verdin-fix-sd-regulator-startup-delay.patch