drm/i915/sdvo: kfree the intel_sdvo_connector, not drm_connector, on destroy
authorJani Nikula <jani.nikula@intel.com>
Mon, 12 Nov 2012 16:31:36 +0000 (18:31 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 22 Nov 2012 13:10:19 +0000 (14:10 +0100)
Since the base fields in both struct intel_connector and struct
intel_sdvo_connector are at the beginning of the enclosing struct, the
pointers are essentially the same, but there is no requirement or guarantee
that this is always the case. Kfree the enclosing intel_sdvo_connector
pointer that was originally allocated, not the enclosed drm_connector, in
case someone ever rearranges the structs.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_sdvo.c

index d85ebb0a83e92aaf4197fc52f40466708e34841f..a4bee83df745d59b170ecb70cfcebed98a7d2695 100644 (file)
@@ -1832,7 +1832,7 @@ static void intel_sdvo_destroy(struct drm_connector *connector)
        intel_sdvo_destroy_enhance_property(connector);
        drm_sysfs_connector_remove(connector);
        drm_connector_cleanup(connector);
-       kfree(connector);
+       kfree(intel_sdvo_connector);
 }
 
 static bool intel_sdvo_detect_hdmi_audio(struct drm_connector *connector)