From f8dbab29f4d4b977a56776af0d5296b0e6386aef Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Thu, 1 Sep 2011 02:57:02 -0300 Subject: [PATCH] [media] tm6000: Don't try to use a non-existing interface > [34883.426065] tm6000 #0: registered device video0 > [34883.430591] Trident TVMaster TM5600/TM6000/TM6010 USB2 board (Load status: 0) > [34883.437763] usbcore: registered new interface driver tm6000 > [34884.608372] BUG: unable to handle kernel NULL pointer dereference at 00000002 > [34884.615514] IP: [] tm6000_reset+0xd7/0x11c [tm6000] The dev->int_in USB interfaces is used by some devices for the Remote Controller. Not all devices seem to define this interface, so, tm6000_reset should not try to set the interface to it on such devices. Signed-off-by: Mauro Carvalho Chehab --- drivers/staging/tm6000/tm6000-core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/staging/tm6000/tm6000-core.c b/drivers/staging/tm6000/tm6000-core.c index 9cef1d1..b3c4e05 100644 --- a/drivers/staging/tm6000/tm6000-core.c +++ b/drivers/staging/tm6000/tm6000-core.c @@ -621,6 +621,12 @@ int tm6000_reset(struct tm6000_core *dev) msleep(5); + /* + * Not all devices have int_in defined + */ + if (!dev->int_in.endp) + return 0; + err = usb_set_interface(dev->udev, dev->isoc_in.bInterfaceNumber, 2); if (err < 0) { tm6000_err("failed to select interface %d, alt. setting 2\n", -- 2.7.4