mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Roland McGrath <roland@redhat.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Vitaly Mayatskikh <v.mayatskih@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Ingo Molnar <mingo@elte.hu>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/5] Split wait_noreap_copyout()
Date: Wed, 20 May 2009 13:29:50 -0700 (PDT)	[thread overview]
Message-ID: <20090520202950.4FFB6FC38D@magilla.sf.frob.com> (raw)
In-Reply-To: Oleg Nesterov's message of  Wednesday, 20 May 2009 17:57:15 +0200 <20090520155715.GA23682@redhat.com>

> do_wait() && infop interaction is really strange before the patch.

do_wait() underlies sys_wait4() and sys_waitid().  The original intent was
that all the infop==NULL cases are just for the sys_wait4() path.  In the
sys_waitid() path, infop comes from the user and NULL always ought to have
been invalid.

See http://lkml.org/lkml/2009/1/13/446 for the previous thread about this.
We wanted to clean it up, but Linus objected to changing the userland
behavior of passing NULL to waitid on the grounds of "never regress the
ABI, even if it was not supposed to be the ABI".

> When do_wait() is called without WNOWAIT, then infop == NULL is fine.
> 
> If WNOWAIT is set, we return -EFAULT. Except in WCONTINUED case
> infop == NULL is fine again.

WNOWAIT can only be set in the sys_waitid() path, not by sys_wait4().
Without WNOWAIT, it might be sys_wait4(), where infop==NULL is normal.
The WCONTINUED variance was unintended.

I would be fine with any way you want to clean this up.
But presumably Linus would object again if any combination of userland
arguments that is now permitted were to start returning an error.
I'm guessing he won't object to making the WNOWAIT case consistent
with other sys_waitid() calls that pass NULL (i.e. -EFAULT -> success
acceptable, but success -> -EFAULT not acceptable).


Thanks,
Roland

  reply	other threads:[~2009-05-20 20:30 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-11 13:25 [PATCH 0/5] wait_task_* cleanups V2 Vitaly Mayatskikh
2009-05-11 13:25 ` [PATCH 1/5] Split wait_noreap_copyout() Vitaly Mayatskikh
2009-05-11 23:45   ` Andrew Morton
2009-05-20 15:21   ` Vitaly Mayatskikh
2009-05-20 15:57     ` Oleg Nesterov
2009-05-20 20:29       ` Roland McGrath [this message]
2009-05-20 18:21     ` Ingo Molnar
2009-05-21 14:12       ` Oleg Nesterov
2009-05-21 14:35         ` Vitaly Mayatskikh
2009-06-09 15:14   ` Vitaly Mayatskikh
2009-05-11 13:25 ` [PATCH 2/5] Use copy_wait_opts_to_user() in wait_task_stopped() Vitaly Mayatskikh
2009-05-11 13:25 ` [PATCH 3/5] Use copy_wait_opts_to_user() in do_wait() Vitaly Mayatskikh
2009-06-15 16:39   ` Oleg Nesterov
2009-05-11 13:25 ` [PATCH 4/5] Use copy_wait_opts_to_user() in wait_task_zombie() Vitaly Mayatskikh
2009-06-15 16:43   ` Oleg Nesterov
2009-05-11 13:25 ` [PATCH 5/5] Use copy_wait_opts_to_user() in wait_task_continued() Vitaly Mayatskikh
2009-06-15 16:55   ` Oleg Nesterov
2009-06-15 17:13     ` Oleg Nesterov
2009-06-15 17:16     ` Andrew Morton
2009-05-12  3:19 ` [PATCH 0/5] wait_task_* cleanups V2 Roland McGrath
  -- strict thread matches above, loose matches on Subject: below --
2009-05-11 10:12 [PATCH 0/5] wait_task_* cleanups Vitaly Mayatskikh
2009-05-11 10:12 ` [PATCH 1/5] Split wait_noreap_copyout() Vitaly Mayatskikh
2009-05-11 10:20   ` Ingo Molnar
2009-05-11 11:20     ` Vitaly Mayatskikh
2009-05-11 12:04   ` Christoph Hellwig
2009-05-11 12:17     ` Ingo Molnar
2009-05-11 20:47       ` Vitaly Mayatskikh
2009-05-11 21:04         ` Ingo Molnar
2009-05-11 12:17     ` Vitaly Mayatskikh

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=20090520202950.4FFB6FC38D@magilla.sf.frob.com \
    --to=roland@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=oleg@redhat.com \
    --cc=v.mayatskih@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®