diff options
Diffstat (limited to 'drivers/media/usb/dvb-usb/dibusb-common.c')
| -rw-r--r-- | drivers/media/usb/dvb-usb/dibusb-common.c | 16 | 
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/media/usb/dvb-usb/dibusb-common.c b/drivers/media/usb/dvb-usb/dibusb-common.c index 8207e6900656..bcacb0f22028 100644 --- a/drivers/media/usb/dvb-usb/dibusb-common.c +++ b/drivers/media/usb/dvb-usb/dibusb-common.c @@ -223,8 +223,20 @@ EXPORT_SYMBOL(dibusb_i2c_algo);  int dibusb_read_eeprom_byte(struct dvb_usb_device *d, u8 offs, u8 *val)  { -	u8 wbuf[1] = { offs }; -	return dibusb_i2c_msg(d, 0x50, wbuf, 1, val, 1); +	u8 *buf; +	int rc; + +	buf = kmalloc(2, GFP_KERNEL); +	if (!buf) +		return -ENOMEM; + +	buf[0] = offs; + +	rc = dibusb_i2c_msg(d, 0x50, &buf[0], 1, &buf[1], 1); +	*val = buf[1]; +	kfree(buf); + +	return rc;  }  EXPORT_SYMBOL(dibusb_read_eeprom_byte);  | 

