Skip to content

Commit

Permalink
OMAP: DSS2: fix lock_fb_info() and omapfb_lock() locking order
Browse files Browse the repository at this point in the history
Framebuffer ioctl processing forces lock_fb_info() -> omapfb_lock()
locking order. Follow that order to avoid possible circular locking
dependency, detected by lockdep.

Signed-off-by: Jani Nikula <ext-jani.1.nikula@nokia.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
  • Loading branch information
Jani Nikula authored and Tomi Valkeinen committed May 18, 2010
1 parent 508886c commit 238a413
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions drivers/video/omap2/omapfb/omapfb-ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,13 +183,13 @@ int omapfb_update_window(struct fb_info *fbi,
struct omapfb2_device *fbdev = ofbi->fbdev;
int r;

omapfb_lock(fbdev);
lock_fb_info(fbi);
omapfb_lock(fbdev);

r = omapfb_update_window_nolock(fbi, x, y, w, h);

unlock_fb_info(fbi);
omapfb_unlock(fbdev);
unlock_fb_info(fbi);

return r;
}
Expand Down
8 changes: 4 additions & 4 deletions drivers/video/omap2/omapfb/omapfb-sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,8 @@ static ssize_t show_overlays(struct device *dev,
ssize_t l = 0;
int t;

omapfb_lock(fbdev);
lock_fb_info(fbi);
omapfb_lock(fbdev);

for (t = 0; t < ofbi->num_overlays; t++) {
struct omap_overlay *ovl = ofbi->overlays[t];
Expand All @@ -154,8 +154,8 @@ static ssize_t show_overlays(struct device *dev,

l += snprintf(buf + l, PAGE_SIZE - l, "\n");

unlock_fb_info(fbi);
omapfb_unlock(fbdev);
unlock_fb_info(fbi);

return l;
}
Expand Down Expand Up @@ -195,8 +195,8 @@ static ssize_t store_overlays(struct device *dev, struct device_attribute *attr,
if (buf[len - 1] == '\n')
len = len - 1;

omapfb_lock(fbdev);
lock_fb_info(fbi);
omapfb_lock(fbdev);

if (len > 0) {
char *p = (char *)buf;
Expand Down Expand Up @@ -303,8 +303,8 @@ static ssize_t store_overlays(struct device *dev, struct device_attribute *attr,

r = count;
out:
unlock_fb_info(fbi);
omapfb_unlock(fbdev);
unlock_fb_info(fbi);

return r;
}
Expand Down

0 comments on commit 238a413

Please sign in to comment.