[drm:drm_mode_config_cleanup] *ERROR* connector HDMI-A-1 leaked!
pojiro opened this issue · comments
Ryota Kinukawa commented
現象
前提
HDMI 出力(TX)をディスプレイにつないでいる状態
起きること
Nerves.Runtim.reboot/halt/poweroff を実行すると掲題のエラーが発生し、 処理がハングする。
確かめたこと
- HDMI 出力(TX)をディスプレイにつないでいなければ起きない。
- Petalinux Demo で同様になる(同じ前提条件で発生し、つないでいない場合は起きない。)
対応
Nerves 移植に起因する現象でないため、対応はペンディング
エラーログ
以下ログを UART で取得
erlinit: Sending SIGKILL to all processes
erlinit: umount 0 failed: No such file or directory
Console: switching to colour dummy device 80x30
[drm:drm_mode_config_cleanup] *ERROR* connector HDMI-A-1 leaked!
8<--- cut here ---
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = e76beb26
[00000000] *pgd=00000000
Internal error: Oops - BUG: 5 [#1] PREEMPT SMP ARM
Modules linked in: uio_pdrv_genirq
CPU: 0 PID: 21 Comm: kworker/0:1 Not tainted 5.15.19-xilinx-v2022.1 #1
Hardware name: Xilinx Zynq Platform
Workqueue: events drm_connector_free_work_fn
PC is at ida_free+0xd0/0x124
LR is at xas_load+0x18/0x68
pc : [<c03a6a68>] lr : [<c03b5a90>] psr: 600f0093
sp : c18e5ee0 ip : 02000000 fp : 00000000
r10: c2119d8c r9 : 00000122 r8 : 00000100
r7 : 600f0013 r6 : 00000000 r5 : 00000000 r4 : 00000000
r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : 00000000
Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none
Control: 18c5387d Table: 018b404a DAC: 00000051
Register r0 information: NULL pointer
Register r1 information: NULL pointer
Register r2 information: NULL pointer
Register r3 information: NULL pointer
Register r4 information: NULL pointer
Register r5 information: NULL pointer
Register r6 information: NULL pointer
Register r7 information: non-paged memory
Register r8 information: non-paged memory
Register r9 information: non-paged memory
Register r10 information: slab kmalloc-1k start c2119c00 pointer offset 396 size 1024
Register r11 information: NULL pointer
Register r12 information: non-paged memory
Process kworker/0:1 (pid: 21, stack limit = 0xddc21d77)
Stack: (0xc18e5ee0 to 0xc18e6000)
5ee0: c1800080 c2119d70 00000000 00000000 00000000 00000000 00000000 5fbf5306
5f00: c2112088 c2112088 c2119c00 c2119d68 c21120dc c0461a70 fffffc74 fffffc74
5f20: c2119c00 ef6cd700 00000000 ef6cd705 c2119d8c c0461c2c c183d580 c2119d88
5f40: ef6ca1c0 c01310f8 c183d580 c2119d88 c183d580 ef6ca1c0 ef6ca1c0 c18e4000
5f60: ef6ca1d8 c0c02d00 c183d598 c01315d4 c18e4000 c185ec00 c185ebc0 c0131440
5f80: c183d580 c1877edc c185ebe0 c01365fc c185ec00 c01364c0 00000000 00000000
5fa0: 00000000 00000000 00000000 c0100130 00000000 00000000 00000000 00000000
5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[<c03a6a68>] (ida_free) from [<c0461a70>] (drm_connector_cleanup+0xbc/0x1a0)
[<c0461a70>] (drm_connector_cleanup) from [<c0461c2c>] (drm_connector_free_work_fn+0x7c/0x80)
[<c0461c2c>] (drm_connector_free_work_fn) from [<c01310f8>] (process_one_work+0x154/0x210)
[<c01310f8>] (process_one_work) from [<c01315d4>] (worker_thread+0x194/0x280)
[<c01315d4>] (worker_thread) from [<c01365fc>] (kthread+0x13c/0x144)
[<c01365fc>] (kthread) from [<c0100130>] (ret_from_fork+0x14/0x24)
Exception stack(0xc18e5fb0 to 0xc18e5ff8)
5fa0: 00000000 00000000 00000000 00000000
5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5fe0: 00000000 00000000 00000000 00000000 00000013 00000000
Code: 0a000014 eb0f8c85 e1a052a5 e206601f (e7903105)
---[ end trace bf981c5fd14a38c0 ]---
note: kworker/0:1[21] exited with preempt_count 1
Ryota Kinukawa commented
関連 issue の調査
- https://github.com/Digilent/linux-digilent には issue タブが存在しない
- https://github.com/Xilinx/linux-xlnx には issue タブが存在しない
Ryota Kinukawa commented
nerves_system_zybo_z7_10/.nerves/artifacts/nerves_system_zybo_z7_10-portable-0.0.2/build/linux-custom/drivers/gpu/drm/drm_connector.c
の drm_connector_cleanup
の操作のどこかで落ちてそうだが、根が深そうなので調査はここまで。
Digilent の HDMI ドライバの問題だろう。