@Paolo: I'm just wondering if

a) There's some testing improvement we can do to catch this kind of thing 
pre-release
and
b) why that drm driver is getting this fix via stable updates but the driver 
itself would require "backport(ing) of the new msm dri driver (and all the 
relevant dependencies)".. Shouldn't that driver already be in our bionic tree 
if it's getting this fix via stable updates? (Although I just realized as I'm 
writing this that bionic gets updates from 4.16 too so maybe that's why.  Still 
easier to just ask :)  )

** Changed in: linux-snapdragon (Ubuntu Bionic)
       Status: In Progress => Fix Committed

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux-snapdragon in Ubuntu.
https://bugs.launchpad.net/bugs/1841911

Title:
  Kernel hangs during msm init

Status in linux-snapdragon package in Ubuntu:
  Invalid
Status in linux-snapdragon source package in Bionic:
  Fix Committed

Bug description:
  Impact:

  Ubuntu-snapdragon-4.15.0-1061.68 hangs during boot around msm init.
  Sometimes we get the following stack trace, or the boot completes and the 
board hangs during reboot:

  ...
  [    8.113018] msm_dsi_manager_register: failed to register mipi dsi host for 
DSI 0
  [    8.131081] msm 1a00000.mdss: failed to bind 1a98000.dsi (ops dsi_ops 
[msm]): -517
  [    8.138234] msm 1a00000.mdss: master bind failed: -517
  [    8.145551] platform 1a01000.mdp: Dropping the link to 1ef0000.iommu
  [    8.150545] iommu: Removing device 1a01000.mdp from group 1
  [    8.157051] ------------[ cut here ]------------
  [    8.162369] WARNING: CPU: 1 PID: 1316 at 
/build/linux-snapdragon-t5G9R3/linux-snapdragon-4.15.0/drivers/iommu/qcom_iommu.c:336
 qcom_iommu_domain_free
  +0x74/0x88
  [    8.167166] Modules linked in: adv7511_drm cec rc_core msm(+) mdt_loader
  [    8.181137] CPU: 1 PID: 1316 Comm: systemd-udevd Not tainted 
4.15.0-1061-snapdragon #68-Ubuntu
  [    8.188079] Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT)
  [    8.196501] pstate: 60400005 (nZCv daif +PAN -UAO)
  [    8.203356] pc : qcom_iommu_domain_free+0x74/0x88
  [    8.207955] lr : qcom_iommu_domain_free+0x74/0x88
  [    8.212727] sp : ffff00000cbeb680
  [    8.217412] x29: ffff00000cbeb680 x28: ffff8000396d84b8
  [    8.220713] x27: ffff8000396d84b0 x26: ffff8000396d84c0
  [    8.226096] x25: ffff80003d057c10 x24: ffff8000396d8420
  [    8.231391] x23: 0000000000000003 x22: ffff80003ce40258
  [    8.236686] x21: ffff80000203ad00 x20: ffff80000203af30
  [    8.241981] x19: ffff80000203af00 x18: ffffffffffffffff
  [    8.247275] x17: 0000000000000000 x16: 0000000000000004
  [    8.252570] x15: ffff000009549c08 x14: 0720072007200720
  [    8.257866] x13: 0720072007200720 x12: 0720072007200720
  [    8.263161] x11: ffff000009549e80 x10: ffff00000871d340
  [    8.268456] x9 : 0720072007200720 x8 : 0000000000000005
  [    8.273751] x7 : 0720072d072d072d x6 : 000000000000014c
  [    8.279046] x5 : ffff000008610250 x4 : 0000000000000000
  [    8.284345] x3 : 0000000000000000 x2 : a59fa8ece8469a00
  [    8.289637] x1 : 0000000000000000 x0 : 0000000000000024
  [    8.294932] Call trace:
  [    8.300227]  qcom_iommu_domain_free+0x74/0x88
  [    8.302400]  iommu_group_release+0x54/0x90
  [    8.306914]  kobject_put+0x8c/0x1f0
  [    8.310905]  kobject_del.part.0+0x3c/0x50
  [    8.314292]  kobject_put+0x74/0x1f0
  [    8.318455]  iommu_group_remove_device+0x10c/0x198
  [    8.321756]  qcom_iommu_remove_device+0x58/0x70
  [    8.326617]  iommu_bus_notifier+0xa8/0x120
  [    8.331045]  notifier_call_chain+0x5c/0xa0
  [    8.335210]  blocking_notifier_call_chain+0x64/0x88
  [    8.339294]  device_del+0x234/0x368
  [    8.344066]  platform_device_del.part.3+0x2c/0x98
  [    8.347539]  platform_device_unregister+0x24/0x38
  [    8.352410]  of_platform_device_destroy+0xb8/0xc0
  [    8.357087]  device_for_each_child+0x58/0xb0
  [    8.361775]  of_platform_depopulate+0x4c/0x68
  [    8.366350]  msm_pdev_probe+0x2c4/0x388 [msm]
  [    8.370369]  platform_drv_probe+0x60/0xc0
  [    8.374707]  driver_probe_device+0x2ec/0x458
  [    8.378701]  __driver_attach+0xdc/0x128
  [    8.383042]  bus_for_each_dev+0x78/0xd8
  [    8.386598]  driver_attach+0x30/0x40
  [    8.390418]  bus_add_driver+0x20c/0x2a8
  [    8.394237]  driver_register+0x6c/0x110
  [    8.397797]  __platform_driver_register+0x54/0x60
  [    8.401841]  msm_drm_register+0x54/0x80 [msm]
  [    8.406481]  do_one_initcall+0x58/0x160
  [    8.410818]  do_init_module+0x64/0x1d8
  [    8.414463]  load_module+0x1378/0x15c8
  [    8.418282]  SyS_finit_module+0x100/0x118
  [    8.422016]  el0_svc_naked+0x30/0x34
  [    8.426095] ---[ end trace 800d0885aa276bfd ]---

  Fix:

  During the Ubuntu-snapdragon-4.15.0-1061.68 cycle, we picked up one
  upstream patch that of_platform_depopulate() msm in case of probe
  deferral (or during the removal), but that patch triggers a WARN_ON()
  during the wind down of the IOMMU (and the susequent kernel hang) -
  unless we want to backport the new msm dri driver (and all the
  relevant dependencies), revert the stable patch that calls
  of_platform_depopulate().

  How to test:

  Boot a patched kernel and check  if that stracktrace shows up again.

  Regression:

  None, i'm reverting a patch that wasn't there before and clearly
  wasn't tested with our downstream BSP.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-snapdragon/+bug/1841911/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to