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

Commit 1501a65e authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm/msm/dsi-staging: fix memory leak issue in get modes call"

parents 745301f7 b7b86589
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -5219,13 +5219,13 @@ int dsi_display_get_modes(struct dsi_display *display,

	mutex_lock(&display->display_lock);

	if (display->modes)
		goto exit;

	rc = dsi_display_get_mode_count_no_lock(display, &total_mode_count);
	if (rc)
		goto error;

	/* free any previously probed modes */
	kfree(display->modes);

	display->modes = kcalloc(total_mode_count, sizeof(*display->modes),
			GFP_KERNEL);
	if (!display->modes) {
@@ -5304,6 +5304,7 @@ int dsi_display_get_modes(struct dsi_display *display,
		}
	}

exit:
	*out_modes = display->modes;
	rc = 0;

+7 −1
Original line number Diff line number Diff line
@@ -602,6 +602,7 @@ void dsi_connector_put_modes(struct drm_connector *connector,
{
	struct drm_display_mode *drm_mode;
	struct dsi_display_mode dsi_mode;
	struct dsi_display *dsi_display;

	if (!connector || !display)
		return;
@@ -610,6 +611,11 @@ void dsi_connector_put_modes(struct drm_connector *connector,
		convert_to_dsi_mode(drm_mode, &dsi_mode);
		dsi_display_put_mode(display, &dsi_mode);
	}

	/* free the display structure modes also */
	dsi_display = display;
	kfree(dsi_display->modes);
	dsi_display->modes = NULL;
}

int dsi_connector_get_modes(struct drm_connector *connector,