Re: [PATCH] openrisc: call do_notify_resume() with interrupts enabled

From: Stefan Kristiansson
Date: Mon Apr 29 2013 - 05:51:01 EST


On Mon, Apr 29, 2013 at 10:12:37AM +0300, Stefan Kristiansson wrote:
> A signal delivered through do_notify_resume() would cause the
> irqs_disabled() check in _local_bh_enable_ip() to be triggered.
>
> Enable interrupts before calling do_notify_resume().
>
> Signed-off-by: Stefan Kristiansson <stefan.kristiansson@xxxxxxxxxxxxx>
> ---
> arch/openrisc/kernel/entry.S | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/openrisc/kernel/entry.S b/arch/openrisc/kernel/entry.S
> index d8a455e..55ffc97 100644
> --- a/arch/openrisc/kernel/entry.S
> +++ b/arch/openrisc/kernel/entry.S
> @@ -874,6 +874,7 @@ _work_pending:
> * must be set so that the syscall restart functionality works.
> */
> _work_notifysig:
> + ENABLE_INTERRUPTS(r29)
> l.jal do_notify_resume
> l.ori r3,r1,0 /* pt_regs */
>

I just realised that this one-liner isn't quite enough,
the flags that are used in do_notify_resume() has to be read with
interrupts off.
Revised patch coming up.

Stefan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/