drm/gma500: Free the correct connector allocation
The allocation is made for the gma_connector object so we must use the same address when free()ing the object. Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20220322131742.11566-5-patrik.r.jakobsson@gmail.com
This commit is contained in:
parent
9f8308f4c9
commit
12e67cca85
@ -191,11 +191,12 @@ static enum drm_connector_status cdv_intel_crt_detect(
|
||||
|
||||
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)
|
||||
|
@ -1857,6 +1857,7 @@ done:
|
||||
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;
|
||||
|
||||
@ -1867,7 +1868,7 @@ cdv_intel_dp_destroy(struct drm_connector *connector)
|
||||
}
|
||||
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 = {
|
||||
|
@ -242,11 +242,12 @@ static enum drm_mode_status cdv_hdmi_mode_valid(struct drm_connector *connector,
|
||||
|
||||
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 = {
|
||||
|
@ -326,11 +326,12 @@ static int cdv_intel_lvds_get_modes(struct drm_connector *connector)
|
||||
*/
|
||||
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,
|
||||
|
@ -521,12 +521,13 @@ static int psb_intel_lvds_get_modes(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,
|
||||
|
@ -1542,8 +1542,10 @@ static int psb_intel_sdvo_get_modes(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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user