[PATCH] media: dvb: mt352, change i2c read buffer from stack, to kernel space
From: rkardell
Date: Thu Oct 07 2021 - 07:44:11 EST
Solve problem with initialization of Mega Sky 580 USB DVB (and other
using mt352), error when reading i2c id.
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 };
--
2.30.2