struct omapfb2_device *fbdev = ofbi->fbdev;
        int r;
 
-       lock_fb_info(fbi);
+       if (!lock_fb_info(fbi))
+               return -ENODEV;
        omapfb_lock(fbdev);
 
        r = omapfb_update_window_nolock(fbi, x, y, w, h);
 
        if (rot_type != OMAP_DSS_ROT_DMA && rot_type != OMAP_DSS_ROT_VRFB)
                return -EINVAL;
 
-       lock_fb_info(fbi);
+       if (!lock_fb_info(fbi))
+               return -ENODEV;
 
        r = 0;
        if (rot_type == ofbi->rotation_type)
        if (mirror != 0 && mirror != 1)
                return -EINVAL;
 
-       lock_fb_info(fbi);
+       if (!lock_fb_info(fbi))
+               return -ENODEV;
 
        ofbi->mirror = mirror;
 
        ssize_t l = 0;
        int t;
 
-       lock_fb_info(fbi);
+       if (!lock_fb_info(fbi))
+               return -ENODEV;
        omapfb_lock(fbdev);
 
        for (t = 0; t < ofbi->num_overlays; t++) {
        if (buf[len - 1] == '\n')
                len = len - 1;
 
-       lock_fb_info(fbi);
+       if (!lock_fb_info(fbi))
+               return -ENODEV;
        omapfb_lock(fbdev);
 
        if (len > 0) {
        ssize_t l = 0;
        int t;
 
-       lock_fb_info(fbi);
+       if (!lock_fb_info(fbi))
+               return -ENODEV;
 
        for (t = 0; t < ofbi->num_overlays; t++) {
                l += snprintf(buf + l, PAGE_SIZE - l, "%s%d",
        if (buf[len - 1] == '\n')
                len = len - 1;
 
-       lock_fb_info(fbi);
+       if (!lock_fb_info(fbi))
+               return -ENODEV;
 
        if (len > 0) {
                char *p = (char *)buf;
 
        size = PAGE_ALIGN(simple_strtoul(buf, NULL, 0));
 
-       lock_fb_info(fbi);
+       if (!lock_fb_info(fbi))
+               return -ENODEV;
 
        for (i = 0; i < ofbi->num_overlays; i++) {
                if (ofbi->overlays[i]->info.enabled) {