On Sun, Oct 29, 2017 at 06:54:28PM +0100, Laurent Caumont wrote: > Hi Sean, > > I recompiled the modules by following the > https://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers > page and applied the patch. > But I still have problems (see below). It doesn't seem to be the same callstack. > Is it the right way to get the fix ? Yes, it's the right way to get the fix. However, you've hit a new problem of a similar making. Please can you try with this patch as well: Thanks Sean --- >From 84efb0bf72ae5d9183f25d69d95fb9ad9b9bc644 Mon Sep 17 00:00:00 2001 From: Sean Young <sean@xxxxxxxx> Date: Sun, 29 Oct 2017 19:28:32 +0000 Subject: [PATCH] media: dibusb: don't do DMA on stack The USB control messages require DMA to work. We cannot pass a stack-allocated buffer, as it is not warranted that the stack would be into a DMA enabled area. Signed-off-by: Sean Young <sean@xxxxxxxx> --- drivers/media/usb/dvb-usb/dibusb-common.c | 14 ++++++++++++-- 1 file changed, 12 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..18c6e454b1b7 100644 --- a/drivers/media/usb/dvb-usb/dibusb-common.c +++ b/drivers/media/usb/dvb-usb/dibusb-common.c @@ -223,8 +223,18 @@ 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 *wbuf; + int rc; + + wbuf = kmalloc(1, GFP_KERNEL); + if (!wbuf) + return -ENOMEM; + + *wbuf = offs; + rc = dibusb_i2c_msg(d, 0x50, wbuf, 1, val, 1); + kfree(wbuf); + + return rc; } EXPORT_SYMBOL(dibusb_read_eeprom_byte); -- 2.13.6