linux-stable/drivers/staging/speakup
Okash Khawaja e23a9b439c staging: speakup: safely register and unregister ldisc
This patch makes use of functions added in the previous patch. It
registers ldisc during init of main speakup module and unregisters it
during exit. It also removes the code to register ldisc every time a
synth module is loaded. This way we only register the ldisc once when
main speakup module is loaded. Since main speakup module is required by
all synth modules, it is only unloaded when all synths have been
unloaded. Therefore we unregister the ldisc once, when all speakup
related references to the ldisc have returned. In unlikely scenario of
something outside speakup using the ldisc, the ldisc refcount check in
tty_unregister_ldisc will ensure that it is not unregistered while in
use.

The function to register ldisc doesn't cause speakup init function to
fail. That is different from current behaviour where failure to register
ldisc results in failure to load the specific synth module. This is
because speakup module is also required by those synths which don't use
tty and ldisc. We don't want to prevent those modules from loading when
ldisc fails to register. The synth modules will correctly fail when
trying to set N_SPEAKUP to tty, if ldisc registrationi had failed.

Signed-off-by: Okash Khawaja <okash.khawaja@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-18 09:03:22 +02:00
..
DefaultKeyAssignments
Kconfig
Makefile staging: speakup: add tty-based comms functions 2017-05-16 14:05:42 +02:00
TODO staging: speakup: TODO Correct email 2016-11-21 11:05:29 +01:00
buffers.c speakup: extend synth buffer to 16bit unicode characters 2017-03-09 17:28:20 +01:00
devsynth.c
fakekey.c staging: speakup: Remove the explicit NULL comparison 2017-03-27 14:00:41 +02:00
i18n.c staging: speakup: i18n.c: Refactor conditionals in spk_msg_set 2017-03-12 15:27:45 +01:00
i18n.h
keyhelp.c staging: speakup: Clean up if conditions 2017-03-06 09:39:54 +01:00
kobjects.c staging: speakup: Removed Unnecessary parentheses. 2017-03-23 14:20:41 +01:00
main.c staging: speakup: safely register and unregister ldisc 2017-07-18 09:03:22 +02:00
selection.c staging: speakup: Match alignment with open parenthesis. 2017-03-23 14:20:41 +01:00
serialio.c staging: speakup: alignment match open parens 2017-06-06 16:17:31 +02:00
serialio.h staging: speakup: add send_xchar, tiocmset and input functionality for tty 2017-05-16 14:19:41 +02:00
speakup.h staging: speakup: spaces preferred around operator 2017-03-23 14:20:41 +01:00
speakup_acnt.h
speakup_acntpc.c Annotation of module parameters that specify device settings 2017-05-10 19:13:03 -07:00
speakup_acntsa.c staging: speakup: make ttyio synths use device name 2017-06-27 09:12:33 +02:00
speakup_apollo.c staging: speakup: make ttyio synths use device name 2017-06-27 09:12:33 +02:00
speakup_audptr.c staging: speakup: make ttyio synths use device name 2017-06-27 09:12:33 +02:00
speakup_bns.c staging: speakup: make ttyio synths use device name 2017-06-27 09:12:33 +02:00
speakup_decext.c staging: speakup: make ttyio synths use device name 2017-06-27 09:12:33 +02:00
speakup_decpc.c staging: speakup: fix unnecessary long line 2017-05-15 12:44:20 +02:00
speakup_dectlk.c staging: speakup: make ttyio synths use device name 2017-06-27 09:12:33 +02:00
speakup_dtlk.c staging: speakup: make input functionality swappable 2017-05-15 12:31:43 +02:00
speakup_dtlk.h drivers/staging/speakup: Align block comments at * 2017-05-15 12:44:20 +02:00
speakup_dummy.c staging: speakup: make ttyio synths use device name 2017-06-27 09:12:33 +02:00
speakup_keypc.c Annotation of module parameters that specify device settings 2017-05-10 19:13:03 -07:00
speakup_ltlk.c staging: speakup: make ttyio synths use device name 2017-06-27 09:12:33 +02:00
speakup_soft.c staging: speakup: make input functionality swappable 2017-05-15 12:31:43 +02:00
speakup_spkout.c staging: speakup: make ttyio synths use device name 2017-06-27 09:12:33 +02:00
speakup_txprt.c staging: speakup: make ttyio synths use device name 2017-06-27 09:12:33 +02:00
speakupmap.h
speakupmap.map
spk_priv.h staging: speakup: add functions to register and unregister ldisc 2017-07-18 09:03:21 +02:00
spk_priv_keyinfo.h staging: speakup: spk_priv_keyinfo.h Space around operator 2016-11-23 10:05:39 +01:00
spk_ttyio.c staging: speakup: safely register and unregister ldisc 2017-07-18 09:03:22 +02:00
spk_types.h staging: speakup: check and convert dev name or ser to dev_t 2017-06-27 09:12:33 +02:00
spkguide.txt
synth.c staging: speakup: fix synth caching when synth init fails 2017-06-25 16:31:22 +02:00
thread.c staging: speakup: thread.c align on parenthesis 2016-11-21 11:05:29 +01:00
varhandlers.c staging: speakup: fixes braces {} should be used on all arms of this statement 2017-03-23 14:20:41 +01:00