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

Commit 021a8455 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm: Avoid leak of adjusted mode along quick set_mode paths

parent ede3ff52
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -343,13 +343,12 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
	struct drm_encoder *encoder;
	bool ret = true;

	adjusted_mode = drm_mode_duplicate(dev, mode);

	crtc->enabled = drm_helper_crtc_in_use(crtc);

	if (!crtc->enabled)
		return true;

	adjusted_mode = drm_mode_duplicate(dev, mode);

	saved_hwmode = crtc->hwmode;
	saved_mode = crtc->mode;
	saved_x = crtc->x;
@@ -437,10 +436,9 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
	 */
	drm_calc_timestamping_constants(crtc);

	/* XXX free adjustedmode */
	drm_mode_destroy(dev, adjusted_mode);
	/* FIXME: add subpixel order */
done:
	drm_mode_destroy(dev, adjusted_mode);
	if (!ret) {
		crtc->hwmode = saved_hwmode;
		crtc->mode = saved_mode;