Hi,

[ I'm the new Maintainer of fbdev. ]

On Friday, November 11, 2016 05:54:50 PM Sachin Shukla wrote:
> From: "Sachin Shukla" <sachin...@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...@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

Reply via email to