All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: dhowells@redhat.com, Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Alexander Gordeev <agordeev@redhat.com>,
	Chris Zankel <chris@zankel.net>, David Smith <dsmith@redhat.com>,
	"Frank Ch. Eigler" <fche@redhat.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Larry Woodman <lwoodman@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Richard Kuo <rkuo@codeaurora.org>, Tejun Heo <tj@kernel.org>,
	linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 4/6] keys: change keyctl_session_to_parent() to use task_work_add()
Date: Fri, 20 Apr 2012 09:45:16 +0100	[thread overview]
Message-ID: <10220.1334911516@redhat.com> (raw)
In-Reply-To: <20120419231543.GD15828@redhat.com>

Oleg Nesterov <oleg@redhat.com> wrote:

> Change keyctl_session_to_parent() to use task_work_add() and
> move key_replace_session_keyring() logic into task_work->func().
> 
> Note that we do task_work_cancel() before task_work_add() to
> ensure that only one work can be pending at any time. This is
> important, we must not allow user-space to abuse the parent's
> ->task_works list.
> 
> The callback, replace_session_keyring(), checks PF_EXITING.
> I guess this is not really needed but looks better.
> 
> As a side effect, this fixes the (unlikely) race. The callers
> of key_replace_session_keyring() and keyctl_session_to_parent()
> lack the necessary barriers, the parent can miss the request.
> 
> Now we can remove task_struct->replacement_session_keyring and
> related code.
> 
> Signed-off-by: Oleg Nesterov <oleg@redhat.com>

Acked-by: David Howells <dhowells@redhat.com>

  reply	other threads:[~2012-04-20  8:45 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-19 23:14 [PATCH v6 0/6] task_work_add: generic process-context callbacks Oleg Nesterov
2012-04-19 23:14 ` [PATCH v6 1/6] " Oleg Nesterov
2012-04-20  8:48   ` David Howells
2012-04-19 23:15 ` [PATCH v6 2/6] genirq: reimplement exit_irq_thread() hook via task_work_add() Oleg Nesterov
2012-04-19 23:15 ` [PATCH v6 3/6] hexagon: do_notify_resume() needs tracehook_notify_resume() Oleg Nesterov
2012-04-20  0:24   ` Richard Kuo
2012-04-19 23:15 ` [PATCH v6 4/6] keys: change keyctl_session_to_parent() to use task_work_add() Oleg Nesterov
2012-04-20  8:45   ` David Howells [this message]
2012-04-19 23:16 ` [PATCH v6 5/6] keys: kill the dummy key_replace_session_keyring() Oleg Nesterov
2012-04-20  8:45   ` David Howells
2012-04-19 23:16 ` [PATCH v6 6/6] keys: kill task_struct->replacement_session_keyring Oleg Nesterov
2012-04-20  8:45   ` David Howells

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10220.1334911516@redhat.com \
    --to=dhowells@redhat.com \
    --cc=agordeev@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=chris@zankel.net \
    --cc=dsmith@redhat.com \
    --cc=fche@redhat.com \
    --cc=geert@linux-m68k.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lwoodman@redhat.com \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rkuo@codeaurora.org \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.