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

Commit 17a95ce2 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/sde: fix race condition between enable/disable events"

parents 1d35e8b2 15d2f446
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -6186,6 +6186,7 @@ static int _sde_crtc_event_disable(struct sde_kms *kms,
	spin_lock_irqsave(&crtc->spin_lock, flags);
	list_for_each_entry(node, &crtc->user_event_list, list) {
		if (node->event == event) {
			list_del(&node->list);
			found = true;
			break;
		}
@@ -6201,7 +6202,6 @@ static int _sde_crtc_event_disable(struct sde_kms *kms,
	 * no need to disable/de-register.
	 */
	if (!crtc_drm->enabled) {
		list_del(&node->list);
		kfree(node);
		return 0;
	}
@@ -6210,13 +6210,11 @@ static int _sde_crtc_event_disable(struct sde_kms *kms,
	if (ret) {
		SDE_ERROR("failed to enable power resource %d\n", ret);
		SDE_EVT32(ret, SDE_EVTLOG_ERROR);
		list_del(&node->list);
		kfree(node);
		return ret;
	}

	ret = node->func(crtc_drm, false, &node->irq);
	list_del(&node->list);
	kfree(node);
	sde_power_resource_enable(&priv->phandle, kms->core_client, false);
	return ret;