Hello,
I've just tested 'modetest' with the fix applied, and while the nullptr deference goes away, I now get a division by zero.
modetest output: Encoders: id crtc type possible crtcs possible clones 22 0 TMDS 0x00000001 0x00000000 30 29 TMDS 0x00000002 0x00000000 36 0 TMDS 0x00000004 0x00000000
Connectors: id encoder status type size (mm) modes encoders 23 0 disconnected Virtual 0x0 0 22 props: 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 0 31 30 connected VGA 0x0 1 30 modes: name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) 1366x768 0 1366 1414 1446 1526 768 771 776 790 flags: phsync, pvsync; type: preferred, driver props: 1 EDID: flags: immutable blob blobs:
value: 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 0 37 0 disconnected HDMI-A 0x0 0 36 props: 1 EDID: flags: immutable blob blobs:
value: 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 0
CRTCs: id fb pos size 21 0 (0,0) (0x0) 0 0 0 0 0 0 0 0 0 flags: ; type: props: 29 40 (0,0) (1366x768) 1366x768 0 1366 1414 1446 1526 768 771 776 790 flags: phsync, pvsync; type: preferred, driver props: 35 0 (0,0) (0x0) 0 0 0 0 0 0 0 0 0 flags: ; type: props:
Planes: id crtc fb CRTC x,y x,y gamma size possible crtcs 17 21 0 0,0 0,0 0 0x00000001 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 1 18 0 0 0,0 0,0 0 0x00000001 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 19 zpos: flags: immutable range values: 0 4 value: 1 20 0 0 0,0 0,0 0 0x00000001 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 19 zpos: flags: immutable range values: 0 4 value: 2 24 29 40 0,0 0,0 0 0x00000002 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 1 25 0 0 0,0 0,0 0 0x00000002 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 19 zpos: flags: immutable range values: 0 4 value: 1 26 0 0 0,0 0,0 0 0x00000002 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 19 zpos: flags: immutable range values: 0 4 value: 2 27 0 0 0,0 0,0 0 0x00000002 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 19 zpos: flags: immutable range values: 0 4 value: 3 28 0 0 0,0 0,0 0 0x00000002 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 19 zpos: flags: immutable range values: 0 4 value: 4 32 35 0 0,0 0,0 0 0x00000004 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 1 33 0 0 0,0 0,0 0 0x00000004 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 19 zpos: flags: immutable range values: 0 4 value: 1 34 0 0 0,0 0,0 0 0x00000004 formats: XR24 AR24 NV12 props: 5 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 19 zpos: flags: immutable range values: 0 4 value: 2
Frame buffers: id size pitch
kernel output: [ 46.808858] Division by zero in kernel. [ 46.808888] CPU: 2 PID: 2611 Comm: lt-modetest Not tainted 4.1.0-rc3-debug+ #2 [ 46.808902] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 46.808912] Backtrace: [ 46.808951] [<c00132b0>] (dump_backtrace) from [<c00134c8>] (show_stack+0x18/0x1c) [ 46.808963] r6:c06f9a08 r5:ffffffff r4:00000000 r3:dc8ba300 [ 46.809008] [<c00134b0>] (show_stack) from [<c04f2138>] (dump_stack+0x88/0xc8) [ 46.809030] [<c04f20b0>] (dump_stack) from [<c0013434>] (__div0+0x1c/0x20) [ 46.809040] r6:00000003 r5:00000000 r4:ed975010 r3:00000000 [ 46.809080] [<c0013418>] (__div0) from [<c020dc14>] (Ldiv0+0x8/0x10) [ 46.809106] [<c02b5e08>] (fimd_commit) from [<c02b6200>] (fimd_poweron.part.9+0xd4/0x19c) [ 46.809116] r9:ee14cc00 r8:c06ffcbc r7:c0748f94 r6:ed975a70 r5:ed975010 r4:00000005 [ 46.809159] [<c02b612c>] (fimd_poweron.part.9) from [<c02b6354>] (fimd_dpms+0x8c/0xb4) [ 46.809170] r6:ee14cc00 r5:00000000 r4:c0748f94 r3:00000001 [ 46.809206] [<c02b62c8>] (fimd_dpms) from [<c02b1bf4>] (exynos_drm_crtc_enable+0x34/0x7c) [ 46.809216] r6:ed3e5340 r5:ed975020 r4:ee14cc00 r3:c02b62c8 [ 46.809260] [<c02b1bc0>] (exynos_drm_crtc_enable) from [<c028c0e8>] (drm_atomic_helper_commit_modeset_enables+0x98/0x1c8) [ 46.809271] r5:ee14cc00 r4:00000001 [ 46.809300] [<c028c050>] (drm_atomic_helper_commit_modeset_enables) from [<c028e6ac>] (drm_atomic_helper_commit+0x124/0x170) [ 46.809311] r8:00000000 r7:ee248000 r6:00000000 r5:ed3e5340 r4:0000000b r3:00000000 [ 46.809354] [<c028e588>] (drm_atomic_helper_commit) from [<c02b2794>] (exynos_atomic_commit+0x14/0x18) [ 46.809364] r8:ee14cc00 r7:00000000 r6:ed86f728 r5:ee248000 r4:ed3e5340 r3:c02b2780 [ 46.809405] [<c02b2780>] (exynos_atomic_commit) from [<c02af928>] (drm_atomic_commit+0x4c/0x6c) [ 46.809425] [<c02af8dc>] (drm_atomic_commit) from [<c028d250>] (drm_atomic_helper_set_config+0x31c/0x428) [ 46.809435] r5:ed3e5340 r4:00000003 [ 46.809469] [<c028cf34>] (drm_atomic_helper_set_config) from [<c029f14c>] (drm_mode_set_config_internal+0x60/0xdc) [ 46.809480] r10:00000000 r9:ee248000 r8:ed86f200 r7:ee14cc00 r6:00000002 r5:00000050 [ 46.809514] r4:ed832c00 [ 46.809540] [<c029f0ec>] (drm_mode_set_config_internal) from [<c0290c2c>] (drm_fb_helper_restore_fbdev_mode_unlocked+0xec/0x140) [ 46.809550] r7:ed86f728 r6:00000002 r5:00000050 r4:00000000 [ 46.809588] [<c0290b40>] (drm_fb_helper_restore_fbdev_mode_unlocked) from [<c02b2658>] (exynos_drm_fbdev_restore_mode+0x28/0x2c) [ 46.809599] r10:ee24814c r9:ed190780 r8:ee248034 r7:ee248000 r6:ee248058 r5:c0748f94 [ 46.809632] r4:ee248000 [ 46.809653] [<c02b2630>] (exynos_drm_fbdev_restore_mode) from [<c02b1068>] (exynos_drm_lastclose+0x10/0x14) [ 46.809671] [<c02b1058>] (exynos_drm_lastclose) from [<c0294564>] (drm_lastclose+0x3c/0x10c) [ 46.809687] [<c0294528>] (drm_lastclose) from [<c0294974>] (drm_release+0x340/0x4e0) [ 46.809697] r6:ee248058 r5:ec6404a8 r4:ec640400 r3:00000000 [ 46.809738] [<c0294634>] (drm_release) from [<c0103ca8>] (__fput+0xa0/0x1e4) [ 46.809748] r10:00000000 r9:00000008 r8:ee11a5b0 r7:edc0d720 r6:eda71410 r5:ee11a5b0 [ 46.809781] r4:ec640d00 [ 46.809803] [<c0103c08>] (__fput) from [<c0103e58>] (____fput+0x10/0x14) [ 46.809813] r10:00000000 r9:ec6ea000 r8:c000fc04 r7:ed8fb9c0 r6:c0718ef8 r5:00000000 [ 46.809847] r4:ed8fbdc4 [ 46.809872] [<c0103e48>] (____fput) from [<c00473b0>] (task_work_run+0xb8/0xfc) [ 46.809895] [<c00472f8>] (task_work_run) from [<c0012ec8>] (do_work_pending+0x88/0xa8) [ 46.809905] r7:00000006 r6:ec6ebfb0 r5:c000fc04 r4:ec6ea000 [ 46.809943] [<c0012e40>] (do_work_pending) from [<c000faa4>] (work_pending+0xc/0x20) [ 46.809953] r6:00000000 r5:00000001 r4:00000003 r3:00000000 [ 46.809992] Division by zero in kernel. [ 46.810010] CPU: 2 PID: 2611 Comm: lt-modetest Not tainted 4.1.0-rc3-debug+ #2 [ 46.810021] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 46.810030] Backtrace: [ 46.810054] [<c00132b0>] (dump_backtrace) from [<c00134c8>] (show_stack+0x18/0x1c) [ 46.810065] r6:c06f9a08 r5:ffffffff r4:00000000 r3:dc8ba300 [ 46.810105] [<c00134b0>] (show_stack) from [<c04f2138>] (dump_stack+0x88/0xc8) [ 46.810126] [<c04f20b0>] (dump_stack) from [<c0013434>] (__div0+0x1c/0x20) [ 46.810136] r6:00000003 r5:00000000 r4:ed975010 r3:00000000 [ 46.810172] [<c0013418>] (__div0) from [<c020dc14>] (Ldiv0+0x8/0x10) [ 46.810193] [<c02b5e08>] (fimd_commit) from [<c02b1c38>] (exynos_drm_crtc_enable+0x78/0x7c) [ 46.810203] r9:ee14cc00 r8:c06ffcbc r7:c0748f94 r6:ed3e5340 r5:ed975020 r4:ee14cc00 [ 46.810248] [<c02b1bc0>] (exynos_drm_crtc_enable) from [<c028c0e8>] (drm_atomic_helper_commit_modeset_enables+0x98/0x1c8) [ 46.810258] r5:ee14cc00 r4:00000001 [ 46.810287] [<c028c050>] (drm_atomic_helper_commit_modeset_enables) from [<c028e6ac>] (drm_atomic_helper_commit+0x124/0x170) [ 46.810297] r8:00000000 r7:ee248000 r6:00000000 r5:ed3e5340 r4:0000000b r3:00000000 [ 46.810339] [<c028e588>] (drm_atomic_helper_commit) from [<c02b2794>] (exynos_atomic_commit+0x14/0x18) [ 46.810350] r8:ee14cc00 r7:00000000 r6:ed86f728 r5:ee248000 r4:ed3e5340 r3:c02b2780 [ 46.810390] [<c02b2780>] (exynos_atomic_commit) from [<c02af928>] (drm_atomic_commit+0x4c/0x6c) [ 46.810409] [<c02af8dc>] (drm_atomic_commit) from [<c028d250>] (drm_atomic_helper_set_config+0x31c/0x428) [ 46.810420] r5:ed3e5340 r4:00000003 [ 46.810452] [<c028cf34>] (drm_atomic_helper_set_config) from [<c029f14c>] (drm_mode_set_config_internal+0x60/0xdc) [ 46.810462] r10:00000000 r9:ee248000 r8:ed86f200 r7:ee14cc00 r6:00000002 r5:00000050 [ 46.810496] r4:ed832c00 [ 46.810521] [<c029f0ec>] (drm_mode_set_config_internal) from [<c0290c2c>] (drm_fb_helper_restore_fbdev_mode_unlocked+0xec/0x140) [ 46.810531] r7:ed86f728 r6:00000002 r5:00000050 r4:00000000 [ 46.810569] [<c0290b40>] (drm_fb_helper_restore_fbdev_mode_unlocked) from [<c02b2658>] (exynos_drm_fbdev_restore_mode+0x28/0x2c) [ 46.810579] r10:ee24814c r9:ed190780 r8:ee248034 r7:ee248000 r6:ee248058 r5:c0748f94 [ 46.810612] r4:ee248000 [ 46.810632] [<c02b2630>] (exynos_drm_fbdev_restore_mode) from [<c02b1068>] (exynos_drm_lastclose+0x10/0x14) [ 46.810650] [<c02b1058>] (exynos_drm_lastclose) from [<c0294564>] (drm_lastclose+0x3c/0x10c) [ 46.810666] [<c0294528>] (drm_lastclose) from [<c0294974>] (drm_release+0x340/0x4e0) [ 46.810676] r6:ee248058 r5:ec6404a8 r4:ec640400 r3:00000000 [ 46.810713] [<c0294634>] (drm_release) from [<c0103ca8>] (__fput+0xa0/0x1e4) [ 46.810723] r10:00000000 r9:00000008 r8:ee11a5b0 r7:edc0d720 r6:eda71410 r5:ee11a5b0 [ 46.810757] r4:ec640d00 [ 46.810778] [<c0103c08>] (__fput) from [<c0103e58>] (____fput+0x10/0x14) [ 46.810788] r10:00000000 r9:ec6ea000 r8:c000fc04 r7:ed8fb9c0 r6:c0718ef8 r5:00000000 [ 46.810821] r4:ed8fbdc4 [ 46.810844] [<c0103e48>] (____fput) from [<c00473b0>] (task_work_run+0xb8/0xfc) [ 46.810866] [<c00472f8>] (task_work_run) from [<c0012ec8>] (do_work_pending+0x88/0xa8) [ 46.810877] r7:00000006 r6:ec6ebfb0 r5:c000fc04 r4:ec6ea000 [ 46.810913] [<c0012e40>] (do_work_pending) from [<c000faa4>] (work_pending+0xc/0x20) [ 46.810923] r6:00000000 r5:00000001 r4:00000003 r3:00000000
I suspect that atomic merely exposed this bug (I suspect it was there all the time).
With best wishes, Tobias