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

Commit 0c6fb27c authored by Vara Reddy's avatar Vara Reddy Committed by Gerrit - the friendly Code Review server
Browse files

drm/msm/dsi-staging: destroy dsi error_wq after disabling interrupts



Destroy dsi error_wq workqueue after disabling dsi interrupts.
We will hit NULL pointer dereference, when any dsi irq fires
after destroying error_wq and before disabling dsi interrupts.

CRs-Fixed: 2297926
Change-Id: I47cff928f7e2271a64f3c38209431e697a9e664e
Signed-off-by: default avatarVara Reddy <varar@codeaurora.org>
parent 8bd55c74
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -5904,7 +5904,7 @@ static int dsi_display_cb_error_handler(void *data,
{
	struct dsi_display *display =  data;

	if (!display)
	if (!display || !(display->err_workq))
		return -EINVAL;

	switch (event_idx) {
@@ -6621,9 +6621,6 @@ int dsi_display_unprepare(struct dsi_display *display)
		pr_err("[%s] failed to disable Link clocks, rc=%d\n",
		       display->name, rc);

	/* Free up DSI ERROR event callback */
	dsi_display_unregister_error_handler(display);

	rc = dsi_display_ctrl_deinit(display);
	if (rc)
		pr_err("[%s] failed to deinit controller, rc=%d\n",
@@ -6645,6 +6642,9 @@ int dsi_display_unprepare(struct dsi_display *display)
	/* destrory dsi isr set up */
	dsi_display_ctrl_isr_configure(display, false);

	/* Free up DSI ERROR event callback */
	dsi_display_unregister_error_handler(display);

	rc = dsi_panel_post_unprepare(display->panel);
	if (rc)
		pr_err("[%s] panel post-unprepare failed, rc=%d\n",