]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/video/fbmem.c
mac80211: fix sparse integer as NULL pointer warning
[linux-2.6-omap-h63xx.git] / drivers / video / fbmem.c
index 776f7fcd2fbf4f508a0bb72398391aeb8f5a32d0..6b487801eeaedc96e8b65a330363156e32452f6c 100644 (file)
@@ -848,9 +848,8 @@ int
 fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var)
 {
        struct fb_fix_screeninfo *fix = &info->fix;
-        int xoffset = var->xoffset;
-        int yoffset = var->yoffset;
-        int err = 0, yres = info->var.yres;
+       unsigned int yres = info->var.yres;
+       int err = 0;
 
        if (var->yoffset > 0) {
                if (var->vmode & FB_VMODE_YWRAP) {
@@ -866,8 +865,8 @@ fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var)
                                 (var->xoffset % fix->xpanstep)))
                err = -EINVAL;
 
-        if (err || !info->fbops->fb_pan_display || xoffset < 0 ||
-           yoffset < 0 || var->yoffset + yres > info->var.yres_virtual ||
+       if (err || !info->fbops->fb_pan_display ||
+           var->yoffset + yres > info->var.yres_virtual ||
            var->xoffset + info->var.xres > info->var.xres_virtual)
                return -EINVAL;
 
@@ -1326,20 +1325,27 @@ fb_open(struct inode *inode, struct file *file)
 
        if (fbidx >= FB_MAX)
                return -ENODEV;
+       lock_kernel();
 #ifdef CONFIG_KMOD
        if (!(info = registered_fb[fbidx]))
                try_to_load(fbidx);
 #endif /* CONFIG_KMOD */
-       if (!(info = registered_fb[fbidx]))
-               return -ENODEV;
-       if (!try_module_get(info->fbops->owner))
-               return -ENODEV;
+       if (!(info = registered_fb[fbidx])) {
+               res = -ENODEV;
+               goto out;
+       }
+       if (!try_module_get(info->fbops->owner)) {
+               res = -ENODEV;
+               goto out;
+       }
        file->private_data = info;
        if (info->fbops->fb_open) {
                res = info->fbops->fb_open(info,1);
                if (res)
                        module_put(info->fbops->owner);
        }
+out:
+       unlock_kernel();
        return res;
 }
 
@@ -1432,8 +1438,9 @@ register_framebuffer(struct fb_info *fb_info)
                        break;
        fb_info->node = i;
 
-       fb_info->dev = device_create(fb_class, fb_info->device,
-                                    MKDEV(FB_MAJOR, i), "fb%d", i);
+       fb_info->dev = device_create_drvdata(fb_class, fb_info->device,
+                                            MKDEV(FB_MAJOR, i), NULL,
+                                            "fb%d", i);
        if (IS_ERR(fb_info->dev)) {
                /* Not fatal */
                printk(KERN_WARNING "Unable to create device for framebuffer %d; errno = %ld\n", i, PTR_ERR(fb_info->dev));