Merge tag 'fbdev-v4.13' of git://github.com/bzolnier/linux
[muen/linux.git] / drivers / video / fbdev / core / fbmem.c
index f20c5d23483c9bd51b9ebb0a989ed4a8d3ac9487..7a42238db446b0093323505b710963ac94a53e15 100644 (file)
@@ -1331,22 +1331,13 @@ static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix,
 static int fb_get_fscreeninfo(struct fb_info *info, unsigned int cmd,
                              unsigned long arg)
 {
-       mm_segment_t old_fs;
        struct fb_fix_screeninfo fix;
-       struct fb_fix_screeninfo32 __user *fix32;
-       int err;
-
-       fix32 = compat_ptr(arg);
-
-       old_fs = get_fs();
-       set_fs(KERNEL_DS);
-       err = do_fb_ioctl(info, cmd, (unsigned long) &fix);
-       set_fs(old_fs);
 
-       if (!err)
-               err = do_fscreeninfo_to_user(&fix, fix32);
-
-       return err;
+       if (!lock_fb_info(info))
+               return -ENODEV;
+       fix = info->fix;
+       unlock_fb_info(info);
+       return do_fscreeninfo_to_user(&fix, compat_ptr(arg));
 }
 
 static long fb_compat_ioctl(struct file *file, unsigned int cmd,