vmwgfx: Free prefered mode on error path
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com> Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Родитель
d982640914
Коммит
55bde5b215
|
@ -1710,18 +1710,23 @@ int vmw_du_connector_fill_modes(struct drm_connector *connector,
|
||||||
mode->hdisplay = du->pref_width;
|
mode->hdisplay = du->pref_width;
|
||||||
mode->vdisplay = du->pref_height;
|
mode->vdisplay = du->pref_height;
|
||||||
vmw_guess_mode_timing(mode);
|
vmw_guess_mode_timing(mode);
|
||||||
|
|
||||||
if (vmw_kms_validate_mode_vram(dev_priv, mode->hdisplay * 2,
|
if (vmw_kms_validate_mode_vram(dev_priv, mode->hdisplay * 2,
|
||||||
mode->vdisplay)) {
|
mode->vdisplay)) {
|
||||||
drm_mode_probed_add(connector, mode);
|
drm_mode_probed_add(connector, mode);
|
||||||
|
} else {
|
||||||
|
drm_mode_destroy(dev, mode);
|
||||||
|
mode = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (du->pref_mode) {
|
if (du->pref_mode) {
|
||||||
list_del_init(&du->pref_mode->head);
|
list_del_init(&du->pref_mode->head);
|
||||||
drm_mode_destroy(dev, du->pref_mode);
|
drm_mode_destroy(dev, du->pref_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* mode might be null here, this is intended */
|
||||||
du->pref_mode = mode;
|
du->pref_mode = mode;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; vmw_kms_connector_builtin[i].type != 0; i++) {
|
for (i = 0; vmw_kms_connector_builtin[i].type != 0; i++) {
|
||||||
bmode = &vmw_kms_connector_builtin[i];
|
bmode = &vmw_kms_connector_builtin[i];
|
||||||
|
|
Загрузка…
Ссылка в новой задаче