All of lore.kernel.org
 help / color / mirror / Atom feed
* Patch "staging/speakup: Use tty_ldisc_ref() for paste kworker" has been added to the 3.14-stable tree
@ 2016-02-24  3:23 gregkh
  0 siblings, 0 replies; only message in thread
From: gregkh @ 2016-02-24  3:23 UTC (permalink / raw)
  To: peter, gregkh; +Cc: stable, stable-commits


This is a note to let you know that I've just added the patch titled

    staging/speakup: Use tty_ldisc_ref() for paste kworker

to the 3.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     staging-speakup-use-tty_ldisc_ref-for-paste-kworker.patch
and it can be found in the queue-3.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From f4f9edcf9b5289ed96113e79fa65a7bf27ecb096 Mon Sep 17 00:00:00 2001
From: Peter Hurley <peter@hurleysoftware.com>
Date: Sun, 10 Jan 2016 22:40:58 -0800
Subject: staging/speakup: Use tty_ldisc_ref() for paste kworker

From: Peter Hurley <peter@hurleysoftware.com>

commit f4f9edcf9b5289ed96113e79fa65a7bf27ecb096 upstream.

As the function documentation for tty_ldisc_ref_wait() notes, it is
only callable from a tty file_operations routine; otherwise there
is no guarantee the ref won't be NULL.

The key difference with the VT's paste_selection() is that is an ioctl,
where __speakup_paste_selection() is completely async kworker, kicked
off from interrupt context.

Fixes: 28a821c30688 ("Staging: speakup: Update __speakup_paste_selection()
       tty (ab)usage to match vt")
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/staging/speakup/selection.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/drivers/staging/speakup/selection.c
+++ b/drivers/staging/speakup/selection.c
@@ -140,7 +140,9 @@ static void __speakup_paste_selection(st
 	struct tty_ldisc *ld;
 	DECLARE_WAITQUEUE(wait, current);
 
-	ld = tty_ldisc_ref_wait(tty);
+	ld = tty_ldisc_ref(tty);
+	if (!ld)
+		goto tty_unref;
 	tty_buffer_lock_exclusive(&vc->port);
 
 	add_wait_queue(&vc->paste_wait, &wait);
@@ -160,6 +162,7 @@ static void __speakup_paste_selection(st
 
 	tty_buffer_unlock_exclusive(&vc->port);
 	tty_ldisc_deref(ld);
+tty_unref:
 	tty_kref_put(tty);
 }
 


Patches currently in stable-queue which might be from peter@hurleysoftware.com are

queue-3.14/staging-speakup-use-tty_ldisc_ref-for-paste-kworker.patch
queue-3.14/wan-x25-fix-use-after-free-in-x25_asy_open_tty.patch
queue-3.14/pty-make-sure-super_block-is-still-valid-in-final-dev-tty-close.patch
queue-3.14/pty-fix-possible-use-after-free-of-tty-driver_data.patch

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2016-02-24  3:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-24  3:23 Patch "staging/speakup: Use tty_ldisc_ref() for paste kworker" has been added to the 3.14-stable tree gregkh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.