Ever since framebuffers are reference counted we have a special lock
for the global fb list. Make sure users of that list do hold that
lock when using the new iterators.

Signed-off-by: Daniel Vetter <daniel.vet...@intel.com>
---
 include/drm/drm_crtc.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index a912ba06cf45..3646c47b43de 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -1602,6 +1602,10 @@ static inline struct drm_property 
*drm_property_find(struct drm_device *dev,
             encoder = list_next_entry(encoder, head))
 
 #define drm_for_each_fb(fb, dev) \
-       list_for_each_entry(fb, &(dev)->mode_config.fb_list, head)
+       for (WARN_ON(!mutex_is_locked(&(dev)->mode_config.fb_lock)),            
\
+            fb = list_first_entry(&(dev)->mode_config.fb_list, \
+                                         struct drm_framebuffer, head);        
\
+            &fb->head != (&(dev)->mode_config.fb_list);                        
\
+            fb = list_next_entry(fb, head))
 
 #endif /* __DRM_CRTC_H__ */
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to