mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-04 02:02:28 +09:00
media: af9035: fix broken I2C and USB I/O
commit9323297dc0upstream. There was three small buffer len calculation bugs which caused driver non-working. These are coming from recent commit: commit7760e14835[media] af9035: Don't use dynamic static allocation Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c3d8edeff2
commit
b96e6f2b02
@@ -130,7 +130,7 @@ static int af9035_wr_regs(struct dvb_usb_device *d, u32 reg, u8 *val, int len)
|
||||
{
|
||||
u8 wbuf[MAX_XFER_SIZE];
|
||||
u8 mbox = (reg >> 16) & 0xff;
|
||||
struct usb_req req = { CMD_MEM_WR, mbox, sizeof(wbuf), wbuf, 0, NULL };
|
||||
struct usb_req req = { CMD_MEM_WR, mbox, 6 + len, wbuf, 0, NULL };
|
||||
|
||||
if (6 + len > sizeof(wbuf)) {
|
||||
dev_warn(&d->udev->dev, "%s: i2c wr: len=%d is too big!\n",
|
||||
@@ -237,7 +237,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
|
||||
} else {
|
||||
/* I2C */
|
||||
u8 buf[MAX_XFER_SIZE];
|
||||
struct usb_req req = { CMD_I2C_RD, 0, sizeof(buf),
|
||||
struct usb_req req = { CMD_I2C_RD, 0, 5 + msg[0].len,
|
||||
buf, msg[1].len, msg[1].buf };
|
||||
|
||||
if (5 + msg[0].len > sizeof(buf)) {
|
||||
@@ -273,8 +273,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
|
||||
} else {
|
||||
/* I2C */
|
||||
u8 buf[MAX_XFER_SIZE];
|
||||
struct usb_req req = { CMD_I2C_WR, 0, sizeof(buf), buf,
|
||||
0, NULL };
|
||||
struct usb_req req = { CMD_I2C_WR, 0, 5 + msg[0].len,
|
||||
buf, 0, NULL };
|
||||
|
||||
if (5 + msg[0].len > sizeof(buf)) {
|
||||
dev_warn(&d->udev->dev,
|
||||
|
||||
Reference in New Issue
Block a user