From 082c4c73fe44ce7b5874f7802e4401e8ae542125 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 24 Oct 2022 12:04:06 +0200 Subject: [PATCH] drop drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch Was incorrectly backported --- ...move-and-.shutdown-hw-shutdown-consi.patch | 163 ------------------ queue-4.14/series | 1 - ...move-and-.shutdown-hw-shutdown-consi.patch | 163 ------------------ queue-4.19/series | 1 - ...move-and-.shutdown-hw-shutdown-consi.patch | 163 ------------------ queue-5.10/series | 1 - ...move-and-.shutdown-hw-shutdown-consi.patch | 163 ------------------ queue-5.15/series | 1 - ...move-and-.shutdown-hw-shutdown-consi.patch | 163 ------------------ queue-5.4/series | 2 - 10 files changed, 821 deletions(-) delete mode 100644 queue-4.14/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch delete mode 100644 queue-4.19/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch delete mode 100644 queue-5.10/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch delete mode 100644 queue-5.15/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch delete mode 100644 queue-5.4/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch diff --git a/queue-4.14/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch b/queue-4.14/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch deleted file mode 100644 index 694e7ef6832..00000000000 --- a/queue-4.14/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch +++ /dev/null @@ -1,163 +0,0 @@ -From b13ab42099dbf1672eb71a8c072950f1ffa0afaa Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 16 Aug 2022 15:46:12 +0200 -Subject: drm/msm: Make .remove and .shutdown HW shutdown consistent - -From: Javier Martinez Canillas - -[ Upstream commit 0a58d2ae572adaec8d046f8d35b40c2c32ac7468 ] - -Drivers' .remove and .shutdown callbacks are executed on different code -paths. The former is called when a device is removed from the bus, while -the latter is called at system shutdown time to quiesce the device. - -This means that some overlap exists between the two, because both have to -take care of properly shutting down the hardware. But currently the logic -used in these two callbacks isn't consistent in msm drivers, which could -lead to kernel panic. - -For example, on .remove the component is deleted and its .unbind callback -leads to the hardware being shutdown but only if the DRM device has been -marked as registered. - -That check doesn't exist in the .shutdown logic and this can lead to the -driver calling drm_atomic_helper_shutdown() for a DRM device that hasn't -been properly initialized. - -A situation like this can happen if drivers for expected sub-devices fail -to probe, since the .bind callback will never be executed. If that is the -case, drm_atomic_helper_shutdown() will attempt to take mutexes that are -only initialized if drm_mode_config_init() is called during a device bind. - -This bug was attempted to be fixed in commit 623f279c7781 ("drm/msm: fix -shutdown hook in case GPU components failed to bind"), but unfortunately -it still happens in some cases as the one mentioned above, i.e: - - systemd-shutdown[1]: Powering off. - kvm: exiting hardware virtualization - platform wifi-firmware.0: Removing from iommu group 12 - platform video-firmware.0: Removing from iommu group 10 - ------------[ cut here ]------------ - WARNING: CPU: 6 PID: 1 at drivers/gpu/drm/drm_modeset_lock.c:317 drm_modeset_lock_all_ctx+0x3c4/0x3d0 - ... - Hardware name: Google CoachZ (rev3+) (DT) - pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) - pc : drm_modeset_lock_all_ctx+0x3c4/0x3d0 - lr : drm_modeset_lock_all_ctx+0x48/0x3d0 - sp : ffff80000805bb80 - x29: ffff80000805bb80 x28: ffff327c00128000 x27: 0000000000000000 - x26: 0000000000000000 x25: 0000000000000001 x24: ffffc95d820ec030 - x23: ffff327c00bbd090 x22: ffffc95d8215eca0 x21: ffff327c039c5800 - x20: ffff327c039c5988 x19: ffff80000805bbe8 x18: 0000000000000034 - x17: 000000040044ffff x16: ffffc95d80cac920 x15: 0000000000000000 - x14: 0000000000000315 x13: 0000000000000315 x12: 0000000000000000 - x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000 - x8 : ffff80000805bc28 x7 : 0000000000000000 x6 : 0000000000000000 - x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 - x2 : ffff327c00128000 x1 : 0000000000000000 x0 : ffff327c039c59b0 - Call trace: - drm_modeset_lock_all_ctx+0x3c4/0x3d0 - drm_atomic_helper_shutdown+0x70/0x134 - msm_drv_shutdown+0x30/0x40 - platform_shutdown+0x28/0x40 - device_shutdown+0x148/0x350 - kernel_power_off+0x38/0x80 - __do_sys_reboot+0x288/0x2c0 - __arm64_sys_reboot+0x28/0x34 - invoke_syscall+0x48/0x114 - el0_svc_common.constprop.0+0x44/0xec - do_el0_svc+0x2c/0xc0 - el0_svc+0x2c/0x84 - el0t_64_sync_handler+0x11c/0x150 - el0t_64_sync+0x18c/0x190 - ---[ end trace 0000000000000000 ]--- - Unable to handle kernel NULL pointer dereference at virtual address 0000000000000018 - Mem abort info: - ESR = 0x0000000096000004 - EC = 0x25: DABT (current EL), IL = 32 bits - SET = 0, FnV = 0 - EA = 0, S1PTW = 0 - FSC = 0x04: level 0 translation fault - Data abort info: - ISV = 0, ISS = 0x00000004 - CM = 0, WnR = 0 - user pgtable: 4k pages, 48-bit VAs, pgdp=000000010eab1000 - [0000000000000018] pgd=0000000000000000, p4d=0000000000000000 - Internal error: Oops: 96000004 [#1] PREEMPT SMP - ... - Hardware name: Google CoachZ (rev3+) (DT) - pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) - pc : ww_mutex_lock+0x28/0x32c - lr : drm_modeset_lock_all_ctx+0x1b0/0x3d0 - sp : ffff80000805bb50 - x29: ffff80000805bb50 x28: ffff327c00128000 x27: 0000000000000000 - x26: 0000000000000000 x25: 0000000000000001 x24: 0000000000000018 - x23: ffff80000805bc10 x22: ffff327c039c5ad8 x21: ffff327c039c5800 - x20: ffff80000805bbe8 x19: 0000000000000018 x18: 0000000000000034 - x17: 000000040044ffff x16: ffffc95d80cac920 x15: 0000000000000000 - x14: 0000000000000315 x13: 0000000000000315 x12: 0000000000000000 - x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000 - x8 : ffff80000805bc28 x7 : 0000000000000000 x6 : 0000000000000000 - x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 - x2 : ffff327c00128000 x1 : 0000000000000000 x0 : 0000000000000018 - Call trace: - ww_mutex_lock+0x28/0x32c - drm_modeset_lock_all_ctx+0x1b0/0x3d0 - drm_atomic_helper_shutdown+0x70/0x134 - msm_drv_shutdown+0x30/0x40 - platform_shutdown+0x28/0x40 - device_shutdown+0x148/0x350 - kernel_power_off+0x38/0x80 - __do_sys_reboot+0x288/0x2c0 - __arm64_sys_reboot+0x28/0x34 - invoke_syscall+0x48/0x114 - el0_svc_common.constprop.0+0x44/0xec - do_el0_svc+0x2c/0xc0 - el0_svc+0x2c/0x84 - el0t_64_sync_handler+0x11c/0x150 - el0t_64_sync+0x18c/0x190 - Code: aa0103f4 d503201f d2800001 aa0103e3 (c8e37c02) - ---[ end trace 0000000000000000 ]--- - Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b - Kernel Offset: 0x495d77c00000 from 0xffff800008000000 - PHYS_OFFSET: 0xffffcd8500000000 - CPU features: 0x800,00c2a015,19801c82 - Memory Limit: none - ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]--- - -Fixes: 9d5cbf5fe46e ("drm/msm: add shutdown support for display platform_driver") -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Abhinav Kumar -Link: https://patchwork.freedesktop.org/patch/msgid/20220816134612.916527-1-javierm@redhat.com -Signed-off-by: Sasha Levin ---- - drivers/gpu/drm/msm/msm_drv.c | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c -index 7951f57f9202..7f98a14d7c09 100644 ---- a/drivers/gpu/drm/msm/msm_drv.c -+++ b/drivers/gpu/drm/msm/msm_drv.c -@@ -1139,10 +1139,15 @@ static void msm_pdev_shutdown(struct platform_device *pdev) - struct drm_device *drm = platform_get_drvdata(pdev); - struct msm_drm_private *priv = drm ? drm->dev_private : NULL; - -- if (!priv || !priv->kms) -- return; -- -- drm_atomic_helper_shutdown(drm); -+ /* -+ * Shutdown the hw if we're far enough along where things might be on. -+ * If we run this too early, we'll end up panicking in any variety of -+ * places. Since we don't register the drm device until late in -+ * msm_drm_init, drm_dev->registered is used as an indicator that the -+ * shutdown will be successful. -+ */ -+ if (drm && drm->registered) -+ drm_atomic_helper_shutdown(drm); - } - - static const struct of_device_id dt_match[] = { --- -2.35.1 - diff --git a/queue-4.14/series b/queue-4.14/series index 67cd7f7d7c1..85ddef6d07e 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -95,7 +95,6 @@ tcp-fix-tcp_cwnd_validate-to-not-forget-is_cwnd_limi.patch net-rds-don-t-hold-sock-lock-when-cancelling-work-fr.patch bnx2x-fix-potential-memory-leak-in-bnx2x_tpa_stop.patch drm-mipi-dsi-detach-devices-when-removing-the-host.patch -drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch platform-x86-msi-laptop-fix-old-ec-check-for-backlig.patch platform-x86-msi-laptop-fix-resource-cleanup.patch drm-bridge-megachips-fix-a-null-pointer-dereference-.patch diff --git a/queue-4.19/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch b/queue-4.19/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch deleted file mode 100644 index eeb24d1fe56..00000000000 --- a/queue-4.19/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 4b3a5d808134d1724359660048441f6b36979fed Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 16 Aug 2022 15:46:12 +0200 -Subject: drm/msm: Make .remove and .shutdown HW shutdown consistent - -From: Javier Martinez Canillas - -[ Upstream commit 0a58d2ae572adaec8d046f8d35b40c2c32ac7468 ] - -Drivers' .remove and .shutdown callbacks are executed on different code -paths. The former is called when a device is removed from the bus, while -the latter is called at system shutdown time to quiesce the device. - -This means that some overlap exists between the two, because both have to -take care of properly shutting down the hardware. But currently the logic -used in these two callbacks isn't consistent in msm drivers, which could -lead to kernel panic. - -For example, on .remove the component is deleted and its .unbind callback -leads to the hardware being shutdown but only if the DRM device has been -marked as registered. - -That check doesn't exist in the .shutdown logic and this can lead to the -driver calling drm_atomic_helper_shutdown() for a DRM device that hasn't -been properly initialized. - -A situation like this can happen if drivers for expected sub-devices fail -to probe, since the .bind callback will never be executed. If that is the -case, drm_atomic_helper_shutdown() will attempt to take mutexes that are -only initialized if drm_mode_config_init() is called during a device bind. - -This bug was attempted to be fixed in commit 623f279c7781 ("drm/msm: fix -shutdown hook in case GPU components failed to bind"), but unfortunately -it still happens in some cases as the one mentioned above, i.e: - - systemd-shutdown[1]: Powering off. - kvm: exiting hardware virtualization - platform wifi-firmware.0: Removing from iommu group 12 - platform video-firmware.0: Removing from iommu group 10 - ------------[ cut here ]------------ - WARNING: CPU: 6 PID: 1 at drivers/gpu/drm/drm_modeset_lock.c:317 drm_modeset_lock_all_ctx+0x3c4/0x3d0 - ... - Hardware name: Google CoachZ (rev3+) (DT) - pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) - pc : drm_modeset_lock_all_ctx+0x3c4/0x3d0 - lr : drm_modeset_lock_all_ctx+0x48/0x3d0 - sp : ffff80000805bb80 - x29: ffff80000805bb80 x28: ffff327c00128000 x27: 0000000000000000 - x26: 0000000000000000 x25: 0000000000000001 x24: ffffc95d820ec030 - x23: ffff327c00bbd090 x22: ffffc95d8215eca0 x21: ffff327c039c5800 - x20: ffff327c039c5988 x19: ffff80000805bbe8 x18: 0000000000000034 - x17: 000000040044ffff x16: ffffc95d80cac920 x15: 0000000000000000 - x14: 0000000000000315 x13: 0000000000000315 x12: 0000000000000000 - x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000 - x8 : ffff80000805bc28 x7 : 0000000000000000 x6 : 0000000000000000 - x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 - x2 : ffff327c00128000 x1 : 0000000000000000 x0 : ffff327c039c59b0 - Call trace: - drm_modeset_lock_all_ctx+0x3c4/0x3d0 - drm_atomic_helper_shutdown+0x70/0x134 - msm_drv_shutdown+0x30/0x40 - platform_shutdown+0x28/0x40 - device_shutdown+0x148/0x350 - kernel_power_off+0x38/0x80 - __do_sys_reboot+0x288/0x2c0 - __arm64_sys_reboot+0x28/0x34 - invoke_syscall+0x48/0x114 - el0_svc_common.constprop.0+0x44/0xec - do_el0_svc+0x2c/0xc0 - el0_svc+0x2c/0x84 - el0t_64_sync_handler+0x11c/0x150 - el0t_64_sync+0x18c/0x190 - ---[ end trace 0000000000000000 ]--- - Unable to handle kernel NULL pointer dereference at virtual address 0000000000000018 - Mem abort info: - ESR = 0x0000000096000004 - EC = 0x25: DABT (current EL), IL = 32 bits - SET = 0, FnV = 0 - EA = 0, S1PTW = 0 - FSC = 0x04: level 0 translation fault - Data abort info: - ISV = 0, ISS = 0x00000004 - CM = 0, WnR = 0 - user pgtable: 4k pages, 48-bit VAs, pgdp=000000010eab1000 - [0000000000000018] pgd=0000000000000000, p4d=0000000000000000 - Internal error: Oops: 96000004 [#1] PREEMPT SMP - ... - Hardware name: Google CoachZ (rev3+) (DT) - pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) - pc : ww_mutex_lock+0x28/0x32c - lr : drm_modeset_lock_all_ctx+0x1b0/0x3d0 - sp : ffff80000805bb50 - x29: ffff80000805bb50 x28: ffff327c00128000 x27: 0000000000000000 - x26: 0000000000000000 x25: 0000000000000001 x24: 0000000000000018 - x23: ffff80000805bc10 x22: ffff327c039c5ad8 x21: ffff327c039c5800 - x20: ffff80000805bbe8 x19: 0000000000000018 x18: 0000000000000034 - x17: 000000040044ffff x16: ffffc95d80cac920 x15: 0000000000000000 - x14: 0000000000000315 x13: 0000000000000315 x12: 0000000000000000 - x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000 - x8 : ffff80000805bc28 x7 : 0000000000000000 x6 : 0000000000000000 - x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 - x2 : ffff327c00128000 x1 : 0000000000000000 x0 : 0000000000000018 - Call trace: - ww_mutex_lock+0x28/0x32c - drm_modeset_lock_all_ctx+0x1b0/0x3d0 - drm_atomic_helper_shutdown+0x70/0x134 - msm_drv_shutdown+0x30/0x40 - platform_shutdown+0x28/0x40 - device_shutdown+0x148/0x350 - kernel_power_off+0x38/0x80 - __do_sys_reboot+0x288/0x2c0 - __arm64_sys_reboot+0x28/0x34 - invoke_syscall+0x48/0x114 - el0_svc_common.constprop.0+0x44/0xec - do_el0_svc+0x2c/0xc0 - el0_svc+0x2c/0x84 - el0t_64_sync_handler+0x11c/0x150 - el0t_64_sync+0x18c/0x190 - Code: aa0103f4 d503201f d2800001 aa0103e3 (c8e37c02) - ---[ end trace 0000000000000000 ]--- - Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b - Kernel Offset: 0x495d77c00000 from 0xffff800008000000 - PHYS_OFFSET: 0xffffcd8500000000 - CPU features: 0x800,00c2a015,19801c82 - Memory Limit: none - ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]--- - -Fixes: 9d5cbf5fe46e ("drm/msm: add shutdown support for display platform_driver") -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Abhinav Kumar -Link: https://patchwork.freedesktop.org/patch/msgid/20220816134612.916527-1-javierm@redhat.com -Signed-off-by: Sasha Levin ---- - drivers/gpu/drm/msm/msm_drv.c | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c -index 11bad11101b9..f9024e21dc6a 100644 ---- a/drivers/gpu/drm/msm/msm_drv.c -+++ b/drivers/gpu/drm/msm/msm_drv.c -@@ -1365,10 +1365,15 @@ static void msm_pdev_shutdown(struct platform_device *pdev) - struct drm_device *drm = platform_get_drvdata(pdev); - struct msm_drm_private *priv = drm ? drm->dev_private : NULL; - -- if (!priv || !priv->kms) -- return; -- -- drm_atomic_helper_shutdown(drm); -+ /* -+ * Shutdown the hw if we're far enough along where things might be on. -+ * If we run this too early, we'll end up panicking in any variety of -+ * places. Since we don't register the drm device until late in -+ * msm_drm_init, drm_dev->registered is used as an indicator that the -+ * shutdown will be successful. -+ */ -+ if (drm && drm->registered) -+ drm_atomic_helper_shutdown(drm); - } - - static const struct of_device_id dt_match[] = { --- -2.35.1 - diff --git a/queue-4.19/series b/queue-4.19/series index 5994cee3dde..0fd06e76730 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -93,7 +93,6 @@ once-add-do_once_slow-for-sleepable-contexts.patch net-mvpp2-fix-mvpp2-debugfs-leak.patch drm-bridge-adv7511-fix-cec-power-down-control-regist.patch drm-mipi-dsi-detach-devices-when-removing-the-host.patch -drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch platform-chrome-fix-double-free-in-chromeos_laptop_p.patch platform-x86-msi-laptop-fix-old-ec-check-for-backlig.patch platform-x86-msi-laptop-fix-resource-cleanup.patch diff --git a/queue-5.10/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch b/queue-5.10/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch deleted file mode 100644 index c80e7b8c28a..00000000000 --- a/queue-5.10/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 1cb7935a0000a3b3b264dd747aac9d8c3c0ae8f6 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 16 Aug 2022 15:46:12 +0200 -Subject: drm/msm: Make .remove and .shutdown HW shutdown consistent - -From: Javier Martinez Canillas - -[ Upstream commit 0a58d2ae572adaec8d046f8d35b40c2c32ac7468 ] - -Drivers' .remove and .shutdown callbacks are executed on different code -paths. The former is called when a device is removed from the bus, while -the latter is called at system shutdown time to quiesce the device. - -This means that some overlap exists between the two, because both have to -take care of properly shutting down the hardware. But currently the logic -used in these two callbacks isn't consistent in msm drivers, which could -lead to kernel panic. - -For example, on .remove the component is deleted and its .unbind callback -leads to the hardware being shutdown but only if the DRM device has been -marked as registered. - -That check doesn't exist in the .shutdown logic and this can lead to the -driver calling drm_atomic_helper_shutdown() for a DRM device that hasn't -been properly initialized. - -A situation like this can happen if drivers for expected sub-devices fail -to probe, since the .bind callback will never be executed. If that is the -case, drm_atomic_helper_shutdown() will attempt to take mutexes that are -only initialized if drm_mode_config_init() is called during a device bind. - -This bug was attempted to be fixed in commit 623f279c7781 ("drm/msm: fix -shutdown hook in case GPU components failed to bind"), but unfortunately -it still happens in some cases as the one mentioned above, i.e: - - systemd-shutdown[1]: Powering off. - kvm: exiting hardware virtualization - platform wifi-firmware.0: Removing from iommu group 12 - platform video-firmware.0: Removing from iommu group 10 - ------------[ cut here ]------------ - WARNING: CPU: 6 PID: 1 at drivers/gpu/drm/drm_modeset_lock.c:317 drm_modeset_lock_all_ctx+0x3c4/0x3d0 - ... - Hardware name: Google CoachZ (rev3+) (DT) - pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) - pc : drm_modeset_lock_all_ctx+0x3c4/0x3d0 - lr : drm_modeset_lock_all_ctx+0x48/0x3d0 - sp : ffff80000805bb80 - x29: ffff80000805bb80 x28: ffff327c00128000 x27: 0000000000000000 - x26: 0000000000000000 x25: 0000000000000001 x24: ffffc95d820ec030 - x23: ffff327c00bbd090 x22: ffffc95d8215eca0 x21: ffff327c039c5800 - x20: ffff327c039c5988 x19: ffff80000805bbe8 x18: 0000000000000034 - x17: 000000040044ffff x16: ffffc95d80cac920 x15: 0000000000000000 - x14: 0000000000000315 x13: 0000000000000315 x12: 0000000000000000 - x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000 - x8 : ffff80000805bc28 x7 : 0000000000000000 x6 : 0000000000000000 - x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 - x2 : ffff327c00128000 x1 : 0000000000000000 x0 : ffff327c039c59b0 - Call trace: - drm_modeset_lock_all_ctx+0x3c4/0x3d0 - drm_atomic_helper_shutdown+0x70/0x134 - msm_drv_shutdown+0x30/0x40 - platform_shutdown+0x28/0x40 - device_shutdown+0x148/0x350 - kernel_power_off+0x38/0x80 - __do_sys_reboot+0x288/0x2c0 - __arm64_sys_reboot+0x28/0x34 - invoke_syscall+0x48/0x114 - el0_svc_common.constprop.0+0x44/0xec - do_el0_svc+0x2c/0xc0 - el0_svc+0x2c/0x84 - el0t_64_sync_handler+0x11c/0x150 - el0t_64_sync+0x18c/0x190 - ---[ end trace 0000000000000000 ]--- - Unable to handle kernel NULL pointer dereference at virtual address 0000000000000018 - Mem abort info: - ESR = 0x0000000096000004 - EC = 0x25: DABT (current EL), IL = 32 bits - SET = 0, FnV = 0 - EA = 0, S1PTW = 0 - FSC = 0x04: level 0 translation fault - Data abort info: - ISV = 0, ISS = 0x00000004 - CM = 0, WnR = 0 - user pgtable: 4k pages, 48-bit VAs, pgdp=000000010eab1000 - [0000000000000018] pgd=0000000000000000, p4d=0000000000000000 - Internal error: Oops: 96000004 [#1] PREEMPT SMP - ... - Hardware name: Google CoachZ (rev3+) (DT) - pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) - pc : ww_mutex_lock+0x28/0x32c - lr : drm_modeset_lock_all_ctx+0x1b0/0x3d0 - sp : ffff80000805bb50 - x29: ffff80000805bb50 x28: ffff327c00128000 x27: 0000000000000000 - x26: 0000000000000000 x25: 0000000000000001 x24: 0000000000000018 - x23: ffff80000805bc10 x22: ffff327c039c5ad8 x21: ffff327c039c5800 - x20: ffff80000805bbe8 x19: 0000000000000018 x18: 0000000000000034 - x17: 000000040044ffff x16: ffffc95d80cac920 x15: 0000000000000000 - x14: 0000000000000315 x13: 0000000000000315 x12: 0000000000000000 - x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000 - x8 : ffff80000805bc28 x7 : 0000000000000000 x6 : 0000000000000000 - x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 - x2 : ffff327c00128000 x1 : 0000000000000000 x0 : 0000000000000018 - Call trace: - ww_mutex_lock+0x28/0x32c - drm_modeset_lock_all_ctx+0x1b0/0x3d0 - drm_atomic_helper_shutdown+0x70/0x134 - msm_drv_shutdown+0x30/0x40 - platform_shutdown+0x28/0x40 - device_shutdown+0x148/0x350 - kernel_power_off+0x38/0x80 - __do_sys_reboot+0x288/0x2c0 - __arm64_sys_reboot+0x28/0x34 - invoke_syscall+0x48/0x114 - el0_svc_common.constprop.0+0x44/0xec - do_el0_svc+0x2c/0xc0 - el0_svc+0x2c/0x84 - el0t_64_sync_handler+0x11c/0x150 - el0t_64_sync+0x18c/0x190 - Code: aa0103f4 d503201f d2800001 aa0103e3 (c8e37c02) - ---[ end trace 0000000000000000 ]--- - Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b - Kernel Offset: 0x495d77c00000 from 0xffff800008000000 - PHYS_OFFSET: 0xffffcd8500000000 - CPU features: 0x800,00c2a015,19801c82 - Memory Limit: none - ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]--- - -Fixes: 9d5cbf5fe46e ("drm/msm: add shutdown support for display platform_driver") -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Abhinav Kumar -Link: https://patchwork.freedesktop.org/patch/msgid/20220816134612.916527-1-javierm@redhat.com -Signed-off-by: Sasha Levin ---- - drivers/gpu/drm/msm/msm_drv.c | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c -index 087efcb1f34c..13d597ed929c 100644 ---- a/drivers/gpu/drm/msm/msm_drv.c -+++ b/drivers/gpu/drm/msm/msm_drv.c -@@ -1334,10 +1334,15 @@ static void msm_pdev_shutdown(struct platform_device *pdev) - struct drm_device *drm = platform_get_drvdata(pdev); - struct msm_drm_private *priv = drm ? drm->dev_private : NULL; - -- if (!priv || !priv->kms) -- return; -- -- drm_atomic_helper_shutdown(drm); -+ /* -+ * Shutdown the hw if we're far enough along where things might be on. -+ * If we run this too early, we'll end up panicking in any variety of -+ * places. Since we don't register the drm device until late in -+ * msm_drm_init, drm_dev->registered is used as an indicator that the -+ * shutdown will be successful. -+ */ -+ if (drm && drm->registered) -+ drm_atomic_helper_shutdown(drm); - } - - static const struct of_device_id dt_match[] = { --- -2.35.1 - diff --git a/queue-5.10/series b/queue-5.10/series index 3b5b80d733b..2fec17b03cc 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -145,7 +145,6 @@ drm-bridge-parade-ps8640-fix-regulator-supply-order.patch net-wwan-t7xx-add-control-dma-interface.patch drm-dp_mst-fix-drm_dp_dpcd_read-return-value-checks.patch drm-pl111-add-of_node_put-when-breaking-out-of-for_e.patch -drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch platform-chrome-fix-double-free-in-chromeos_laptop_p.patch platform-chrome-fix-memory-corruption-in-ioctl.patch asoc-tas2764-allow-mono-streams.patch diff --git a/queue-5.15/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch b/queue-5.15/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch deleted file mode 100644 index 968c5517316..00000000000 --- a/queue-5.15/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 13371be0fcd1a289c1bec4cafdc154dc1270dbc8 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 16 Aug 2022 15:46:12 +0200 -Subject: drm/msm: Make .remove and .shutdown HW shutdown consistent - -From: Javier Martinez Canillas - -[ Upstream commit 0a58d2ae572adaec8d046f8d35b40c2c32ac7468 ] - -Drivers' .remove and .shutdown callbacks are executed on different code -paths. The former is called when a device is removed from the bus, while -the latter is called at system shutdown time to quiesce the device. - -This means that some overlap exists between the two, because both have to -take care of properly shutting down the hardware. But currently the logic -used in these two callbacks isn't consistent in msm drivers, which could -lead to kernel panic. - -For example, on .remove the component is deleted and its .unbind callback -leads to the hardware being shutdown but only if the DRM device has been -marked as registered. - -That check doesn't exist in the .shutdown logic and this can lead to the -driver calling drm_atomic_helper_shutdown() for a DRM device that hasn't -been properly initialized. - -A situation like this can happen if drivers for expected sub-devices fail -to probe, since the .bind callback will never be executed. If that is the -case, drm_atomic_helper_shutdown() will attempt to take mutexes that are -only initialized if drm_mode_config_init() is called during a device bind. - -This bug was attempted to be fixed in commit 623f279c7781 ("drm/msm: fix -shutdown hook in case GPU components failed to bind"), but unfortunately -it still happens in some cases as the one mentioned above, i.e: - - systemd-shutdown[1]: Powering off. - kvm: exiting hardware virtualization - platform wifi-firmware.0: Removing from iommu group 12 - platform video-firmware.0: Removing from iommu group 10 - ------------[ cut here ]------------ - WARNING: CPU: 6 PID: 1 at drivers/gpu/drm/drm_modeset_lock.c:317 drm_modeset_lock_all_ctx+0x3c4/0x3d0 - ... - Hardware name: Google CoachZ (rev3+) (DT) - pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) - pc : drm_modeset_lock_all_ctx+0x3c4/0x3d0 - lr : drm_modeset_lock_all_ctx+0x48/0x3d0 - sp : ffff80000805bb80 - x29: ffff80000805bb80 x28: ffff327c00128000 x27: 0000000000000000 - x26: 0000000000000000 x25: 0000000000000001 x24: ffffc95d820ec030 - x23: ffff327c00bbd090 x22: ffffc95d8215eca0 x21: ffff327c039c5800 - x20: ffff327c039c5988 x19: ffff80000805bbe8 x18: 0000000000000034 - x17: 000000040044ffff x16: ffffc95d80cac920 x15: 0000000000000000 - x14: 0000000000000315 x13: 0000000000000315 x12: 0000000000000000 - x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000 - x8 : ffff80000805bc28 x7 : 0000000000000000 x6 : 0000000000000000 - x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 - x2 : ffff327c00128000 x1 : 0000000000000000 x0 : ffff327c039c59b0 - Call trace: - drm_modeset_lock_all_ctx+0x3c4/0x3d0 - drm_atomic_helper_shutdown+0x70/0x134 - msm_drv_shutdown+0x30/0x40 - platform_shutdown+0x28/0x40 - device_shutdown+0x148/0x350 - kernel_power_off+0x38/0x80 - __do_sys_reboot+0x288/0x2c0 - __arm64_sys_reboot+0x28/0x34 - invoke_syscall+0x48/0x114 - el0_svc_common.constprop.0+0x44/0xec - do_el0_svc+0x2c/0xc0 - el0_svc+0x2c/0x84 - el0t_64_sync_handler+0x11c/0x150 - el0t_64_sync+0x18c/0x190 - ---[ end trace 0000000000000000 ]--- - Unable to handle kernel NULL pointer dereference at virtual address 0000000000000018 - Mem abort info: - ESR = 0x0000000096000004 - EC = 0x25: DABT (current EL), IL = 32 bits - SET = 0, FnV = 0 - EA = 0, S1PTW = 0 - FSC = 0x04: level 0 translation fault - Data abort info: - ISV = 0, ISS = 0x00000004 - CM = 0, WnR = 0 - user pgtable: 4k pages, 48-bit VAs, pgdp=000000010eab1000 - [0000000000000018] pgd=0000000000000000, p4d=0000000000000000 - Internal error: Oops: 96000004 [#1] PREEMPT SMP - ... - Hardware name: Google CoachZ (rev3+) (DT) - pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) - pc : ww_mutex_lock+0x28/0x32c - lr : drm_modeset_lock_all_ctx+0x1b0/0x3d0 - sp : ffff80000805bb50 - x29: ffff80000805bb50 x28: ffff327c00128000 x27: 0000000000000000 - x26: 0000000000000000 x25: 0000000000000001 x24: 0000000000000018 - x23: ffff80000805bc10 x22: ffff327c039c5ad8 x21: ffff327c039c5800 - x20: ffff80000805bbe8 x19: 0000000000000018 x18: 0000000000000034 - x17: 000000040044ffff x16: ffffc95d80cac920 x15: 0000000000000000 - x14: 0000000000000315 x13: 0000000000000315 x12: 0000000000000000 - x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000 - x8 : ffff80000805bc28 x7 : 0000000000000000 x6 : 0000000000000000 - x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 - x2 : ffff327c00128000 x1 : 0000000000000000 x0 : 0000000000000018 - Call trace: - ww_mutex_lock+0x28/0x32c - drm_modeset_lock_all_ctx+0x1b0/0x3d0 - drm_atomic_helper_shutdown+0x70/0x134 - msm_drv_shutdown+0x30/0x40 - platform_shutdown+0x28/0x40 - device_shutdown+0x148/0x350 - kernel_power_off+0x38/0x80 - __do_sys_reboot+0x288/0x2c0 - __arm64_sys_reboot+0x28/0x34 - invoke_syscall+0x48/0x114 - el0_svc_common.constprop.0+0x44/0xec - do_el0_svc+0x2c/0xc0 - el0_svc+0x2c/0x84 - el0t_64_sync_handler+0x11c/0x150 - el0t_64_sync+0x18c/0x190 - Code: aa0103f4 d503201f d2800001 aa0103e3 (c8e37c02) - ---[ end trace 0000000000000000 ]--- - Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b - Kernel Offset: 0x495d77c00000 from 0xffff800008000000 - PHYS_OFFSET: 0xffffcd8500000000 - CPU features: 0x800,00c2a015,19801c82 - Memory Limit: none - ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]--- - -Fixes: 9d5cbf5fe46e ("drm/msm: add shutdown support for display platform_driver") -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Abhinav Kumar -Link: https://patchwork.freedesktop.org/patch/msgid/20220816134612.916527-1-javierm@redhat.com -Signed-off-by: Sasha Levin ---- - drivers/gpu/drm/msm/msm_drv.c | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c -index 916361c30d77..65df12fb9f95 100644 ---- a/drivers/gpu/drm/msm/msm_drv.c -+++ b/drivers/gpu/drm/msm/msm_drv.c -@@ -1417,10 +1417,15 @@ static void msm_pdev_shutdown(struct platform_device *pdev) - struct drm_device *drm = platform_get_drvdata(pdev); - struct msm_drm_private *priv = drm ? drm->dev_private : NULL; - -- if (!priv || !priv->kms) -- return; -- -- drm_atomic_helper_shutdown(drm); -+ /* -+ * Shutdown the hw if we're far enough along where things might be on. -+ * If we run this too early, we'll end up panicking in any variety of -+ * places. Since we don't register the drm device until late in -+ * msm_drm_init, drm_dev->registered is used as an indicator that the -+ * shutdown will be successful. -+ */ -+ if (drm && drm->registered) -+ drm_atomic_helper_shutdown(drm); - } - - static const struct of_device_id dt_match[] = { --- -2.35.1 - diff --git a/queue-5.15/series b/queue-5.15/series index 98c5412f54d..fe2ce691be1 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -218,7 +218,6 @@ net-wwan-t7xx-add-control-dma-interface.patch drm-dp_mst-fix-drm_dp_dpcd_read-return-value-checks.patch drm-pl111-add-of_node_put-when-breaking-out-of-for_e.patch asoc-mt6359-fix-tests-for-platform_get_irq-failure.patch -drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch platform-chrome-fix-double-free-in-chromeos_laptop_p.patch platform-chrome-fix-memory-corruption-in-ioctl.patch asoc-tas2764-allow-mono-streams.patch diff --git a/queue-5.4/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch b/queue-5.4/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch deleted file mode 100644 index 18d91fe0caf..00000000000 --- a/queue-5.4/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 59048ddbc15966c1d2c4570114099c43137bcbce Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 16 Aug 2022 15:46:12 +0200 -Subject: drm/msm: Make .remove and .shutdown HW shutdown consistent - -From: Javier Martinez Canillas - -[ Upstream commit 0a58d2ae572adaec8d046f8d35b40c2c32ac7468 ] - -Drivers' .remove and .shutdown callbacks are executed on different code -paths. The former is called when a device is removed from the bus, while -the latter is called at system shutdown time to quiesce the device. - -This means that some overlap exists between the two, because both have to -take care of properly shutting down the hardware. But currently the logic -used in these two callbacks isn't consistent in msm drivers, which could -lead to kernel panic. - -For example, on .remove the component is deleted and its .unbind callback -leads to the hardware being shutdown but only if the DRM device has been -marked as registered. - -That check doesn't exist in the .shutdown logic and this can lead to the -driver calling drm_atomic_helper_shutdown() for a DRM device that hasn't -been properly initialized. - -A situation like this can happen if drivers for expected sub-devices fail -to probe, since the .bind callback will never be executed. If that is the -case, drm_atomic_helper_shutdown() will attempt to take mutexes that are -only initialized if drm_mode_config_init() is called during a device bind. - -This bug was attempted to be fixed in commit 623f279c7781 ("drm/msm: fix -shutdown hook in case GPU components failed to bind"), but unfortunately -it still happens in some cases as the one mentioned above, i.e: - - systemd-shutdown[1]: Powering off. - kvm: exiting hardware virtualization - platform wifi-firmware.0: Removing from iommu group 12 - platform video-firmware.0: Removing from iommu group 10 - ------------[ cut here ]------------ - WARNING: CPU: 6 PID: 1 at drivers/gpu/drm/drm_modeset_lock.c:317 drm_modeset_lock_all_ctx+0x3c4/0x3d0 - ... - Hardware name: Google CoachZ (rev3+) (DT) - pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) - pc : drm_modeset_lock_all_ctx+0x3c4/0x3d0 - lr : drm_modeset_lock_all_ctx+0x48/0x3d0 - sp : ffff80000805bb80 - x29: ffff80000805bb80 x28: ffff327c00128000 x27: 0000000000000000 - x26: 0000000000000000 x25: 0000000000000001 x24: ffffc95d820ec030 - x23: ffff327c00bbd090 x22: ffffc95d8215eca0 x21: ffff327c039c5800 - x20: ffff327c039c5988 x19: ffff80000805bbe8 x18: 0000000000000034 - x17: 000000040044ffff x16: ffffc95d80cac920 x15: 0000000000000000 - x14: 0000000000000315 x13: 0000000000000315 x12: 0000000000000000 - x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000 - x8 : ffff80000805bc28 x7 : 0000000000000000 x6 : 0000000000000000 - x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 - x2 : ffff327c00128000 x1 : 0000000000000000 x0 : ffff327c039c59b0 - Call trace: - drm_modeset_lock_all_ctx+0x3c4/0x3d0 - drm_atomic_helper_shutdown+0x70/0x134 - msm_drv_shutdown+0x30/0x40 - platform_shutdown+0x28/0x40 - device_shutdown+0x148/0x350 - kernel_power_off+0x38/0x80 - __do_sys_reboot+0x288/0x2c0 - __arm64_sys_reboot+0x28/0x34 - invoke_syscall+0x48/0x114 - el0_svc_common.constprop.0+0x44/0xec - do_el0_svc+0x2c/0xc0 - el0_svc+0x2c/0x84 - el0t_64_sync_handler+0x11c/0x150 - el0t_64_sync+0x18c/0x190 - ---[ end trace 0000000000000000 ]--- - Unable to handle kernel NULL pointer dereference at virtual address 0000000000000018 - Mem abort info: - ESR = 0x0000000096000004 - EC = 0x25: DABT (current EL), IL = 32 bits - SET = 0, FnV = 0 - EA = 0, S1PTW = 0 - FSC = 0x04: level 0 translation fault - Data abort info: - ISV = 0, ISS = 0x00000004 - CM = 0, WnR = 0 - user pgtable: 4k pages, 48-bit VAs, pgdp=000000010eab1000 - [0000000000000018] pgd=0000000000000000, p4d=0000000000000000 - Internal error: Oops: 96000004 [#1] PREEMPT SMP - ... - Hardware name: Google CoachZ (rev3+) (DT) - pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) - pc : ww_mutex_lock+0x28/0x32c - lr : drm_modeset_lock_all_ctx+0x1b0/0x3d0 - sp : ffff80000805bb50 - x29: ffff80000805bb50 x28: ffff327c00128000 x27: 0000000000000000 - x26: 0000000000000000 x25: 0000000000000001 x24: 0000000000000018 - x23: ffff80000805bc10 x22: ffff327c039c5ad8 x21: ffff327c039c5800 - x20: ffff80000805bbe8 x19: 0000000000000018 x18: 0000000000000034 - x17: 000000040044ffff x16: ffffc95d80cac920 x15: 0000000000000000 - x14: 0000000000000315 x13: 0000000000000315 x12: 0000000000000000 - x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000 - x8 : ffff80000805bc28 x7 : 0000000000000000 x6 : 0000000000000000 - x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 - x2 : ffff327c00128000 x1 : 0000000000000000 x0 : 0000000000000018 - Call trace: - ww_mutex_lock+0x28/0x32c - drm_modeset_lock_all_ctx+0x1b0/0x3d0 - drm_atomic_helper_shutdown+0x70/0x134 - msm_drv_shutdown+0x30/0x40 - platform_shutdown+0x28/0x40 - device_shutdown+0x148/0x350 - kernel_power_off+0x38/0x80 - __do_sys_reboot+0x288/0x2c0 - __arm64_sys_reboot+0x28/0x34 - invoke_syscall+0x48/0x114 - el0_svc_common.constprop.0+0x44/0xec - do_el0_svc+0x2c/0xc0 - el0_svc+0x2c/0x84 - el0t_64_sync_handler+0x11c/0x150 - el0t_64_sync+0x18c/0x190 - Code: aa0103f4 d503201f d2800001 aa0103e3 (c8e37c02) - ---[ end trace 0000000000000000 ]--- - Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b - Kernel Offset: 0x495d77c00000 from 0xffff800008000000 - PHYS_OFFSET: 0xffffcd8500000000 - CPU features: 0x800,00c2a015,19801c82 - Memory Limit: none - ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]--- - -Fixes: 9d5cbf5fe46e ("drm/msm: add shutdown support for display platform_driver") -Signed-off-by: Javier Martinez Canillas -Reviewed-by: Abhinav Kumar -Link: https://patchwork.freedesktop.org/patch/msgid/20220816134612.916527-1-javierm@redhat.com -Signed-off-by: Sasha Levin ---- - drivers/gpu/drm/msm/msm_drv.c | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c -index 407b51cf6790..dfbd2a9d52db 100644 ---- a/drivers/gpu/drm/msm/msm_drv.c -+++ b/drivers/gpu/drm/msm/msm_drv.c -@@ -1329,10 +1329,15 @@ static void msm_pdev_shutdown(struct platform_device *pdev) - struct drm_device *drm = platform_get_drvdata(pdev); - struct msm_drm_private *priv = drm ? drm->dev_private : NULL; - -- if (!priv || !priv->kms) -- return; -- -- drm_atomic_helper_shutdown(drm); -+ /* -+ * Shutdown the hw if we're far enough along where things might be on. -+ * If we run this too early, we'll end up panicking in any variety of -+ * places. Since we don't register the drm device until late in -+ * msm_drm_init, drm_dev->registered is used as an indicator that the -+ * shutdown will be successful. -+ */ -+ if (drm && drm->registered) -+ drm_atomic_helper_shutdown(drm); - } - - static const struct of_device_id dt_match[] = { --- -2.35.1 - diff --git a/queue-5.4/series b/queue-5.4/series index fc99aecce1d..84f98d7efe5 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -56,7 +56,6 @@ drm-nouveau-fix-a-use-after-free-in-nouveau_gem_prime_import_sg_table.patch selinux-use-grep-e-instead-of-egrep.patch tracing-disable-interrupt-or-preemption-before-acquiring-arch_spinlock_t.patch userfaultfd-open-userfaultfds-with-o_rdonly.patch -r8152-factor-out-oob-link-list-waits.patch sh-machvec-use-char-for-section-boundaries.patch arm-9247-1-mm-set-readonly-for-mt_memory_ro-with-arm.patch nfsd-fix-a-memory-leak-in-an-error-handling-path.patch @@ -87,7 +86,6 @@ once-add-do_once_slow-for-sleepable-contexts.patch net-mvpp2-fix-mvpp2-debugfs-leak.patch drm-bridge-adv7511-fix-cec-power-down-control-regist.patch drm-mipi-dsi-detach-devices-when-removing-the-host.patch -drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch platform-chrome-fix-double-free-in-chromeos_laptop_p.patch platform-chrome-fix-memory-corruption-in-ioctl.patch platform-x86-msi-laptop-fix-old-ec-check-for-backlig.patch -- 2.47.3