DragonFlyBSD Kernel Audit
DF-1153 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
--- a/sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -2966,8 +2966,10 @@
 		dm_crtc_destroy_state(crtc, crtc->state);
 
 	state = kzalloc(sizeof(*state), GFP_KERNEL);
-	if (WARN_ON(!state))
+	if (WARN_ON(!state)) {
+		crtc->state = NULL;
 		return;
+	}
 
 	crtc->state = &state->base;
 	crtc->state->crtc = crtc;
@@ -3207,6 +3209,8 @@
 		state->max_bpc = 8;
 
 		__drm_atomic_helper_connector_reset(connector, &state->base);
+	} else {
+		connector->state = NULL;
 	}
 }
 
@@ -3437,6 +3441,8 @@
 		plane->state = &amdgpu_state->base;
 		plane->state->plane = plane;
 		plane->state->rotation = DRM_MODE_ROTATE_0;
+	} else {
+		plane->state = NULL;
 	}
 }