Re: [PATCH] Video: fbdev: Remove impossible condition.

From: Bartlomiej Zolnierkiewicz
Date: Wed Feb 08 2017 - 10:38:34 EST



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@xxxxxxxxxxx>
>
> 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@xxxxxxxxxxx>

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