Patch "vgaarb: fix signal handling in vga_get()" has been added to the 3.14-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
vgaarb: fix signal handling in vga_get()
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:
vgaarb-fix-signal-handling-in-vga_get.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 <[email protected]> know about it.
Quoted 1 line
From
9f5bd30818c42c6c36a51f93b4df75a2ea2bd85eMon Sep 17 00:00:00 2001
From: "Kirill A. Shutemov" <[email protected]>
Date: Mon, 30 Nov 2015 04:17:31 +0200
Subject: vgaarb: fix signal handling in vga_get()
From: Kirill A. Shutemov <[email protected]>
commit 9f5bd30818c42c6c36a51f93b4df75a2ea2bd85e upstream.
There are few defects in vga_get() related to signal hadning:
- we shouldn't check for pending signals for TASK_UNINTERRUPTIBLE
case;
- if we found pending signal we must remove ourself from wait queue
and change task state back to running;
- -ERESTARTSYS is more appropriate, I guess.
--- drivers/gpu/vga/vgaarb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/gpu/vga/vgaarb.c +4 -2
@@ -392,8 +392,10 @@ int vga_get(struct pci_dev *pdev, unsignset_current_state (interruptible ?TASK_INTERRUPTIBLE :TASK_UNINTERRUPTIBLE ); -if (signal_pending (current)) { - rc = -EINTR ; +if (interruptible &&signal_pending (current)) { +__set_current_state (TASK_RUNNING ); +remove_wait_queue (&vga_wait_queue, &wait); + rc = -ERESTARTSYS ;break ; }schedule ();
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/vgaarb-fix-signal-handling-in-vga_get.patch