static void cdv_intel_crt_destroy(struct drm_connector *connector)
 {
+       struct gma_connector *gma_connector = to_gma_connector(connector);
        struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
 
        psb_intel_i2c_destroy(gma_encoder->ddc_bus);
        drm_connector_cleanup(connector);
-       kfree(connector);
+       kfree(gma_connector);
 }
 
 static int cdv_intel_crt_get_modes(struct drm_connector *connector)
 
 static void
 cdv_intel_dp_destroy(struct drm_connector *connector)
 {
+       struct gma_connector *gma_connector = to_gma_connector(connector);
        struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
        struct cdv_intel_dp *intel_dp = gma_encoder->dev_priv;
 
        }
        i2c_del_adapter(&intel_dp->adapter);
        drm_connector_cleanup(connector);
-       kfree(connector);
+       kfree(gma_connector);
 }
 
 static const struct drm_encoder_helper_funcs cdv_intel_dp_helper_funcs = {
 
 
 static void cdv_hdmi_destroy(struct drm_connector *connector)
 {
+       struct gma_connector *gma_connector = to_gma_connector(connector);
        struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
 
        psb_intel_i2c_destroy(gma_encoder->i2c_bus);
        drm_connector_cleanup(connector);
-       kfree(connector);
+       kfree(gma_connector);
 }
 
 static const struct drm_encoder_helper_funcs cdv_hdmi_helper_funcs = {
 
  */
 static void cdv_intel_lvds_destroy(struct drm_connector *connector)
 {
+       struct gma_connector *gma_connector = to_gma_connector(connector);
        struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
 
        psb_intel_i2c_destroy(gma_encoder->i2c_bus);
        drm_connector_cleanup(connector);
-       kfree(connector);
+       kfree(gma_connector);
 }
 
 static int cdv_intel_lvds_set_property(struct drm_connector *connector,
 
  */
 void psb_intel_lvds_destroy(struct drm_connector *connector)
 {
+       struct gma_connector *gma_connector = to_gma_connector(connector);
        struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
        struct psb_intel_lvds_priv *lvds_priv = gma_encoder->dev_priv;
 
        psb_intel_i2c_destroy(lvds_priv->ddc_bus);
        drm_connector_cleanup(connector);
-       kfree(connector);
+       kfree(gma_connector);
 }
 
 int psb_intel_lvds_set_property(struct drm_connector *connector,
 
 
 static void psb_intel_sdvo_destroy(struct drm_connector *connector)
 {
+       struct gma_connector *gma_connector = to_gma_connector(connector);
+
        drm_connector_cleanup(connector);
-       kfree(connector);
+       kfree(gma_connector);
 }
 
 static bool psb_intel_sdvo_detect_hdmi_audio(struct drm_connector *connector)