Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55bde5b2 authored by Jakob Bornecrantz's avatar Jakob Bornecrantz Committed by Dave Airlie
Browse files

vmwgfx: Free prefered mode on error path

parent d9826409
Loading
Loading
Loading
Loading
+11 −6
Original line number Original line Diff line number Diff line
@@ -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];