drm/i915: Always backoff after a drm_modeset_lock() deadlock
If drm_modeset_lock() reports a deadlock it sets the ctx->contexted
field and insists that the caller calls drm_modeset_backoff() or else it
generates a WARN on cleanup.
<4> [1601.870376] WARNING: CPU: 3 PID: 8445 at drivers/gpu/drm/drm_modeset_lock.c:228 drm_modeset_drop_locks+0x35/0x40
<4> [1601.870395] Modules linked in: vgem snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic x86_pkg_temp_thermal i915 coretemp crct10dif_pclmul
<6> [1601.870403] Console: switching
<4> [1601.870403] snd_hda_intel
<4> [1601.870406] to colour frame buffer device 320x90
<4> [1601.870406] crc32_pclmul snd_hda_codec snd_hwdep ghash_clmulni_intel e1000e snd_hda_core cdc_ether ptp usbnet mii pps_core snd_pcm i2c_i801 mei_me mei prime_numbers
<4> [1601.870422] CPU: 3 PID: 8445 Comm: cat Tainted: G U 5.0.0-rc7-CI-CI_DRM_5650+ #1
<4> [1601.870424] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP TLC, BIOS ICLSFWR1.R00.2402.AD3.
1810170014 10/17/2018
<4> [1601.870427] RIP: 0010:drm_modeset_drop_locks+0x35/0x40
<4> [1601.870430] Code: 29 48 8b 43 60 48 8d 6b 60 48 39 c5 74 19 48 8b 43 60 48 8d b8 70 ff ff ff e8 87 ff ff ff 48 8b 43 60 48 39 c5 75 e7 5b 5d c3 <0f> 0b eb d3 0f 1f 80 00 00 00 00 41 56 41 55 41 54 55 53 48 8b 6f
<4> [1601.870432] RSP: 0018:
ffffc90000d67ce8 EFLAGS:
00010282
<4> [1601.870435] RAX:
00000000ffffffdd RBX:
ffffc90000d67d00 RCX:
5dbbe23d00000000
<4> [1601.870437] RDX:
0000000000000000 RSI:
0000000093e6194a RDI:
ffffc90000d67d00
<4> [1601.870439] RBP:
ffff88849e62e678 R08:
0000000003b7329a R09:
0000000000000001
<4> [1601.870441] R10:
0000000000000000 R11:
0000000000000000 R12:
ffff888492100410
<4> [1601.870442] R13:
ffff88849ea50958 R14:
ffff8884a67eb028 R15:
ffff8884a67eb028
<4> [1601.870445] FS:
00007fa7a27745c0(0000) GS:
ffff8884aff80000(0000) knlGS:
0000000000000000
<4> [1601.870447] CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
<4> [1601.870449] CR2:
000055af07e66000 CR3:
00000004a8cc2006 CR4:
0000000000760ee0
<4> [1601.870451] DR0:
0000000000000000 DR1:
0000000000000000 DR2:
0000000000000000
<4> [1601.870453] DR3:
0000000000000000 DR6:
00000000fffe0ff0 DR7:
0000000000000400
<4> [1601.870454] PKRU:
55555554
<4> [1601.870456] Call Trace:
<4> [1601.870505] i915_dsc_fec_support_show+0x91/0x190 [i915]
<4> [1601.870522] seq_read+0xdb/0x3c0
<4> [1601.870531] full_proxy_read+0x51/0x80
<4> [1601.870538] __vfs_read+0x31/0x190
<4> [1601.870546] ? __se_sys_newfstat+0x3c/0x60
<4> [1601.870552] vfs_read+0x9e/0x150
<4> [1601.870557] ksys_read+0x50/0xc0
<4> [1601.870564] do_syscall_64+0x55/0x190
<4> [1601.870569] entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [1601.870572] RIP: 0033:0x7fa7a226d081
<4> [1601.870574] Code: fe ff ff 48 8d 3d 67 9c 0a 00 48 83 ec 08 e8 a6 4c 02 00 66 0f 1f 44 00 00 48 8d 05 81 08 2e 00 8b 00 85 c0 75 13 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 57 f3 c3 0f 1f 44 00 00 41 54 55 49 89 d4 53
<4> [1601.870576] RSP: 002b:
00007ffcc05140c8 EFLAGS:
00000246 ORIG_RAX:
0000000000000000
<4> [1601.870579] RAX:
ffffffffffffffda RBX:
0000000000020000 RCX:
00007fa7a226d081
<4> [1601.870581] RDX:
0000000000020000 RSI:
000055af07e63000 RDI:
0000000000000007
<4> [1601.870583] RBP:
0000000000020000 R08:
000000000000007b R09:
0000000000000000
<4> [1601.870585] R10:
000055af07e60010 R11:
0000000000000246 R12:
000055af07e63000
<4> [1601.870587] R13:
0000000000000007 R14:
000055af07e634bf R15:
0000000000020000
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109745
Fixes: e845f099f1c6 ("drm/i915/dsc: Add Per connector debugfs node for DSC support/enable")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190329165152.29259-1-chris@chris-wilson.co.uk