Bug 88581

Summary: speakup_dtlk - oops on module load
Product: Drivers Reporter: Roland Kletzing (devzero)
Component: StagingAssignee: drivers_staging (drivers_staging)
Status: NEEDINFO ---    
Severity: normal CC: alan, devzero
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 3.2.63-2+deb7u1 Subsystem:
Regression: No Bisected commit-id:
Attachments: Stop dtlk oopsing on failed probe

Description Roland Kletzing 2014-11-20 16:53:54 UTC
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 ]---
Comment 1 Alan 2014-12-08 21:42:06 UTC
Created attachment 160111 [details]
Stop dtlk oopsing on failed probe

Please test this
Comment 2 Roland Kletzing 2014-12-12 18:00:09 UTC
now i`m getting "device probe failed" - so this works as expected.

btw, 3.16 does not only oops but crashes without your fix