All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin KaFai Lau <kafai@fb.com>
To: Andrii Nakryiko <andriin@fb.com>
Cc: <bpf@vger.kernel.org>, <netdev@vger.kernel.org>, <ast@fb.com>,
	<daniel@iogearbox.net>, <andrii.nakryiko@gmail.com>,
	<kernel-team@fb.com>
Subject: Re: [Potential Spoof] [PATCH bpf-next] selftests/bpf: fix nanosleep for real this time
Date: Fri, 13 Mar 2020 17:05:10 -0700	[thread overview]
Message-ID: <20200314000510.cmsepdhnywtglrcm@kafai-mbp> (raw)
In-Reply-To: <20200313233535.3557677-1-andriin@fb.com>

On Fri, Mar 13, 2020 at 04:35:35PM -0700, Andrii Nakryiko wrote:
> Amazingly, some libc implementations don't call __NR_nanosleep syscall from
> their nanosleep() APIs. Hammer it down with explicit syscall() call and never
> get back to it again. Also simplify code for timespec initialization.
> 
> I verified that nanosleep is called w/ printk and in exactly same Linux image
> that is used in Travis CI. So it should both sleep and call correct syscall.
> 
> Fixes: 4e1fd25d19e8 ("selftests/bpf: Fix usleep() implementation")
> Signed-off-by: Andrii Nakryiko <andriin@fb.com>
> ---
>  tools/testing/selftests/bpf/test_progs.c | 16 ++++++----------
>  1 file changed, 6 insertions(+), 10 deletions(-)
> 
> diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c
> index f85a06512541..6956d722a463 100644
> --- a/tools/testing/selftests/bpf/test_progs.c
> +++ b/tools/testing/selftests/bpf/test_progs.c
> @@ -35,16 +35,12 @@ struct prog_test_def {
>   */
>  int usleep(useconds_t usec)
>  {
> -	struct timespec ts;
> -
> -	if (usec > 999999) {
> -		ts.tv_sec = usec / 1000000;
> -		ts.tv_nsec = usec % 1000000;
> -	} else {
> -		ts.tv_sec = 0;
> -		ts.tv_nsec = usec;
> -	}
> -	return nanosleep(&ts, NULL);
> +	struct timespec ts = {
> +		.tv_sec = usec / 1000000,
> +		.tv_nsec = usec % 1000000,
usec is in micro and tv_nsec is in nano?

> +	};
> +
> +	return syscall(__NR_nanosleep, &ts, NULL);
>  }
> 

  reply	other threads:[~2020-03-14  0:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-13 23:35 [PATCH bpf-next] selftests/bpf: fix nanosleep for real this time Andrii Nakryiko
2020-03-14  0:05 ` Martin KaFai Lau [this message]
2020-03-14  0:10   ` [Potential Spoof] " Andrii Nakryiko

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=20200314000510.cmsepdhnywtglrcm@kafai-mbp \
    --to=kafai@fb.com \
    --cc=andrii.nakryiko@gmail.com \
    --cc=andriin@fb.com \
    --cc=ast@fb.com \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=kernel-team@fb.com \
    --cc=netdev@vger.kernel.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.