]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Oct 2022 10:04:06 +0000 (12:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Oct 2022 10:04:06 +0000 (12:04 +0200)
Was incorrectly backported

queue-4.14/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch [deleted file]
queue-4.14/series
queue-4.19/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch [deleted file]
queue-4.19/series
queue-5.10/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch [deleted file]
queue-5.10/series
queue-5.15/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch [deleted file]
queue-5.15/series
queue-5.4/drm-msm-make-.remove-and-.shutdown-hw-shutdown-consi.patch [deleted file]
queue-5.4/series

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 (file)
index 694e7ef..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From b13ab42099dbf1672eb71a8c072950f1ffa0afaa Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Aug 2022 15:46:12 +0200
-Subject: drm/msm: Make .remove and .shutdown HW shutdown consistent
-
-From: Javier Martinez Canillas <javierm@redhat.com>
-
-[ 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 <javierm@redhat.com>
-Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20220816134612.916527-1-javierm@redhat.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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
-
index 67cd7f7d7c19ee3b9af1a8d5ca3c45729e71c918..85ddef6d07e14e102d7805171c9929eb563069cb 100644 (file)
@@ -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 (file)
index eeb24d1..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From 4b3a5d808134d1724359660048441f6b36979fed Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Aug 2022 15:46:12 +0200
-Subject: drm/msm: Make .remove and .shutdown HW shutdown consistent
-
-From: Javier Martinez Canillas <javierm@redhat.com>
-
-[ 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 <javierm@redhat.com>
-Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20220816134612.916527-1-javierm@redhat.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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
-
index 5994cee3dde27272194385e3acc76e5686b7333e..0fd06e767301215ae1e83667321c2336c234a6a0 100644 (file)
@@ -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 (file)
index c80e7b8..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From 1cb7935a0000a3b3b264dd747aac9d8c3c0ae8f6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Aug 2022 15:46:12 +0200
-Subject: drm/msm: Make .remove and .shutdown HW shutdown consistent
-
-From: Javier Martinez Canillas <javierm@redhat.com>
-
-[ 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 <javierm@redhat.com>
-Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20220816134612.916527-1-javierm@redhat.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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
-
index 3b5b80d733b56a1dfd95d2587a11b32447815d95..2fec17b03cc94dbb87e2311786f8786c82c7548b 100644 (file)
@@ -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 (file)
index 968c551..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From 13371be0fcd1a289c1bec4cafdc154dc1270dbc8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Aug 2022 15:46:12 +0200
-Subject: drm/msm: Make .remove and .shutdown HW shutdown consistent
-
-From: Javier Martinez Canillas <javierm@redhat.com>
-
-[ 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 <javierm@redhat.com>
-Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20220816134612.916527-1-javierm@redhat.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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
-
index 98c5412f54dcd7eeb959c982e2e01be2f9516c1b..fe2ce691be1362d6d817314a79cb5ca4c958381c 100644 (file)
@@ -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 (file)
index 18d91fe..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From 59048ddbc15966c1d2c4570114099c43137bcbce Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Aug 2022 15:46:12 +0200
-Subject: drm/msm: Make .remove and .shutdown HW shutdown consistent
-
-From: Javier Martinez Canillas <javierm@redhat.com>
-
-[ 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 <javierm@redhat.com>
-Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20220816134612.916527-1-javierm@redhat.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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
-
index fc99aecce1d716798d5aa8a8c46f6f6e755a124b..84f98d7efe51932bafa025d446ae0ad1ad8a925a 100644 (file)
@@ -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