drm/i915: Fix NULL ptr deref by checking new_crtc_state
intel_atomic_get_new_crtc_state can return NULL, unless crtc state wasn't
obtained previously with intel_atomic_get_crtc_state, so we must check it
for NULLness here, just as in many other places, where we can't guarantee
that intel_atomic_get_crtc_state was called.
We are currently getting NULL ptr deref because of that, so this fix was
confirmed to help.
Fixes: 74a75dc908
("drm/i915/display: move plane prepare/cleanup to intel_atomic_plane.c")
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230505082212.27089-1-stanislav.lisovskiy@intel.com
This commit is contained in:
parent
ceb0cc3b42
commit
1d5b09f8da
1 changed files with 2 additions and 2 deletions
|
@ -1029,7 +1029,7 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (old_obj) {
|
if (old_obj) {
|
||||||
const struct intel_crtc_state *crtc_state =
|
const struct intel_crtc_state *new_crtc_state =
|
||||||
intel_atomic_get_new_crtc_state(state,
|
intel_atomic_get_new_crtc_state(state,
|
||||||
to_intel_crtc(old_plane_state->hw.crtc));
|
to_intel_crtc(old_plane_state->hw.crtc));
|
||||||
|
|
||||||
|
@ -1044,7 +1044,7 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
|
||||||
* This should only fail upon a hung GPU, in which case we
|
* This should only fail upon a hung GPU, in which case we
|
||||||
* can safely continue.
|
* can safely continue.
|
||||||
*/
|
*/
|
||||||
if (intel_crtc_needs_modeset(crtc_state)) {
|
if (new_crtc_state && intel_crtc_needs_modeset(new_crtc_state)) {
|
||||||
ret = i915_sw_fence_await_reservation(&state->commit_ready,
|
ret = i915_sw_fence_await_reservation(&state->commit_ready,
|
||||||
old_obj->base.resv,
|
old_obj->base.resv,
|
||||||
false, 0,
|
false, 0,
|
||||||
|
|
Loading…
Add table
Reference in a new issue