linux/drivers/staging
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
..
android Staging: ion: fix code style warning from NULL comparisons 2017-06-29 16:38:53 +02:00
board
ccree staging: ccree: fix block comment style 2017-06-29 16:38:51 +02:00
clocking-wizard
comedi staging: comedi: ni_mio_common: fix AO timer off-by-one regression 2017-07-16 09:13:53 +02:00
dgnc dgnc: fix multiple blank lines coding style problem 2017-05-25 18:56:45 +02:00
emxx_udc staging: emxx_udc: Update "reserved" registers name 2017-05-15 07:42:00 +02:00
fbtft staging: fbtft: Fix to avoid precedence issues 2017-05-29 16:41:37 +02:00
fsl-dpaa2 staging: fsl-mc: move mc-cmd.h contents in the public header 2017-06-29 16:38:53 +02:00
fsl-mc Staging/IIO patches for 4.13-rc1 2017-07-03 19:57:30 -07:00
fwserial
gdm724x Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
goldfish Staging: goldfish: use __func__ instead of embedded function names 2017-03-17 15:19:09 +09:00
greybus Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2017-07-10 09:22:48 -07:00
gs_fpgaboot
iio Merge 4.12-rc6 into staging-next 2017-06-20 10:17:45 +08:00
ks7010 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
lustre staging: lustre: ko2iblnd: check copy_from_iter/copy_to_iter return code 2017-07-18 08:36:20 +02:00
media [media] media: imx: Drop warning upon multiple S_STREAM disable calls 2017-06-20 08:12:20 -03:00
most Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
mt29f_spinand mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
netlogic net: phy: Make phy_ethtool_ksettings_get return void 2017-06-13 12:59:06 -04:00
nvec Staging: nvec: Remove FSF's mailing address 2017-04-08 12:55:25 +02:00
octeon Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
octeon-usb staging: octeon-usb: use correct function for hcd cleanup 2017-05-15 07:43:55 +02:00
olpc_dcon staging: olpc_dcon: style fixes 2017-04-28 12:07:24 +02:00
rtl8188eu staging: rtl8188eu: memory leak in rtw_free_cmd_obj() 2017-07-16 09:13:53 +02:00
rtl8192e Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
rtl8192u Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
rtl8712 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
rtl8723bs Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
rts5208 staging/rts5208: Fix read overflow in memcpy 2017-06-06 16:16:10 +02:00
skein
sm750fb staging: sm750fb: avoid conflicting vesafb 2017-07-18 08:53:45 +02:00
speakup staging: speakup: safely register and unregister ldisc 2017-07-18 09:03:22 +02:00
typec staging: fusb302: don't bitshift __le16 type 2017-06-23 18:47:59 +02:00
unisys staging: unisys: visorhba - octal permissions 2017-06-25 16:31:21 +02:00
vboxvideo staging: vboxvideo: Add vboxvideo to drivers/staging 2017-07-17 13:04:07 +02:00
vc04_services staging: vchiq_arm: fix error codes in probe 2017-07-16 09:13:53 +02:00
vme staging: vme: Use BIT macro for bit definitions 2017-05-16 13:53:23 +02:00
vt6655 staging: vt6655 - add parameter names 2017-06-25 16:31:22 +02:00
vt6656 staging: vt6656: remove unnecesary blank lines 2017-05-18 15:59:37 +02:00
wilc1000 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
wlan-ng Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
xgifb staging: fb_xgi: vb_table: Remove white space after tabstop 2017-06-23 19:36:49 +02:00
Kconfig staging: vboxvideo: Add vboxvideo to drivers/staging 2017-07-17 13:04:07 +02:00
Makefile staging: vboxvideo: Add vboxvideo to drivers/staging 2017-07-17 13:04:07 +02:00