audit: use spin_lock_irqsave/restore in audit tty code
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / kernel / audit.c
index 44803f25b236a49c8d1112b1ba0e19562ee3ff6d..241aa8593fa875efcd0ec3bd6caaad8b1d9eb5fb 100644 (file)
@@ -804,10 +804,11 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
        case AUDIT_TTY_GET: {
                struct audit_tty_status s;
                struct task_struct *tsk = current;
+               unsigned long flags;
 
-               spin_lock_irq(&tsk->sighand->siglock);
+               spin_lock_irqsave(&tsk->sighand->siglock, flags);
                s.enabled = tsk->signal->audit_tty != 0;
-               spin_unlock_irq(&tsk->sighand->siglock);
+               spin_unlock_irqrestore(&tsk->sighand->siglock, flags);
 
                audit_send_reply(NETLINK_CB(skb).portid, seq,
                                 AUDIT_TTY_GET, 0, 0, &s, sizeof(s));
@@ -816,6 +817,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
        case AUDIT_TTY_SET: {
                struct audit_tty_status *s;
                struct task_struct *tsk = current;
+               unsigned long flags;
 
                if (nlh->nlmsg_len < sizeof(struct audit_tty_status))
                        return -EINVAL;
@@ -823,9 +825,9 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
                if (s->enabled != 0 && s->enabled != 1)
                        return -EINVAL;
 
-               spin_lock_irq(&tsk->sighand->siglock);
+               spin_lock_irqsave(&tsk->sighand->siglock, flags);
                tsk->signal->audit_tty = s->enabled != 0;
-               spin_unlock_irq(&tsk->sighand->siglock);
+               spin_unlock_irqrestore(&tsk->sighand->siglock, flags);
                break;
        }
        default: