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

Commit 238a4132 authored by Jani Nikula's avatar Jani Nikula Committed by Tomi Valkeinen
Browse files

OMAP: DSS2: fix lock_fb_info() and omapfb_lock() locking order



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: default avatarJani Nikula <ext-jani.1.nikula@nokia.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@nokia.com>
parent 508886cf
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;
}
+4 −4
Original line number Diff line number Diff line
@@ -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];
@@ -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;
}
@@ -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;
@@ -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;
}