Re: drm/exynos: Add atomic modesetting support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux