On Tue, Dec 08, 2015 at 02:48:51PM -0800, Matt Roper wrote: > In all of our various SDVO setup functions, we allocate an SDVO > connector (along with an associated connector->state) object, then > perform initialization. If that initialization fails, we need to make > sure to free the state object as well as the connector. > > Signed-off-by: Matt Roper <matthew.d.roper@xxxxxxxxx> Where do we alloc connector->state in sdvo_connector_init()? I thought the flow is 1) register all the kms objects with our pile of _init() functions 2) do hw readout, which is the thing which creates all these states. None of the other connectors seem to have this issue (or at least I don't see a patch for them). -Daniel > --- > drivers/gpu/drm/i915/intel_sdvo.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c > index 06679f1..ff28867 100644 > --- a/drivers/gpu/drm/i915/intel_sdvo.c > +++ b/drivers/gpu/drm/i915/intel_sdvo.c > @@ -2479,6 +2479,8 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, int device) > } > > if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { > + drm_atomic_helper_connector_destroy_state(connector, > + connector->state); > kfree(intel_sdvo_connector); > return false; > } > @@ -2514,6 +2516,8 @@ intel_sdvo_tv_init(struct intel_sdvo *intel_sdvo, int type) > intel_sdvo->is_tv = true; > > if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { > + drm_atomic_helper_connector_destroy_state(connector, > + connector->state); > kfree(intel_sdvo_connector); > return false; > } > @@ -2561,6 +2565,8 @@ intel_sdvo_analog_init(struct intel_sdvo *intel_sdvo, int device) > } > > if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { > + drm_atomic_helper_connector_destroy_state(connector, > + connector->state); > kfree(intel_sdvo_connector); > return false; > } > @@ -2596,6 +2602,8 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device) > } > > if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { > + drm_atomic_helper_connector_destroy_state(connector, > + connector->state); > kfree(intel_sdvo_connector); > return false; > } > -- > 2.1.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx