staging: speakup: more fixes for init-failure handling.
We still leaked many resources when Speakup failed to initialize.
Examples of leaked resources include:
/dev/synth, keyboard or VT notifiers, and heap-allocated st_spk_t
structs.
This is fixed.
* We now use PTR_ERR to detect kthread_create failure
(thank you Dan Carpenter).
* The loop which frees members of the speakup_console array now iterates
over the whole array, not stopping at the first NULL value. Fixes
a possible memory leak. Safe because kfree(NULL) is a no-op.
* The order of some initializations was changed. The safe ones, which
will never fail, are performed first.
Signed-off-by: Christopher Brannon <chris@the-brannons.com> Acked-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>