I've found where is the problem in the Kernel oops while using the remote control with WinTV NOVA T USB2. In the following function (linux/drivers/media/dvb/dvb-usb/nova-t-usb2.c) I added a debug print for all pointers involved and the one that is NULL is "st" meaning that d->priv is NULL. I've tried and the error occurs both while playing TV and while not playing. The rest of the function works properly. Here is the output when I block the null pointer dereference (with debug enabled). Oct 7 14:02:33 thinkpad kernel: raw key code 0xfc, 0x1f, 0x00 to c: 1e d: 03 toggle: 1 Oct 7 14:02:33 thinkpad kernel: c: 0, d: 1e Oct 7 14:02:33 thinkpad kernel: c: 1, d: 1e Oct 7 14:02:33 thinkpad kernel: c: 2, d: 1e Oct 7 14:02:33 thinkpad kernel: c: 3, d: 1e Oct 7 14:02:33 thinkpad kernel: ERROR 2 3 "ERROR 2" is something I added to find where the null pointer occurs, afterwards the function is forced to "return 0". Does anybody know how this thing works? Who and when initialises d->priv? static int nova_t_rc_query(struct dvb_usb_device *d, u32 *event, int *state) { u8 key[5],cmd[2] = { DIBUSB_REQ_POLL_REMOTE, 0x35 }, data,toggle,custom; u16 raw; int i = 0; struct dibusb_state *st = d->priv; // st is NULL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! dvb_usb_generic_rw(d,cmd,2,key,5,0); *state = REMOTE_NO_KEY_PRESSED; switch (key[0]) { case DIBUSB_RC_HAUPPAUGE_KEY_PRESSED: raw = ((key[1] << 8) | key[2]) >> 3; toggle = !!(raw & 0x800); data = raw & 0x3f; custom = (raw >> 6) & 0x1f; deb_rc("raw key code 0x%02x, 0x%02x, 0x%02x to c: %02x d: %02x toggle: %d\n",key[1],key[2],key[3],custom,data,toggle); for (i = 0; i < ARRAY_SIZE(haupp_rc_keys); i++) { deb_rc("c: %x, d: %x\n",haupp_rc_keys[i].data,haupp_rc_keys[i].custom); if (haupp_rc_keys[i].data == data && haupp_rc_keys[i].custom == custom) { *event = haupp_rc_keys[i].event; *state = REMOTE_KEY_PRESSED; if (st->old_toggle == toggle) { if (st->last_repeat_count++ < 2) *state = REMOTE_NO_KEY_PRESSED; } else { st->last_repeat_count = 0; st->old_toggle = toggle; } break; } } break; case DIBUSB_RC_HAUPPAUGE_KEY_EMPTY: default: break; } return 0; } Thanks Mario _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb