diff mbox

Video: fbdev: Remove impossible condition.

Message ID 1478867090-2108-1-git-send-email-sachin.s5@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sachin Shukla Nov. 11, 2016, 12:24 p.m. UTC
From: "Sachin Shukla" <sachin.s5@samsung.com>

xoffset and yoffset of struct fb_var_screeninfo are unsigned and so
they can never be less than 0.

Signed-off-by: Sachin Shukla <sachin.s5@samsung.com>
---
 drivers/video/fbdev/amifb.c      |    8 +++-----
 drivers/video/fbdev/fsl-diu-fb.c |    9 +--------
 2 files changed, 4 insertions(+), 13 deletions(-)

Comments

Timur Tabi Nov. 11, 2016, 2:49 p.m. UTC | #1
Sachin Shukla wrote:
> From: "Sachin Shukla"<sachin.s5@samsung.com>
>
> xoffset and yoffset of struct fb_var_screeninfo are unsigned and so
> they can never be less than 0.
>
> Signed-off-by: Sachin Shukla<sachin.s5@samsung.com>

fsl-diu-fb portion:

Acked-by: Timur Tabi <timur@tabi.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bartlomiej Zolnierkiewicz Feb. 8, 2017, 3:37 p.m. UTC | #2
Hi,

[ I'm the new Maintainer of fbdev. ]

On Friday, November 11, 2016 05:54:50 PM Sachin Shukla wrote:
> From: "Sachin Shukla" <sachin.s5@samsung.com>
> 
> xoffset and yoffset of struct fb_var_screeninfo are unsigned and so
> they can never be less than 0.
> 
> Signed-off-by: Sachin Shukla <sachin.s5@samsung.com>

Thanks, I split the patch on amifb and fsl-diu-fb parts and
queued them for 4.11 kernel (+ Timur's ACK has been added
to fsl-diu-fb patch).

> ---
>  drivers/video/fbdev/amifb.c      |    8 +++-----
>  drivers/video/fbdev/fsl-diu-fb.c |    9 +--------
>  2 files changed, 4 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c
> index 1d702e1..cc11c60 100644
> --- a/drivers/video/fbdev/amifb.c
> +++ b/drivers/video/fbdev/amifb.c
> @@ -1484,13 +1484,11 @@ static int ami_decode_var(struct fb_var_screeninfo *var, struct amifb_par *par,
>  		par->xoffset = var->xoffset;
>  		par->yoffset = var->yoffset;
>  		if (par->vmode & FB_VMODE_YWRAP) {
> -			if (par->xoffset || par->yoffset < 0 ||
> -			    par->yoffset >= par->vyres)
> +			if (par->yoffset >= par->vyres)
>  				par->xoffset = par->yoffset = 0;
>  		} else {
> -			if (par->xoffset < 0 ||
> -			    par->xoffset > upx(16 << maxfmode, par->vxres - par->xres) ||
> -			    par->yoffset < 0 || par->yoffset > par->vyres - par->yres)
> +			if (par->xoffset > upx(16 << maxfmode, par->vxres - par->xres) ||
> +			    par->yoffset > par->vyres - par->yres)
>  				par->xoffset = par->yoffset = 0;
>  		}
>  	} else
> diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c
> index fe00a07..c48a59e 100644
> --- a/drivers/video/fbdev/fsl-diu-fb.c
> +++ b/drivers/video/fbdev/fsl-diu-fb.c
> @@ -703,12 +703,6 @@ static int fsl_diu_check_var(struct fb_var_screeninfo *var,
>  	if (var->yres_virtual < var->yres)
>  		var->yres_virtual = var->yres;
>  
> -	if (var->xoffset < 0)
> -		var->xoffset = 0;
> -
> -	if (var->yoffset < 0)
> -		var->yoffset = 0;
> -
>  	if (var->xoffset + info->var.xres > info->var.xres_virtual)
>  		var->xoffset = info->var.xres_virtual - info->var.xres;
>  
> @@ -1254,8 +1248,7 @@ static int fsl_diu_pan_display(struct fb_var_screeninfo *var,
>  	    (info->var.yoffset == var->yoffset))
>  		return 0;	/* No change, do nothing */
>  
> -	if (var->xoffset < 0 || var->yoffset < 0
> -	    || var->xoffset + info->var.xres > info->var.xres_virtual
> +	if (var->xoffset + info->var.xres > info->var.xres_virtual
>  	    || var->yoffset + info->var.yres > info->var.yres_virtual)
>  		return -EINVAL;

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
diff mbox

Patch

diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c
index 1d702e1..cc11c60 100644
--- a/drivers/video/fbdev/amifb.c
+++ b/drivers/video/fbdev/amifb.c
@@ -1484,13 +1484,11 @@  static int ami_decode_var(struct fb_var_screeninfo *var, struct amifb_par *par,
 		par->xoffset = var->xoffset;
 		par->yoffset = var->yoffset;
 		if (par->vmode & FB_VMODE_YWRAP) {
-			if (par->xoffset || par->yoffset < 0 ||
-			    par->yoffset >= par->vyres)
+			if (par->yoffset >= par->vyres)
 				par->xoffset = par->yoffset = 0;
 		} else {
-			if (par->xoffset < 0 ||
-			    par->xoffset > upx(16 << maxfmode, par->vxres - par->xres) ||
-			    par->yoffset < 0 || par->yoffset > par->vyres - par->yres)
+			if (par->xoffset > upx(16 << maxfmode, par->vxres - par->xres) ||
+			    par->yoffset > par->vyres - par->yres)
 				par->xoffset = par->yoffset = 0;
 		}
 	} else
diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c
index fe00a07..c48a59e 100644
--- a/drivers/video/fbdev/fsl-diu-fb.c
+++ b/drivers/video/fbdev/fsl-diu-fb.c
@@ -703,12 +703,6 @@  static int fsl_diu_check_var(struct fb_var_screeninfo *var,
 	if (var->yres_virtual < var->yres)
 		var->yres_virtual = var->yres;
 
-	if (var->xoffset < 0)
-		var->xoffset = 0;
-
-	if (var->yoffset < 0)
-		var->yoffset = 0;
-
 	if (var->xoffset + info->var.xres > info->var.xres_virtual)
 		var->xoffset = info->var.xres_virtual - info->var.xres;
 
@@ -1254,8 +1248,7 @@  static int fsl_diu_pan_display(struct fb_var_screeninfo *var,
 	    (info->var.yoffset == var->yoffset))
 		return 0;	/* No change, do nothing */
 
-	if (var->xoffset < 0 || var->yoffset < 0
-	    || var->xoffset + info->var.xres > info->var.xres_virtual
+	if (var->xoffset + info->var.xres > info->var.xres_virtual
 	    || var->yoffset + info->var.yres > info->var.yres_virtual)
 		return -EINVAL;