From: "Dmitry V. Levin" <ldv@strace.io>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Alexey Gladkov <legion@kernel.org>,
Oleg Nesterov <oleg@redhat.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Eugene Syromyatnikov <evgsyr@gmail.com>,
Mike Frysinger <vapier@gentoo.org>,
Renzo Davoli <renzo@cs.unibo.it>,
Davide Berardi <berardi.dav@gmail.com>,
strace-devel@lists.strace.io,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Nicholas Piggin <npiggin@gmail.com>,
Naveen N Rao <naveen@kernel.org>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/7] powerpc: properly negate error in syscall_set_return_value()
Date: Mon, 27 Jan 2025 13:44:39 +0200 [thread overview]
Message-ID: <20250127114439.GC29522@strace.io> (raw)
In-Reply-To: <7e7c7659-5cf7-42e9-81d6-b91963d8c892@csgroup.eu>
On Mon, Jan 27, 2025 at 12:36:53PM +0100, Christophe Leroy wrote:
> Le 27/01/2025 à 12:20, Dmitry V. Levin a écrit :
> > On Thu, Jan 23, 2025 at 11:07:21PM +0100, Christophe Leroy wrote:
> > [...]
> >> To add a bit more to the confusion,
> >
> > Looks like there is no end to it:
> >
> > static inline long regs_return_value(struct pt_regs *regs)
> > {
> > if (trap_is_scv(regs))
> > return regs->gpr[3];
> >
> > if (is_syscall_success(regs))
> > return regs->gpr[3];
> > else
> > return -regs->gpr[3];
> > }
> >
> > static inline void regs_set_return_value(struct pt_regs *regs, unsigned long rc)
> > {
> > regs->gpr[3] = rc;
> > }
> >
> > This doesn't look consistent, does it?
> >
> >
>
> That regs_set_return_value() looks pretty similar to
> syscall_get_return_value().
Yes, but here similarities end, and differences begin.
> regs_set_return_value() documentation in asm-generic/syscall.h
> explicitely says: This value is meaningless if syscall_get_error()
> returned nonzero
>
> Is it the same with regs_set_return_value(), only meaningfull where
> there is no error ?
Did you mean syscall_set_return_value? No, it explicitly has two
arguments, "int error" and "long val", so it can be used to either
clear or set the error condition as specified by the caller.
> By the way, why have two very similar APIs, one in syscall.h one in
> ptrace.h ?
I have no polite answer to this, sorry.
--
ldv
next prev parent reply other threads:[~2025-01-27 11:44 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20250113170925.GA392@strace.io>
2025-01-13 17:10 ` [PATCH v2 1/7] powerpc: properly negate error in syscall_set_return_value() Dmitry V. Levin
2025-01-13 17:34 ` Christophe Leroy
2025-01-13 17:54 ` Dmitry V. Levin
2025-01-14 17:04 ` Dmitry V. Levin
2025-01-20 13:51 ` Christophe Leroy
2025-01-20 17:12 ` Dmitry V. Levin
2025-01-21 11:13 ` Madhavan Srinivasan
2025-01-21 11:28 ` Christophe Leroy
2025-01-21 12:25 ` Madhavan Srinivasan
2025-01-21 12:42 ` Dmitry V. Levin
2025-01-23 18:28 ` Dmitry V. Levin
2025-01-23 19:11 ` Eugene Syromyatnikov
2025-01-23 22:16 ` Dmitry V. Levin
2025-01-23 22:07 ` Christophe Leroy
2025-01-23 22:35 ` Dmitry V. Levin
2025-01-27 11:20 ` Dmitry V. Levin
2025-01-27 11:36 ` Christophe Leroy
2025-01-27 11:44 ` Dmitry V. Levin [this message]
2025-01-27 12:04 ` Christophe Leroy
2025-01-27 12:26 ` Dmitry V. Levin
2025-01-23 23:43 ` Dmitry V. Levin
2025-01-24 15:18 ` Alexey Gladkov
2025-01-25 0:25 ` Dmitry V. Levin
2025-01-25 12:18 ` Michael Ellerman
2025-01-27 11:13 ` Dmitry V. Levin
2025-01-25 12:17 ` Michael Ellerman
2025-01-25 20:48 ` Dmitry V. Levin
2025-01-25 12:17 ` Michael Ellerman
2025-01-25 21:25 ` Dmitry V. Levin
2025-01-14 13:00 ` Alexey Gladkov
2025-01-14 13:48 ` Dmitry V. Levin
2025-01-14 14:53 ` Alexey Gladkov
2025-01-13 17:11 ` [PATCH v2 2/7] mips: fix mips_get_syscall_arg() for O32 and N32 Dmitry V. Levin
2025-01-14 3:29 ` Maciej W. Rozycki
2025-01-14 8:47 ` Dmitry V. Levin
2025-01-14 16:03 ` Maciej W. Rozycki
2025-01-14 16:42 ` Dmitry V. Levin
2025-01-13 17:11 ` [PATCH v2 3/7] syscall.h: add syscall_set_arguments() and syscall_set_return_value() Dmitry V. Levin
2025-01-13 17:11 ` Dmitry V. Levin
2025-01-13 17:11 ` Dmitry V. Levin
2025-01-16 2:20 ` Charlie Jenkins
2025-01-16 2:20 ` Charlie Jenkins
2025-01-16 2:20 ` Charlie Jenkins
2025-01-17 0:59 ` H. Peter Anvin
2025-01-17 0:59 ` H. Peter Anvin
2025-01-17 0:59 ` H. Peter Anvin
2025-01-17 15:45 ` Eugene Syromyatnikov
2025-01-17 15:45 ` Eugene Syromyatnikov
2025-01-17 15:45 ` Eugene Syromyatnikov
2025-01-18 4:34 ` H. Peter Anvin
2025-01-18 4:34 ` H. Peter Anvin
2025-01-18 4:34 ` H. Peter Anvin
2025-01-13 17:11 ` [PATCH v2 4/7] syscall.h: introduce syscall_set_nr() Dmitry V. Levin
2025-01-13 17:11 ` Dmitry V. Levin
2025-01-13 17:11 ` Dmitry V. Levin
2025-01-16 2:20 ` Charlie Jenkins
2025-01-16 2:20 ` Charlie Jenkins
2025-01-16 2:20 ` Charlie Jenkins
2025-01-13 17:12 ` [PATCH v2 5/7] ptrace_get_syscall_info: factor out ptrace_get_syscall_info_op Dmitry V. Levin
2025-01-13 17:12 ` [PATCH v2 6/7] ptrace: introduce PTRACE_SET_SYSCALL_INFO request Dmitry V. Levin
2025-01-15 16:38 ` Oleg Nesterov
2025-01-15 17:36 ` Dmitry V. Levin
2025-01-15 19:10 ` Oleg Nesterov
2025-01-16 1:55 ` Charlie Jenkins
2025-01-16 8:33 ` Dmitry V. Levin
2025-01-16 21:07 ` Charlie Jenkins
2025-01-16 21:47 ` Charlie Jenkins
2025-01-16 15:21 ` Oleg Nesterov
2025-01-16 16:04 ` Dmitry V. Levin
2025-01-16 16:40 ` Dmitry V. Levin
2025-01-17 14:45 ` Oleg Nesterov
2025-01-17 15:06 ` Dmitry V. Levin
2025-01-17 15:32 ` Oleg Nesterov
2025-01-17 16:22 ` Dmitry V. Levin
2025-01-18 14:13 ` Oleg Nesterov
2025-01-19 12:44 ` Dmitry V. Levin
2025-01-20 19:56 ` Oleg Nesterov
2025-01-19 14:38 ` Aleksa Sarai
2025-01-13 17:12 ` [PATCH v2 7/7] selftests/ptrace: add a test case for PTRACE_SET_SYSCALL_INFO Dmitry V. Levin
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=20250127114439.GC29522@strace.io \
--to=ldv@strace.io \
--cc=berardi.dav@gmail.com \
--cc=christophe.leroy@csgroup.eu \
--cc=evgsyr@gmail.com \
--cc=legion@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=naveen@kernel.org \
--cc=npiggin@gmail.com \
--cc=oleg@redhat.com \
--cc=renzo@cs.unibo.it \
--cc=strace-devel@lists.strace.io \
--cc=vapier@gentoo.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.