modprobe speakup_dtlk on a system without that device attached gibves the following ooops: [ 50.091282] speakup: module is from the staging directory, the quality is unk nown, you have been warned. [ 50.093306] input: Speakup as /devices/virtual/input/input6 [ 50.093753] initialized device: /dev/synth, node (MAJOR 10, MINOR 25) [ 50.095553] speakup 3.1.6: initialized [ 50.095556] synth name on entry is: (null) [ 50.104925] speakup_dtlk: module is from the staging directory, the quality i s unknown, you have been warned. [ 50.105378] synth probe [ 50.105380] Probing for DoubleTalk. [ 50.105402] DoubleTalk PC: not found [ 50.105409] BUG: unable to handle kernel NULL pointer dereference at 00000000 00000030 [ 50.106971] IP: [<ffffffff8104cd59>] release_resource+0x18/0x4c [ 50.107930] PGD 0 [ 50.108743] Oops: 0000 [#1] SMP [ 50.108752] CPU 0 [ 50.108752] Modules linked in: speakup_dtlk(C+) speakup(C) nfsd nfs nfs_acl a uth_rpcgss fscache lockd sunrpc loop snd_intel8x0 snd_ac97_codec snd_pcm snd_pag e_alloc parport_pc ac i2c_piix4 psmouse i2c_core pcspkr serio_raw joydev evdev s nd_seq snd_seq_device snd_timer parport power_supply processor snd thermal_sys s oundcore ac97_bus button ext4 crc16 jbd2 mbcache btrfs crc32c libcrc32c zlib_def late usbhid hid sg sr_mod sd_mod crc_t10dif cdrom ata_generic ohci_hcd ata_piix ahci libahci ehci_hcd libata usbcore usb_common e1000 scsi_mod [last unloaded: s csi_wait_scan] [ 50.108752] [ 50.108752] Pid: 3081, comm: modprobe Tainted: G C 3.2.0-4-amd64 #1 Debian 3.2.63-2+deb7u1 innotek GmbH VirtualBox/VirtualBox [ 50.108752] RIP: 0010:[<ffffffff8104cd59>] [<ffffffff8104cd59>] release_reso urce+0x18/0x4c [ 50.108752] RSP: 0018:ffff8800371bfe98 EFLAGS: 00010206 [ 50.108752] RAX: 0000000000000030 RBX: ffffffffa03bf490 RCX: 000000000000163d [ 50.108752] RDX: 0000000000000000 RSI: 0000000000000002 RDI: ffffffff81617d88 [ 50.108752] RBP: 0000000000000018 R08: 0000000000000002 R09: 00000000fffffffe [ 50.108752] R10: 0000000000000000 R11: 0000000000000000 R12: 000000000000039e [ 50.108752] R13: 0000000000000000 R14: 000000000000fbff R15: 0000000000040000 [ 50.108752] FS: 00007fa500498700(0000) GS:ffff88003fc00000(0000) knlGS:00000 00000000000 [ 50.108752] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [ 50.108752] CR2: 0000000000000030 CR3: 000000003c37c000 CR4: 00000000000006f0 [ 50.108752] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 50.108752] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [ 50.108752] Process modprobe (pid: 3081, threadinfo ffff8800371be000, task ff ff880037779880) [ 50.108752] Stack: [ 50.108752] ffffffffa03ff000 ffffffffa03fd426 0000000000036c75 0000000000000 200 [ 50.108752] ffffffffa03ff000 ffffffffa0051000 0000000000000000 0000000000001 d9f [ 50.108752] 0000000000000000 ffffffffa03b3422 ffffffffa03ff000 ffffffffa03b3 8ac [ 50.108752] Call Trace: [ 50.108752] [<ffffffffa03fd426>] ? synth_probe+0x134/0x2f2 [speakup_dtlk] [ 50.108752] [<ffffffffa0051000>] ? 0xffffffffa0050fff [ 50.108752] [<ffffffffa03b3422>] ? do_synth_init.part.4+0x30/0x159 [speakup] [ 50.108752] [<ffffffffa03b38ac>] ? synth_add+0x81/0xc1 [speakup] [ 50.108752] [<ffffffff8102f2a6>] ? change_page_attr_set+0x23/0x28 [ 50.108752] [<ffffffff81002085>] ? do_one_initcall+0x75/0x12c [ 50.108752] [<ffffffffa0051000>] ? 0xffffffffa0050fff [ 50.108752] [<ffffffff81075bad>] ? sys_init_module+0x10c/0x25b [ 50.108752] [<ffffffff81355a92>] ? system_call_fastpath+0x16/0x1b [ 50.108752] Code: 48 89 f0 48 8b 56 10 48 8b 76 08 48 8b 38 e9 e2 fe ff ff 53 48 89 fb 48 c7 c7 88 7d 61 81 e8 43 3d 30 00 48 8b 43 20 48 83 c0 30 <48> 8b 10 48 85 d2 74 1e 48 39 da 75 13 48 8b 53 28 48 89 10 48 [ 50.108752] RIP [<ffffffff8104cd59>] release_resource+0x18/0x4c [ 50.108752] RSP <ffff8800371bfe98> [ 50.108752] CR2: 0000000000000030 [ 50.178443] ---[ end trace 3d00354a1b669198 ]---
Created attachment 160111 [details] Stop dtlk oopsing on failed probe Please test this
now i`m getting "device probe failed" - so this works as expected. btw, 3.16 does not only oops but crashes without your fix