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