--- a/sys/dev/drm/i915/intel_sdvo.c +++ b/sys/dev/drm/i915/intel_sdvo.c @@ -2539,6 +2539,9 @@ } if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { + drm_atomic_helper_connector_destroy_state( + &intel_sdvo_connector->base.base, + intel_sdvo_connector->base.base.state); kfree(intel_sdvo_connector); return false; } @@ -2572,6 +2575,9 @@ intel_sdvo_connector->output_flag = type; if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { + drm_atomic_helper_connector_destroy_state( + &intel_sdvo_connector->base.base, + intel_sdvo_connector->base.base.state); kfree(intel_sdvo_connector); return false; } @@ -2618,6 +2624,9 @@ } if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { + drm_atomic_helper_connector_destroy_state( + &intel_sdvo_connector->base.base, + intel_sdvo_connector->base.base.state); kfree(intel_sdvo_connector); return false; } @@ -2654,6 +2663,9 @@ } if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { + drm_atomic_helper_connector_destroy_state( + &intel_sdvo_connector->base.base, + intel_sdvo_connector->base.base.state); kfree(intel_sdvo_connector); return false; }