Re: [PATCH] media: dvb: mt352, change i2c read buffer from stack, to kernel space

From: Mauro Carvalho Chehab
Date: Fri Nov 19 2021 - 11:16:20 EST


Em Thu, 7 Oct 2021 13:44:06 +0200
rkardell <rkardell@xxxxxxx> escreveu:

> Solve problem with initialization of Mega Sky 580 USB DVB (and other
> using mt352), error when reading i2c id.

This patch is full of 0xa0 characters instead of spaces, causing it
to be rejected. Probably either your e-mailer of your text editor is doing
something wrong. Please fix and resend.

Thanks!
Mauro

>
>
> Signed-off-by: rkl099 <rkardell@xxxxxxx>
> ---
>  drivers/media/dvb-frontends/mt352.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/media/dvb-frontends/mt352.c
> b/drivers/media/dvb-frontends/mt352.c
> index 399d5c519..d7f33558d 100644
> --- a/drivers/media/dvb-frontends/mt352.c
> +++ b/drivers/media/dvb-frontends/mt352.c
> @@ -69,7 +69,7 @@ static int mt352_read_register(struct mt352_state*
> state, u8 reg)
>  {
>         int ret;
>         u8 b0 [] = { reg };
> -       u8 b1 [] = { 0 };
> +    u8 *b1=kmalloc(1,GFP_KERNEL);
>         struct i2c_msg msg [] = { { .addr = state->config.demod_address,
>                                     .flags = 0,
>                                     .buf = b0, .len = 1 },
> @@ -82,12 +82,15 @@ static int mt352_read_register(struct mt352_state*
> state, u8 reg)
>         if (ret != 2) {
>                 printk("%s: readreg error (reg=%d, ret==%i)\n",
>                        __func__, reg, ret);
> +               kfree(b1);
>                 return ret;
>         }
> -
> -       return b1[0];
> +    ret=b1[0];
> +    kfree(b1);
> +       return ret;
>  }
>
> +
>  static int mt352_sleep(struct dvb_frontend* fe)
>  {
>         static u8 mt352_softdown[] = { CLOCK_CTL, 0x20, 0x08 };