cx231xx relies on a code that detects the possible PCB settings. However, there are several troubles there: 1) The number of interfaces are read from the wrong place; 2) The code doesn't check if the interface is past the data; 3) If the code that read the PCB config fails, it keeps running using some random data. All of those issues can happen when a bad cabling is used, causing the Kernel to OOPS. Mauro Carvalho Chehab (6): cx231xx: Fix the max number of interfaces cx231xx: Don't let an interface number to go past the array cx231xx: use devm_ functions to allocate memory cx231xx: handle errors at read_eeprom() cx231xx: move analog init code to a separate function cx231xx: return an error if it can't read PCB config drivers/media/usb/cx231xx/cx231xx-cards.c | 265 +++++++++++++++------------- drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c | 10 +- drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h | 2 +- 3 files changed, 150 insertions(+), 127 deletions(-) -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html