Message ID | 20220901161933.1004778-1-imre.deak@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/dp_mst: Fix mst_mgr lookup during atomic check | expand |
Reviewed-by: Lyude Paul <lyude@redhat.com> Thanks for catching this! On Thu, 2022-09-01 at 19:19 +0300, Imre Deak wrote: > If an MST connector was disabled in the old state during a commit, the > connector's best_encoder will be NULL, so we can't look up mst_mgr via > it. Do the lookup instead via intel_connector->mst_port which always > points to the primary encoder. > > This fixes the following: > [ 58.922866] BUG: kernel NULL pointer dereference, address: 0000000000000170 > [ 58.922867] #PF: supervisor read access in kernel mode > [ 58.922868] #PF: error_code(0x0000) - not-present page > [ 58.922869] PGD 0 P4D 0 > [ 58.922870] Oops: 0000 [#1] PREEMPT SMP NOPTI > [ 58.922872] CPU: 0 PID: 133 Comm: kworker/0:2 Tainted: G U 6.0.0-rc3-imre+ #560 > [ 58.922874] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR5 RVP, BIOS ADLPFWI1.R00.3135.A00.2203251419 03/25/2022 > [ 58.922874] Workqueue: events output_poll_execute [drm_kms_helper] > [ 58.922879] RIP: 0010:intel_dp_mst_atomic_check+0xbb/0x1c0 [i915] > [ 58.922955] Code: 5b 7b f6 ff 84 c0 75 41 48 8b 44 24 18 65 48 2b 04 25 28 00 00 00 0f 85 ff 00 00 00 48 8b 45 10 48 8b 93 10 07 00 00 4c 89 e7 <48> 8b b0 70 01 00 00 48 83 c4 20 5b 5d 48 81 c6 f0 0c 00 00 41 5c > [ 58.922956] RSP: 0018:ffffc90000633a88 EFLAGS: 00010246 > [ 58.922957] RAX: 0000000000000000 RBX: ffff888117d19000 RCX: ffff888101893308 > [ 58.922958] RDX: ffff888122981000 RSI: ffffffff82309ecc RDI: ffff888114da6800 > [ 58.922959] RBP: ffff8881094bab48 R08: 0000000081917436 R09: 0000000068191743 > [ 58.922960] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888114da6800 > [ 58.922960] R13: ffff8881143f8000 R14: 0000000000000000 R15: ffff888119bf2000 > [ 58.922961] FS: 0000000000000000(0000) GS:ffff888496200000(0000) knlGS:0000000000000000 > [ 58.922962] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 58.922962] CR2: 0000000000000170 CR3: 0000000005612004 CR4: 0000000000770ef0 > [ 58.922963] PKRU: 55555554 > [ 58.922963] Call Trace: > [ 58.922964] <TASK> > [ 58.922966] drm_atomic_helper_check_modeset+0x3f8/0xc70 [drm_kms_helper] > [ 58.922972] intel_atomic_check+0xb1/0x3180 [i915] > [ 58.923059] ? find_held_lock+0x2b/0x80 > [ 58.923064] drm_atomic_check_only+0x5d3/0xa60 [drm] > [ 58.923082] drm_atomic_commit+0x56/0xc0 [drm] > [ 58.923097] ? drm_plane_get_damage_clips.cold+0x1c/0x1c [drm] > [ 58.923114] drm_client_modeset_commit_atomic+0x235/0x280 [drm] > [ 58.923132] drm_client_modeset_commit_locked+0x5b/0x190 [drm] > [ 58.923148] drm_client_modeset_commit+0x24/0x50 [drm] > [ 58.923164] drm_fb_helper_set_par+0xae/0xe0 [drm_kms_helper] > [ 58.923171] drm_fb_helper_hotplug_event+0xd5/0xf0 [drm_kms_helper] > [ 58.923178] output_poll_execute+0xac/0x200 [drm_kms_helper] > [ 58.923187] process_one_work+0x268/0x580 > [ 58.923190] ? process_one_work+0x580/0x580 > [ 58.923191] worker_thread+0x52/0x3b0 > [ 58.923193] ? process_one_work+0x580/0x580 > [ 58.923195] kthread+0xf0/0x120 > [ 58.923196] ? kthread_complete_and_exit+0x20/0x20 > [ 58.923198] ret_from_fork+0x1f/0x30 > [ 58.923202] </TASK> > > Fixes: ffac9721939d ("drm/display/dp_mst: Don't open code modeset checks for releasing time slots") > Cc: Lyude Paul <lyude@redhat.com> > Signed-off-by: Imre Deak <imre.deak@intel.com> > --- > drivers/gpu/drm/i915/display/intel_dp_mst.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c > index 13abe2b2170e7..7713c19042f34 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c > @@ -315,11 +315,8 @@ intel_dp_mst_atomic_check(struct drm_connector *connector, > struct drm_atomic_state *_state) > { > struct intel_atomic_state *state = to_intel_atomic_state(_state); > - struct drm_connector_state *old_conn_state = > - drm_atomic_get_old_connector_state(&state->base, connector); > struct intel_connector *intel_connector = > to_intel_connector(connector); > - struct drm_dp_mst_topology_mgr *mgr; > int ret; > > ret = intel_digital_connector_atomic_check(connector, &state->base); > @@ -330,8 +327,9 @@ intel_dp_mst_atomic_check(struct drm_connector *connector, > if (ret) > return ret; > > - mgr = &enc_to_mst(to_intel_encoder(old_conn_state->best_encoder))->primary->dp.mst_mgr; > - return drm_dp_atomic_release_time_slots(&state->base, mgr, intel_connector->port); > + return drm_dp_atomic_release_time_slots(&state->base, > + &intel_connector->mst_port->mst_mgr, > + intel_connector->port); > } > > static void clear_act_sent(struct intel_encoder *encoder,
On Fri, Sep 02, 2022 at 12:03:23PM +0000, Patchwork wrote: > == Series Details == > > Series: drm/i915/dp_mst: Fix mst_mgr lookup during atomic check > URL : https://patchwork.freedesktop.org/series/108040/ > State : success Thanks for the review, pushed to drm-misc-next. > > == Summary == > > CI Bug Log - changes from CI_DRM_12061_full -> Patchwork_108040v1_full > ==================================================== > > Summary > ------- > > **SUCCESS** > > No regressions found. > > > > Participating hosts (13 -> 12) > ------------------------------ > > Missing (1): shard-rkl > > New tests > --------- > > New tests have been introduced between CI_DRM_12061_full and Patchwork_108040v1_full: > > ### New IGT tests (1) ### > > * igt@gem_media_fill@media-fill@lmem0: > - Statuses : 1 pass(s) > - Exec time: [0.01] s > > > > Known issues > ------------ > > Here are the changes found in Patchwork_108040v1_full that come from known issues: > > ### CI changes ### > > #### Issues hit #### > > * boot: > - shard-skl: ([PASS][1], [PASS][2], [PASS][3], [PASS][4], [PASS][5], [PASS][6], [PASS][7], [PASS][8], [PASS][9], [PASS][10], [PASS][11], [PASS][12], [PASS][13], [PASS][14], [PASS][15], [PASS][16], [PASS][17], [PASS][18], [PASS][19], [PASS][20]) -> ([PASS][21], [PASS][22], [PASS][23], [PASS][24], [PASS][25], [PASS][26], [PASS][27], [PASS][28], [PASS][29], [PASS][30], [PASS][31], [PASS][32], [PASS][33], [FAIL][34], [PASS][35], [PASS][36], [PASS][37], [PASS][38], [PASS][39], [PASS][40], [PASS][41], [PASS][42], [PASS][43], [PASS][44]) ([i915#5032]) > [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl10/boot.html > [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl10/boot.html > [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl10/boot.html > [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl10/boot.html > [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl4/boot.html > [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl4/boot.html > [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl4/boot.html > [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl4/boot.html > [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl5/boot.html > [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl5/boot.html > [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl6/boot.html > [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl6/boot.html > [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl6/boot.html > [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl7/boot.html > [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl7/boot.html > [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl7/boot.html > [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl7/boot.html > [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl9/boot.html > [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl9/boot.html > [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-skl9/boot.html > [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl10/boot.html > [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl9/boot.html > [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl9/boot.html > [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl9/boot.html > [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl9/boot.html > [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl7/boot.html > [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl7/boot.html > [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl7/boot.html > [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl7/boot.html > [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl6/boot.html > [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl6/boot.html > [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl6/boot.html > [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl6/boot.html > [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl5/boot.html > [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl5/boot.html > [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl4/boot.html > [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl4/boot.html > [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl4/boot.html > [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl4/boot.html > [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl3/boot.html > [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl3/boot.html > [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl10/boot.html > [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl10/boot.html > [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-skl10/boot.html > > > > ### IGT changes ### > > #### Issues hit #### > > * igt@gem_eio@kms: > - shard-tglb: [PASS][45] -> [FAIL][46] ([i915#5784]) > [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-tglb7/igt@gem_eio@kms.html > [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-tglb3/igt@gem_eio@kms.html > > * igt@gem_exec_balancer@parallel: > - shard-iclb: [PASS][47] -> [SKIP][48] ([i915#4525]) > [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-iclb2/igt@gem_exec_balancer@parallel.html > [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb6/igt@gem_exec_balancer@parallel.html > > * igt@gem_exec_fair@basic-flow@rcs0: > - shard-tglb: [PASS][49] -> [FAIL][50] ([i915#2842]) +1 similar issue > [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-tglb5/igt@gem_exec_fair@basic-flow@rcs0.html > [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-tglb1/igt@gem_exec_fair@basic-flow@rcs0.html > > * igt@gem_exec_fence@syncobj-backward-timeline-chain-engines: > - shard-snb: NOTRUN -> [SKIP][51] ([fdo#109271]) +75 similar issues > [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-snb6/igt@gem_exec_fence@syncobj-backward-timeline-chain-engines.html > > * igt@gem_lmem_swapping@parallel-random-verify-ccs: > - shard-apl: NOTRUN -> [SKIP][52] ([fdo#109271] / [i915#4613]) +1 similar issue > [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-apl3/igt@gem_lmem_swapping@parallel-random-verify-ccs.html > > * igt@gem_userptr_blits@dmabuf-sync: > - shard-apl: NOTRUN -> [SKIP][53] ([fdo#109271] / [i915#3323]) > [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-apl7/igt@gem_userptr_blits@dmabuf-sync.html > > * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip: > - shard-apl: NOTRUN -> [SKIP][54] ([fdo#109271]) +81 similar issues > [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-apl3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html > > * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc: > - shard-apl: NOTRUN -> [SKIP][55] ([fdo#109271] / [i915#3886]) +5 similar issues > [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-apl7/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html > > * igt@kms_chamelium@common-hpd-after-suspend: > - shard-apl: NOTRUN -> [SKIP][56] ([fdo#109271] / [fdo#111827]) +5 similar issues > [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-apl7/igt@kms_chamelium@common-hpd-after-suspend.html > > * igt@kms_chamelium@hdmi-crc-nonplanar-formats: > - shard-snb: NOTRUN -> [SKIP][57] ([fdo#109271] / [fdo#111827]) > [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-snb6/igt@kms_chamelium@hdmi-crc-nonplanar-formats.html > > * igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1: > - shard-apl: [PASS][58] -> [DMESG-WARN][59] ([i915#180]) +1 similar issue > [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-apl8/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html > [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-apl3/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html > > * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-default-mode: > - shard-iclb: NOTRUN -> [SKIP][60] ([i915#6375]) > [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-default-mode.html > > * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode: > - shard-iclb: NOTRUN -> [SKIP][61] ([i915#2672]) +13 similar issues > [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html > > * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode: > - shard-iclb: NOTRUN -> [SKIP][62] ([i915#2672] / [i915#3555]) > [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html > > * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1: > - shard-iclb: [PASS][63] -> [SKIP][64] ([i915#5235]) +2 similar issues > [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-iclb1/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html > [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html > > * igt@kms_psr@psr2_cursor_blt: > - shard-iclb: [PASS][65] -> [SKIP][66] ([fdo#109441]) +3 similar issues > [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html > [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb6/igt@kms_psr@psr2_cursor_blt.html > > * igt@kms_vblank@pipe-a-wait-forked-busy-hang: > - shard-snb: [PASS][67] -> [SKIP][68] ([fdo#109271]) > [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-snb5/igt@kms_vblank@pipe-a-wait-forked-busy-hang.html > [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-snb6/igt@kms_vblank@pipe-a-wait-forked-busy-hang.html > > * igt@sysfs_clients@split-50: > - shard-apl: NOTRUN -> [SKIP][69] ([fdo#109271] / [i915#2994]) > [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-apl7/igt@sysfs_clients@split-50.html > > > #### Possible fixes #### > > * igt@gem_ctx_exec@basic-nohangcheck: > - shard-tglb: [FAIL][70] ([i915#6268]) -> [PASS][71] > [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-tglb3/igt@gem_ctx_exec@basic-nohangcheck.html > [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-tglb5/igt@gem_ctx_exec@basic-nohangcheck.html > > * igt@gem_ctx_persistence@legacy-engines-hang@blt: > - {shard-dg1}: [FAIL][72] ([i915#4883]) -> [PASS][73] +2 similar issues > [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-dg1-16/igt@gem_ctx_persistence@legacy-engines-hang@blt.html > [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-dg1-15/igt@gem_ctx_persistence@legacy-engines-hang@blt.html > > * igt@gem_exec_fair@basic-none-share@rcs0: > - shard-iclb: [FAIL][74] ([i915#2842]) -> [PASS][75] > [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-iclb5/igt@gem_exec_fair@basic-none-share@rcs0.html > [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb3/igt@gem_exec_fair@basic-none-share@rcs0.html > > * igt@gem_exec_fair@basic-pace-share@rcs0: > - shard-glk: [FAIL][76] ([i915#2842]) -> [PASS][77] > [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html > [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html > > * igt@gem_huc_copy@huc-copy: > - shard-tglb: [SKIP][78] ([i915#2190]) -> [PASS][79] > [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-tglb6/igt@gem_huc_copy@huc-copy.html > [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-tglb1/igt@gem_huc_copy@huc-copy.html > > * igt@gem_userptr_blits@sync-unmap-cycles: > - shard-snb: [INCOMPLETE][80] ([i915#3297]) -> [PASS][81] > [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-snb5/igt@gem_userptr_blits@sync-unmap-cycles.html > [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-snb6/igt@gem_userptr_blits@sync-unmap-cycles.html > > * igt@i915_pm_rpm@dpms-non-lpsp: > - {shard-dg1}: [SKIP][82] ([i915#1397]) -> [PASS][83] > [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-dg1-16/igt@i915_pm_rpm@dpms-non-lpsp.html > [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-dg1-15/igt@i915_pm_rpm@dpms-non-lpsp.html > > * igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1: > - shard-glk: [FAIL][84] ([i915#2521]) -> [PASS][85] > [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-glk1/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1.html > [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-glk2/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1.html > > * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1: > - shard-apl: [DMESG-WARN][86] ([i915#180]) -> [PASS][87] +1 similar issue > [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-apl3/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html > [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-apl7/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html > > * igt@kms_psr2_su@frontbuffer-xrgb8888: > - shard-iclb: [SKIP][88] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [PASS][89] > [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-iclb1/igt@kms_psr2_su@frontbuffer-xrgb8888.html > [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb2/igt@kms_psr2_su@frontbuffer-xrgb8888.html > > * igt@kms_psr@psr2_primary_render: > - shard-iclb: [SKIP][90] ([fdo#109441]) -> [PASS][91] > [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-iclb7/igt@kms_psr@psr2_primary_render.html > [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb2/igt@kms_psr@psr2_primary_render.html > > * igt@perf_pmu@busy-double-start@vcs0: > - {shard-dg1}: [FAIL][92] ([i915#4349]) -> [PASS][93] +1 similar issue > [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-dg1-15/igt@perf_pmu@busy-double-start@vcs0.html > [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-dg1-17/igt@perf_pmu@busy-double-start@vcs0.html > > > #### Warnings #### > > * igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf: > - shard-iclb: [SKIP][94] ([i915#658]) -> [SKIP][95] ([i915#2920]) > [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-iclb1/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html > [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html > > * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area: > - shard-iclb: [SKIP][96] ([i915#2920]) -> [SKIP][97] ([fdo#111068] / [i915#658]) > [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html > [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb1/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html > > * igt@kms_psr2_su@page_flip-nv12: > - shard-iclb: [SKIP][98] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [FAIL][99] ([i915#5939]) > [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12061/shard-iclb1/igt@kms_psr2_su@page_flip-nv12.html > [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/shard-iclb2/igt@kms_psr2_su@page_flip-nv12.html > > > {name}: This element is suppressed. This means it is ignored when computing > the status of the difference (SUCCESS, WARNING, or FAILURE). > > [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 > [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 > [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 > [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283 > [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 > [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 > [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291 > [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 > [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307 > [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309 > [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 > [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 > [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 > [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 > [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 > [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 > [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 > [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644 > [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656 > [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 > [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283 > [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063 > [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 > [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155 > [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 > [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769 > [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 > [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839 > [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 > [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 > [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521 > [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 > [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530 > [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658 > [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 > [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681 > [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705 > [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280 > [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 > [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 > [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 > [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994 > [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002 > [i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063 > [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116 > [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 > [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 > [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 > [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323 > [i915#3376]: https://gitlab.freedesktop.org/drm/intel/issues/3376 > [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 > [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 > [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 > [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742 > [i915#3828]: https://gitlab.freedesktop.org/drm/intel/issues/3828 > [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 > [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989 > [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 > [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 > [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 > [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281 > [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 > [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 > [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387 > [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525 > [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 > [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 > [i915#4883]: https://gitlab.freedesktop.org/drm/intel/issues/4883 > [i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991 > [i915#5032]: https://gitlab.freedesktop.org/drm/intel/issues/5032 > [i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122 > [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 > [i915#5182]: https://gitlab.freedesktop.org/drm/intel/issues/5182 > [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 > [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257 > [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 > [i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287 > [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288 > [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289 > [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 > [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439 > [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784 > [i915#5939]: https://gitlab.freedesktop.org/drm/intel/issues/5939 > [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 > [i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117 > [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268 > [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301 > [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335 > [i915#6375]: https://gitlab.freedesktop.org/drm/intel/issues/6375 > [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433 > [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524 > [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 > [i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590 > [i915#6599]: https://gitlab.freedesktop.org/drm/intel/issues/6599 > > > Build changes > ------------- > > * Linux: CI_DRM_12061 -> Patchwork_108040v1 > > CI-20190529: 20190529 > CI_DRM_12061: d25f068998ce803ef0a05883616344c0afcbc55a @ git://anongit.freedesktop.org/gfx-ci/linux > IGT_6639: ba61c48dba71d5597d7297a07dc3e307665f961b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git > Patchwork_108040v1: d25f068998ce803ef0a05883616344c0afcbc55a @ git://anongit.freedesktop.org/gfx-ci/linux > piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit > > == Logs == > > For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_108040v1/index.html
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c index 13abe2b2170e7..7713c19042f34 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c @@ -315,11 +315,8 @@ intel_dp_mst_atomic_check(struct drm_connector *connector, struct drm_atomic_state *_state) { struct intel_atomic_state *state = to_intel_atomic_state(_state); - struct drm_connector_state *old_conn_state = - drm_atomic_get_old_connector_state(&state->base, connector); struct intel_connector *intel_connector = to_intel_connector(connector); - struct drm_dp_mst_topology_mgr *mgr; int ret; ret = intel_digital_connector_atomic_check(connector, &state->base); @@ -330,8 +327,9 @@ intel_dp_mst_atomic_check(struct drm_connector *connector, if (ret) return ret; - mgr = &enc_to_mst(to_intel_encoder(old_conn_state->best_encoder))->primary->dp.mst_mgr; - return drm_dp_atomic_release_time_slots(&state->base, mgr, intel_connector->port); + return drm_dp_atomic_release_time_slots(&state->base, + &intel_connector->mst_port->mst_mgr, + intel_connector->port); } static void clear_act_sent(struct intel_encoder *encoder,
If an MST connector was disabled in the old state during a commit, the connector's best_encoder will be NULL, so we can't look up mst_mgr via it. Do the lookup instead via intel_connector->mst_port which always points to the primary encoder. This fixes the following: [ 58.922866] BUG: kernel NULL pointer dereference, address: 0000000000000170 [ 58.922867] #PF: supervisor read access in kernel mode [ 58.922868] #PF: error_code(0x0000) - not-present page [ 58.922869] PGD 0 P4D 0 [ 58.922870] Oops: 0000 [#1] PREEMPT SMP NOPTI [ 58.922872] CPU: 0 PID: 133 Comm: kworker/0:2 Tainted: G U 6.0.0-rc3-imre+ #560 [ 58.922874] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR5 RVP, BIOS ADLPFWI1.R00.3135.A00.2203251419 03/25/2022 [ 58.922874] Workqueue: events output_poll_execute [drm_kms_helper] [ 58.922879] RIP: 0010:intel_dp_mst_atomic_check+0xbb/0x1c0 [i915] [ 58.922955] Code: 5b 7b f6 ff 84 c0 75 41 48 8b 44 24 18 65 48 2b 04 25 28 00 00 00 0f 85 ff 00 00 00 48 8b 45 10 48 8b 93 10 07 00 00 4c 89 e7 <48> 8b b0 70 01 00 00 48 83 c4 20 5b 5d 48 81 c6 f0 0c 00 00 41 5c [ 58.922956] RSP: 0018:ffffc90000633a88 EFLAGS: 00010246 [ 58.922957] RAX: 0000000000000000 RBX: ffff888117d19000 RCX: ffff888101893308 [ 58.922958] RDX: ffff888122981000 RSI: ffffffff82309ecc RDI: ffff888114da6800 [ 58.922959] RBP: ffff8881094bab48 R08: 0000000081917436 R09: 0000000068191743 [ 58.922960] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888114da6800 [ 58.922960] R13: ffff8881143f8000 R14: 0000000000000000 R15: ffff888119bf2000 [ 58.922961] FS: 0000000000000000(0000) GS:ffff888496200000(0000) knlGS:0000000000000000 [ 58.922962] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 58.922962] CR2: 0000000000000170 CR3: 0000000005612004 CR4: 0000000000770ef0 [ 58.922963] PKRU: 55555554 [ 58.922963] Call Trace: [ 58.922964] <TASK> [ 58.922966] drm_atomic_helper_check_modeset+0x3f8/0xc70 [drm_kms_helper] [ 58.922972] intel_atomic_check+0xb1/0x3180 [i915] [ 58.923059] ? find_held_lock+0x2b/0x80 [ 58.923064] drm_atomic_check_only+0x5d3/0xa60 [drm] [ 58.923082] drm_atomic_commit+0x56/0xc0 [drm] [ 58.923097] ? drm_plane_get_damage_clips.cold+0x1c/0x1c [drm] [ 58.923114] drm_client_modeset_commit_atomic+0x235/0x280 [drm] [ 58.923132] drm_client_modeset_commit_locked+0x5b/0x190 [drm] [ 58.923148] drm_client_modeset_commit+0x24/0x50 [drm] [ 58.923164] drm_fb_helper_set_par+0xae/0xe0 [drm_kms_helper] [ 58.923171] drm_fb_helper_hotplug_event+0xd5/0xf0 [drm_kms_helper] [ 58.923178] output_poll_execute+0xac/0x200 [drm_kms_helper] [ 58.923187] process_one_work+0x268/0x580 [ 58.923190] ? process_one_work+0x580/0x580 [ 58.923191] worker_thread+0x52/0x3b0 [ 58.923193] ? process_one_work+0x580/0x580 [ 58.923195] kthread+0xf0/0x120 [ 58.923196] ? kthread_complete_and_exit+0x20/0x20 [ 58.923198] ret_from_fork+0x1f/0x30 [ 58.923202] </TASK> Fixes: ffac9721939d ("drm/display/dp_mst: Don't open code modeset checks for releasing time slots") Cc: Lyude Paul <lyude@redhat.com> Signed-off-by: Imre Deak <imre.deak@intel.com> --- drivers/gpu/drm/i915/display/intel_dp_mst.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)