On 18. 10. 19, 18:17, Sudip Mukherjee wrote:
> The build of xtensa allmodconfig gives warning of:
> In function 'get_ports.isra.0':
> warning: the frame size of 1040 bytes is larger than 1024 bytes
> 
> Signed-off-by: Sudip Mukherjee <[email protected]>

Acked-by: Jiri Slaby <[email protected]>

Thanks.

> v2: check faliure of kzalloc
> 
>  drivers/tty/rocket.c | 32 +++++++++++++++++++-------------
>  1 file changed, 19 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c
> index 5ba6816ebf81..fbaa4ec85560 100644
> --- a/drivers/tty/rocket.c
> +++ b/drivers/tty/rocket.c
> @@ -1222,22 +1222,28 @@ static int set_config(struct tty_struct *tty, struct 
> r_port *info,
>   */
>  static int get_ports(struct r_port *info, struct rocket_ports __user 
> *retports)
>  {
> -     struct rocket_ports tmp;
> -     int board;
> +     struct rocket_ports *tmp;
> +     int board, ret = 0;
>  
> -     memset(&tmp, 0, sizeof (tmp));
> -     tmp.tty_major = rocket_driver->major;
> +     tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
> +     if (!tmp)
> +             return -ENOMEM;
> +
> +     tmp->tty_major = rocket_driver->major;
>  
>       for (board = 0; board < 4; board++) {
> -             tmp.rocketModel[board].model = rocketModel[board].model;
> -             strcpy(tmp.rocketModel[board].modelString, 
> rocketModel[board].modelString);
> -             tmp.rocketModel[board].numPorts = rocketModel[board].numPorts;
> -             tmp.rocketModel[board].loadrm2 = rocketModel[board].loadrm2;
> -             tmp.rocketModel[board].startingPortNumber = 
> rocketModel[board].startingPortNumber;
> -     }
> -     if (copy_to_user(retports, &tmp, sizeof (*retports)))
> -             return -EFAULT;
> -     return 0;
> +             tmp->rocketModel[board].model = rocketModel[board].model;
> +             strcpy(tmp->rocketModel[board].modelString,
> +                    rocketModel[board].modelString);
> +             tmp->rocketModel[board].numPorts = rocketModel[board].numPorts;
> +             tmp->rocketModel[board].loadrm2 = rocketModel[board].loadrm2;
> +             tmp->rocketModel[board].startingPortNumber =
> +                     rocketModel[board].startingPortNumber;
> +     }
> +     if (copy_to_user(retports, tmp, sizeof(*retports)))
> +             ret = -EFAULT;
> +     kfree(tmp);
> +     return ret;
>  }
>  
>  static int reset_rm2(struct r_port *info, void __user *arg)
> 


-- 
js
suse labs

Reply via email to