MN10300: Enable IRQs more in system call exit work path
authorDavid Howells <dhowells@redhat.com>
Tue, 28 May 2013 19:21:10 +0000 (20:21 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 30 May 2013 04:38:48 +0000 (13:38 +0900)
commitd17fc238ac1486906ff724b4a5fe4ec169f554c5
treebf8e855854a26a3c93670d8365ccb6fd2448ec2f
parent1e00227d4e8017ac9c3f73bf949a06c6e27f5122
MN10300: Enable IRQs more in system call exit work path

Enable IRQs when calling schedule() for TIF_NEED_RESCHED and
do_notify_resume().  If interrupts are enabled during do_notify_resume(), a
warning can be seen (see lower down).

Whilst we're at it, resume_userspace can be made local to entry.S as it is not
called outside of there and it can be merged with the part of work_resched that
occurs after schedule() is called.

  WARNING: at kernel/softirq.c:160 local_bh_enable+0x42/0xa0()
  Call Trace:
    local_bh_enable+0x42/0xa0
    unix_release_sock+0x86/0x23c
    unix_release+0x20/0x28
    sock_release+0x17/0x88
    sock_close+0x20/0x28
    __fput+0xc9/0x1fc
    ____fput+0xb/0x10
    task_work_run+0x64/0x78
    do_notify_resume+0x53d/0x544
    work_notifysig+0xa/0xc

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Ken Cox <jkc@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/mn10300/kernel/entry.S