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]
Message-ID: <6101e8c40804130529k353a46a9h8ed1b5fbf6451297@mail.gmail.com>
Date:	Sun, 13 Apr 2008 14:29:46 +0200
From:	"Oliver Pinter" <oliver.pntr@...il.com>
To:	"Davide Libenzi" <davidel@...ilserver.org>
Cc:	"Andrew Morton" <akpm@...ux-foundation.org>,
	"Linux Kernel Mailing List" <linux-kernel@...r.kernel.org>,
	"Zach Brown" <zach.brown@...cle.com>,
	"Jeff Roberson" <jroberson@...sapeake.net>
Subject: Re: [patch] eventfd/kaio integration fix

for 2.6.22.y ?

On 4/9/08, Davide Libenzi <davidel@...ilserver.org> wrote:
> Jeff Roberson discovered a race when using kaio eventfd based
> notifications. This patch fixes the race by moving the notification inside
> the spinlocked section of kaio. The operation is safe since eventfd
> spinlock and kaio one are unrelated.
>
>
>
> Signed-off-by: Davide Libenzi <davidel@...ilserver.org>
>
>
> - Davide
>
>
> ---
>  fs/aio.c |   17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
>
> Index: linux-2.6.mod/fs/aio.c
> ===================================================================
> --- linux-2.6.mod.orig/fs/aio.c	2008-04-08 16:25:27.000000000 -0700
> +++ linux-2.6.mod/fs/aio.c	2008-04-09 11:37:10.000000000 -0700
> @@ -936,14 +936,6 @@
>  		return 1;
>  	}
>
> -	/*
> -	 * Check if the user asked us to deliver the result through an
> -	 * eventfd. The eventfd_signal() function is safe to be called
> -	 * from IRQ context.
> -	 */
> -	if (!IS_ERR(iocb->ki_eventfd))
> -		eventfd_signal(iocb->ki_eventfd, 1);
> -
>  	info = &ctx->ring_info;
>
>  	/* add a completion event to the ring buffer.
> @@ -992,6 +984,15 @@
>  	kunmap_atomic(ring, KM_IRQ1);
>
>  	pr_debug("added to ring %p at [%lu]\n", iocb, tail);
> +
> +	/*
> +	 * Check if the user asked us to deliver the result through an
> +	 * eventfd. The eventfd_signal() function is safe to be called
> +	 * from IRQ context.
> +	 */
> +	if (!IS_ERR(iocb->ki_eventfd))
> +		eventfd_signal(iocb->ki_eventfd, 1);
> +
>  put_rq:
>  	/* everything turned out well, dispose of the aiocb. */
>  	ret = __aio_put_req(ctx, iocb);
> --
> 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/
>


-- 
Thanks,
Oliver
--
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