Преглед на файлове

tty: core: Use correct spinlock flavor in tiocspgrp()

tiocspgrp() is the ioctl handler for TIOCSPGRP, which runs in
non-atomic context; use spin_lock/unlock_irq (since interrupt state
is on).

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Peter Hurley преди 9 години
родител
ревизия
1e86b5bf15
променени са 1 файла, в които са добавени 2 реда и са изтрити 3 реда
  1. 2 3
      drivers/tty/tty_io.c

+ 2 - 3
drivers/tty/tty_io.c

@@ -2571,7 +2571,6 @@ static int tiocspgrp(struct tty_struct *tty, struct tty_struct *real_tty, pid_t
 	struct pid *pgrp;
 	struct pid *pgrp;
 	pid_t pgrp_nr;
 	pid_t pgrp_nr;
 	int retval = tty_check_change(real_tty);
 	int retval = tty_check_change(real_tty);
-	unsigned long flags;
 
 
 	if (retval == -EIO)
 	if (retval == -EIO)
 		return -ENOTTY;
 		return -ENOTTY;
@@ -2594,10 +2593,10 @@ static int tiocspgrp(struct tty_struct *tty, struct tty_struct *real_tty, pid_t
 	if (session_of_pgrp(pgrp) != task_session(current))
 	if (session_of_pgrp(pgrp) != task_session(current))
 		goto out_unlock;
 		goto out_unlock;
 	retval = 0;
 	retval = 0;
-	spin_lock_irqsave(&tty->ctrl_lock, flags);
+	spin_lock_irq(&tty->ctrl_lock);
 	put_pid(real_tty->pgrp);
 	put_pid(real_tty->pgrp);
 	real_tty->pgrp = get_pid(pgrp);
 	real_tty->pgrp = get_pid(pgrp);
-	spin_unlock_irqrestore(&tty->ctrl_lock, flags);
+	spin_unlock_irq(&tty->ctrl_lock);
 out_unlock:
 out_unlock:
 	rcu_read_unlock();
 	rcu_read_unlock();
 	return retval;
 	return retval;