lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 29 Apr 2013 12:50:48 +0300
From:	Stefan Kristiansson <stefan.kristiansson@...nalahti.fi>
To:	linux-kernel@...r.kernel.org, linux@...ts.openrisc.net
Subject: Re: [PATCH] openrisc: call do_notify_resume() with interrupts enabled

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@...nalahti.fi>
> ---
>  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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ