diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-09-03 21:25:57 +0200 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2015-03-24 12:33:25 +0100 |
commit | f7c5f5d9e25dc524f1cdc6cf821400ac29dae486 (patch) | |
tree | 6b9f6b01511f65f80c51f80db07648cb58301283 /drivers/gpu/drm/omapdrm/omap_plane.c | |
parent | drm/omap: add pin refcounting to omap_framebuffer (diff) | |
download | linux-f7c5f5d9e25dc524f1cdc6cf821400ac29dae486.tar.xz linux-f7c5f5d9e25dc524f1cdc6cf821400ac29dae486.zip |
drm/omap: add a comment why locking is missing
unpin_worker() calls omap_framebuffer_unpin() without any locks, which
looks very suspicious. However, both pin and unpin are always called via
the driver's private workqueue, so the access is synchronized that way.
Add a comment to make this clear.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_plane.c')
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_plane.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c index e03512c86bf8..6eedca107376 100644 --- a/drivers/gpu/drm/omapdrm/omap_plane.c +++ b/drivers/gpu/drm/omapdrm/omap_plane.c @@ -71,6 +71,10 @@ static void omap_plane_unpin_worker(struct drm_flip_work *work, void *val) container_of(work, struct omap_plane, unpin_work); struct drm_device *dev = omap_plane->base.dev; + /* + * omap_framebuffer_pin/unpin are always called from priv->wq, + * so there's no need for locking here. + */ omap_framebuffer_unpin(val); mutex_lock(&dev->mode_config.mutex); drm_framebuffer_unreference(val); |