fbdev: Clean up exit patch of fb_set_var
PATCH 1/20 fbdev: Clean up exit patch of fb_set_var
Clean up exit patch of fb_set_var():
- consolidate all return values into a single local variable
- ensure that return values are valid error codes
- fix fb_set_var() returning success when fb_check_caps() failed
Signed-off-by Antonino Daplas <[email protected]>
---
drivers/video/fbmem.c | 29 +++++++++++++++-------------- 1 files changed, 15 insertions(+), 14 deletions(-)
drivers/video/fbmem.c +15 -14
@@ -799,11 +799,11 @@ static int fb_check_caps(struct fb_infoint fb_set_var (struct fb_info *info,struct fb_var_screeninfo *var) { -int err, flags = info->flags; +int flags = info->flags; +int ret =0 ;if (var->activate &FB_ACTIVATE_INV_MODE ) {struct fb_videomode mode1, mode2; -int ret =0 ;fb_var_to_videomode (&mode1, var);fb_var_to_videomode (&mode2, &info->var);
@@ -821,7 +821,9 @@ fb_set_var(struct fb_info *info, structif (!ret)fb_delete_videomode (&mode1, &info->modelist); -return ret; + + ret = (ret) ? -EINVAL :0 ; + goto done; } if ((var->activate & FB_ACTIVATE_FORCE) ||
@@ -830,20 +832,21 @@ fb_set_var(struct fb_info *info, structif (!info->fbops->fb_check_var) { *var = info->var; -return 0 ; + goto done; } -if ((err = info->fbops->fb_check_var (var, info))) -return err; + ret = info->fbops->fb_check_var (var, info); + +if (ret) + goto done;if ((var->activate &FB_ACTIVATE_MASK ) ==FB_ACTIVATE_NOW ) {struct fb_videomode mode; -int err =0 ;if (info->fbops->fb_get_caps) { - err =fb_check_caps (info, var, activate); + ret =fb_check_caps (info, var, activate); -if (err) +if (ret) goto done; }
@@ -853,16 +856,14 @@ fb_set_var(struct fb_info *info, struct info->fbops->fb_set_par (info);fb_pan_display (info, &info->var); -fb_set_cmap (&info->cmap, info); -fb_var_to_videomode (&mode, &info->var);if (info->modelist.prev && info->modelist.next && !list_empty (&info->modelist)) - err =fb_add_videomode (&mode, &info->modelist); + ret =fb_add_videomode (&mode, &info->modelist); -if (!err && (flags &FBINFO_MISC_USEREVENT )) { +if (!ret && (flags &FBINFO_MISC_USEREVENT )) {struct fb_event event;int evnt = (activate &FB_ACTIVATE_ALL ) ? FB_EVENT_MODE_CHANGE_ALL :
@@ -876,7 +877,7 @@ fb_set_var(struct fb_info *info, struct } done: -return 0 ; +return ret; }int
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/