diff options
| author | Dhaval Patel <pdhaval@quicinc.com> | 2017-01-04 11:12:13 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-01-04 11:12:13 -0800 |
| commit | 8a3ab628fa5811890e6de321d8a38f21466ef368 (patch) | |
| tree | fb26c992f34de121c896a35dfc1830d994b11643 | |
| parent | bd1d1a54ce3329e482282f1d7cdb2929c1376f02 (diff) | |
| parent | d70e43c558bd0c0e03e890b8a3479322187494be (diff) | |
Merge "drm/msm/sde: fix check for frame event overflow" into dev/msm-4.4-drm_kms
| -rw-r--r-- | drivers/gpu/drm/msm/sde/sde_crtc.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/gpu/drm/msm/sde/sde_crtc.c b/drivers/gpu/drm/msm/sde/sde_crtc.c index 083749885473..b6a533b112c9 100644 --- a/drivers/gpu/drm/msm/sde/sde_crtc.c +++ b/drivers/gpu/drm/msm/sde/sde_crtc.c @@ -467,7 +467,6 @@ static void sde_crtc_frame_event_cb(void *data, u32 event) struct drm_crtc *crtc = (struct drm_crtc *)data; struct sde_crtc *sde_crtc; struct msm_drm_private *priv; - struct list_head *list, *next; struct sde_crtc_frame_event *fevent; unsigned long flags; int pipe_id; @@ -485,20 +484,19 @@ static void sde_crtc_frame_event_cb(void *data, u32 event) SDE_EVT32(DRMID(crtc), event); spin_lock_irqsave(&sde_crtc->spin_lock, flags); - list_for_each_safe(list, next, &sde_crtc->frame_event_list) { - list_del_init(list); - break; - } + fevent = list_first_entry_or_null(&sde_crtc->frame_event_list, + struct sde_crtc_frame_event, list); + if (fevent) + list_del_init(&fevent->list); spin_unlock_irqrestore(&sde_crtc->spin_lock, flags); - if (!list) { + if (!fevent) { SDE_ERROR("crtc%d event %d overflow\n", crtc->base.id, event); SDE_EVT32(DRMID(crtc), event); return; } - fevent = container_of(list, struct sde_crtc_frame_event, list); fevent->event = event; fevent->crtc = crtc; fevent->ts = ktime_get(); |
