Bug with workaround for hardware synth bug

Trevor Astrope astrope at tabbweb.com
Thu Aug 29 16:02:03 EDT 2013


I noticed that it isn't possible to remove the speakup_acntsa module when 
loaded with the serialio.c workaround (either removing the request_region 
block or commenting out the `return NULL' line).

`rmmod speakup_acntsa' results in a kernel oops and repeating it reports 
that the device is busy and the module could not be removed. There is no 
speech, however, after the first rmmod. Oh yeah, and rebooting the system 
after this results in a crash or hang. A power restart is required to boot 
the system.

This is with speakup 3.1.6 from linux-speakup.org/speakup.git and the 
Debian jessie/sid system with the linux-image-3.10-2-amd64 kernel and 
headers.


Here is the kernel oops from dmesg:

[165235.863347] releasing synth acntsa
[165235.863386] BUG: unable to handle kernel NULL pointer dereference at 
0000000000000030
[165235.863460] IP: [<ffffffff81042881>] __release_resource+0x8/0x33
[165235.863514] PGD 0
[165235.863535] Oops: 0000 [#1] SMP
[165235.863569] Modules linked in: tun ppdev lp bnep rfcomm cpufreq_stats 
cpufreq_conservative cpufreq_powersave cpufreq_userspace bluetooth cuse 
snd_hrtimer pci_stub vboxpci(O) vboxnetadp(O) vboxnetflt(O) binfmt_misc 
vboxdrv(O) loop fuse dm_crypt snd_hda_codec_hdmi snd_hda_codec_realtek 
snd_hda_intel snd_hda_codec iTCO_wdt iTCO_vendor_support snd_hwdep snd_pcm 
snd_page_alloc i915 snd_seq snd_seq_device snd_timer drm_kms_helper drm 
i2c_i801 i2c_algo_bit lpc_ich snd mfd_core soundcore i2c_core coretemp 
mperf processor eeepc_wmi asus_wmi sparse_keymap rfkill mei_me kvm psmouse 
parport_pc parport wmi mei pcspkr serio_raw video thermal_sys button 
microcode joydev evdev ext4 crc16 jbd2 mbcache raid1 md_mod dm_mirror 
dm_region_hash dm_log dm_mod speakup_acntsa(O-) speakup(O) sr_mod cdrom sg 
sd_mod crc_t10dif hid_generic ata_generic usbhid hid crc32c_intel 
ghash_clmulni_intel aesni_intel aes_x86_64 ablk_helper ata_piix xhci_hcd 
cryptd lrw gf128mul glue_helper ehci_pci ehci_hcd libata scsi_mod r8169 
mii usbcore usb_common
[165235.864545] CPU: 7 PID: 20315 Comm: rmmod Tainted: G           O 
3.10-2-amd64 #1 Debian 3.10.7-1
[165235.864612] Hardware name: System manufacturer System Product 
Name/P8H67-M PRO, BIOS 0902 03/04/2011
[165235.864681] task: ffff8801f381e780 ti: ffff88021a326000 task.ti: 
ffff88021a326000
[165235.864738] RIP: 0010:[<ffffffff81042881>]  [<ffffffff81042881>] 
__release_resource+0x8/0x33
[165235.864806] RSP: 0018:ffff88021a327eb8  EFLAGS: 00010206
[165235.864848] RAX: 0000000000000030 RBX: ffffffffa0176280 RCX: 
ffff880233eea100
[165235.864902] RDX: 00000000000003f8 RSI: 0000000000000008 RDI: 
ffffffffa0176280
[165235.864956] RBP: 0000000000000000 R08: 00000000ffffffff R09: 
000000000000000d
[165235.865011] R10: 000000000000bb00 R11: 000000000000bb00 R12: 
0000000000000800
[165235.865066] R13: 00007fffc00c8dfa R14: 00007f0797d2e090 R15: 
0000000000000800
[165235.865122] FS:  00007f0796724700(0000) GS:ffff88023fbc0000(0000) 
knlGS:0000000000000000
[165235.865184] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[165235.865229] CR2: 0000000000000030 CR3: 000000020e6f2000 CR4: 
00000000000407e0
[165235.865284] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 
0000000000000000
[165235.865339] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 
0000000000000400
[165235.865393] Stack:
[165235.865412]  ffffffff81042ca0 ffffffffa00ca220 ffffffffa00ca220 
ffffffffa016a9b5
[165235.865479]  ffffffffa016b49e ffffffffa00ca000 ffffffffa016b4c9 
ffffffffa00ca410
[165235.865545]  ffffffff81080f5a 00000000f381e780 ffffffff8105f669 
ffffffffa00ca410
[165235.865614] Call Trace:
[165235.865638]  [<ffffffff81042ca0>] ? release_resource+0x19/0x2e
[165235.865693]  [<ffffffffa016a9b5>] ? spk_serial_release+0x15/0x20 
[speakup]
[165235.865750]  [<ffffffffa016b49e>] ? synth_release+0xb2/0xbf [speakup]
[165235.865806]  [<ffffffffa016b4c9>] ? synth_remove+0x1e/0x75 [speakup]
[165235.865858]  [<ffffffff81080f5a>] ? SyS_delete_module+0x1cf/0x253
[165235.865908]  [<ffffffff8105f669>] ? should_resched+0x5/0x23
[165235.865955]  [<ffffffff81386018>] ? page_fault+0x28/0x30
[165235.865998]  [<ffffffff8138ade9>] ? system_call_fastpath+0x16/0x1b
[165235.866045] Code: 74 05 4c 39 02 76 0e 48 89 56 28 48 89 37 48 89 46 
20 31 c0 c3 48 39 4a 08 48 8d 7a 28 72 db 48 89 d0 c3 48 8b 47 20 48 83 c0 
30 <48> 8b 10 48 85 d2 74 1d 48 39 fa 75 12 48 8b 57 28 48 89 10 48
[165235.869521] RIP  [<ffffffff81042881>] __release_resource+0x8/0x33
[165235.871205]  RSP <ffff88021a327eb8>
[165235.872876] CR2: 0000000000000030
[165235.874574] ---[ end trace 2b9ef3876d8c03bc ]---


Here is the output of rmmod when run a second time:

libkmod: ERROR ../libkmod/libkmod-module.c:753 kmod_module_remove_module: 
could not remove 'speakup_acntsa': Device or resource busy
Error: could not remove module speakup_acntsa: Device or resource busy



More information about the Speakup mailing list