drm: sun4i: segmentation fault with rmmod sun4i_drm

From: Corentin Labbe
Date: Thu May 16 2019 - 05:47:57 EST


Hello

When I rmmod sun4i_drm I got
[ 546.417886] Internal error: Oops: 17 [#1] SMP ARM
[ 547.024731] CPU: 0 PID: 18811 Comm: rmmod Not tainted 5.1.0-next-20190515-00100-gf33d93f7d2a0 #39
[ 547.033588] Hardware name: Allwinner sun7i (A20) Family
[ 547.038816] PC is at drm_connector_cleanup+0x48/0x210
[ 547.043874] LR is at sun4i_hdmi_unbind+0x18/0x5c [sun4i_drm_hdmi]
[ 547.049959] pc : [<c08d313c>] lr : [<bf051344>] psr: a0000013
[ 547.056217] sp : c46e1e90 ip : 00000000 fp : 00000000
[ 547.061435] r10: 00000081 r9 : c46e0000 r8 : c0301204
[ 547.066653] r7 : 00000000 r6 : c4b918a0 r5 : c4b91840 r4 : 00000000
[ 547.073171] r3 : 00000000 r2 : 00000000 r1 : ee900210 r0 : c4b91840
[ 547.079691] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
[ 547.086817] Control: 10c5387d Table: 446d406a DAC: 00000051
[ 547.092559] Process rmmod (pid: 18811, stack limit = 0x566ffc72)
[ 547.098559] Stack: (0xc46e1e90 to 0xc46e2000)
[ 547.102915] 1e80: c4b91840 c4df5d80 00000018 00000000
[ 547.111086] 1ea0: c0301204 c46e0000 00000081 bf051344 c4db7200 c4df5d80 00000018 c0974360
[ 547.119256] 1ec0: 00000000 21c0d377 c46e1ec8 0000000e c4df5d80 c0974430 c4dc9800 ee900210
[ 547.127426] 1ee0: bf02003c 00000081 c0301204 bf01f054 c4df5d80 ee900210 bf02003c c0974680
[ 547.135596] 1f00: c4df5d80 c0974728 ee900210 ee900210 bf022104 bf01f014 ee900210 c097c648
[ 547.143767] 1f20: ee900210 c1845388 bf022104 c097ae98 ee900210 bf022104 bed8eb98 c097afd4
[ 547.151937] 1f40: bf022104 bf022180 bed8eb98 c0979c8c c46e0000 c03d4ea0 346e7573 72645f69
[ 547.160107] 1f60: b6fa006d c170ae04 00000017 c031659c b6f048cc c46e1fb0 bed8ee14 000a2060
[ 547.168278] 1f80: bed8eb7c c0316a74 ffffffff 21c0d377 00d8ed28 21c0d377 000278d4 346e7573
[ 547.176448] 1fa0: 72645f69 c0301000 000278d4 346e7573 bed8eb98 00000880 00000000 bed8ee18
[ 547.184618] 1fc0: 000278d4 346e7573 72645f69 00000081 00000000 00000000 b6fa2000 00000000
[ 547.192788] 1fe0: bed8eb90 bed8eb80 000277b8 b6ea8420 60000010 bed8eb98 00000000 00000000
[ 547.200979] [<c08d313c>] (drm_connector_cleanup) from [<bf051344>] (sun4i_hdmi_unbind+0x18/0x5c [sun4i_drm_hdmi])
[ 547.211244] [<bf051344>] (sun4i_hdmi_unbind [sun4i_drm_hdmi]) from [<c0974360>] (component_unbind+0x30/0x68)
[ 547.221063] [<c0974360>] (component_unbind) from [<c0974430>] (component_unbind_all+0x98/0xbc)
[ 547.229670] [<c0974430>] (component_unbind_all) from [<bf01f054>] (sun4i_drv_unbind+0x38/0x4c [sun4i_drm])
[ 547.239317] [<bf01f054>] (sun4i_drv_unbind [sun4i_drm]) from [<c0974680>] (take_down_master.part.0+0x18/0x30)
[ 547.249221] [<c0974680>] (take_down_master.part.0) from [<c0974728>] (component_master_del+0x90/0x94)
[ 547.258433] [<c0974728>] (component_master_del) from [<bf01f014>] (sun4i_drv_remove+0x14/0x1c [sun4i_drm])
[ 547.268080] [<bf01f014>] (sun4i_drv_remove [sun4i_drm]) from [<c097c648>] (platform_drv_remove+0x24/0x3c)
[ 547.277641] [<c097c648>] (platform_drv_remove) from [<c097ae98>] (device_release_driver_internal+0xdc/0x1ac)
[ 547.287462] [<c097ae98>] (device_release_driver_internal) from [<c097afd4>] (driver_detach+0x54/0xa0)
[ 547.296675] [<c097afd4>] (driver_detach) from [<c0979c8c>] (bus_remove_driver+0x4c/0xa0)
[ 547.304762] [<c0979c8c>] (bus_remove_driver) from [<c03d4ea0>] (sys_delete_module+0x178/0x1f4)
[ 547.313370] [<c03d4ea0>] (sys_delete_module) from [<c0301000>] (ret_fast_syscall+0x0/0x54)
[ 547.321622] Exception stack(0xc46e1fa8 to 0xc46e1ff0)
[ 547.326671] 1fa0: 000278d4 346e7573 bed8eb98 00000880 00000000 bed8ee18
[ 547.334841] 1fc0: 000278d4 346e7573 72645f69 00000081 00000000 00000000 b6fa2000 00000000
[ 547.343008] 1fe0: bed8eb90 bed8eb80 000277b8 b6ea8420
[ 547.348061] Code: e5853310 e1a06005 e5b63060 e1560003 (e5934000)
[ 547.354336] ---[ end trace 8bd87feb5ea08d7d ]---
Segmentation fault

This occurs both on qemu-cubieboard and cubieboard2

Regards