From: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
To: Seebs <seebs@seebs.net>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: pseudo: host user contamination
Date: Tue, 27 Mar 2018 22:06:46 +0200 [thread overview]
Message-ID: <lyk1txth9l.fsf@ensc-virt.intern.sigma-chemnitz.de> (raw)
In-Reply-To: <20180327142407.0669955b@seebsdell> (seebs@seebs.net's message of "Tue, 27 Mar 2018 14:24:07 -0500")
Seebs <seebs@seebs.net> writes:
> On Tue, 27 Mar 2018 21:20:24 +0200
> Enrico Scholz <enrico.scholz@sigma-chemnitz.de> wrote:
>
>> SYS_readahead is one of a few syscalls which pass 64 bit arguments on
>> 32 bit architectures. Without the manual splitting, the ABI will
>> cause the compiler to insert a dummy argument so that registers are
>> aligned for 64 bit values.
>
> I'm now even more confused. This sounds like the compiler *would*
> insert the argument without being told to, because the ABI "will cause"
> that, in which case the manual splitting wouldn't be necessary?
For example, by ARM EABI function arguments are transmitted in r0, r1,
r2, r3. But 64 bit values must be aligned to even registers.
So, assuming code like
| void foo(int a, unsigned long long b)
| {
| }
|
| void bar(void)
| {
| foo(1, 2)
| }
The compiler generates
mov r2, #2
mov r3, #0
mov r0, #1
bl foo
e.g. it skips 'r1'.
When you use the variadic syscall(2) function, you pass an extra argument
at front (the syscall number)
syscall(__NR_readahead, fd, offset_64bit, count);
--> when doing the 'svc', fd goes into 'r0' and offset_64bit
into 'r1' + 'r2'
In-kernel function does not have have the syscall-number and is
sys_readahead(int fd, loff_t, count)
--> 'fd' is expected in 'r0', offset in 'r2' + 'r3' due to the ABI
Enrico
next prev parent reply other threads:[~2018-03-27 20:07 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-23 15:33 pseudo: host user contamination Enrico Scholz
2018-03-23 15:43 ` Enrico Scholz
2018-03-23 16:05 ` Burton, Ross
2018-03-23 16:10 ` Enrico Scholz
2018-03-23 16:17 ` Burton, Ross
2018-03-23 16:28 ` Seebs
2018-03-23 16:30 ` Burton, Ross
2018-03-23 16:49 ` Seebs
2018-03-23 16:56 ` Burton, Ross
2018-03-23 17:23 ` Seebs
2018-03-23 23:47 ` Richard Purdie
2018-03-23 23:56 ` Seebs
2018-03-24 0:22 ` Enrico Scholz
2018-03-24 0:33 ` Andre McCurdy
2018-03-24 0:36 ` Seebs
2018-03-24 1:10 ` Andre McCurdy
2018-03-24 1:17 ` Seebs
2018-03-24 1:43 ` Andre McCurdy
2018-03-24 2:44 ` Seebs
2018-03-24 12:36 ` Richard Purdie
2018-03-24 15:12 ` Seebs
2018-03-24 17:10 ` Burton, Ross
2018-03-24 17:23 ` Seebs
2018-03-24 18:12 ` Andre McCurdy
2018-03-24 18:22 ` Seebs
2018-03-24 18:59 ` Andre McCurdy
2018-03-24 19:24 ` Seebs
2018-03-24 19:42 ` Andre McCurdy
2018-03-24 19:50 ` Seebs
2018-03-24 20:12 ` Victor Kamensky
2018-03-24 23:04 ` Burton, Ross
2018-03-25 0:09 ` Victor Kamensky
2018-03-25 2:43 ` Andre McCurdy
2018-03-25 5:37 ` Victor Kamensky
2018-03-25 7:05 ` Andre McCurdy
2018-03-26 18:49 ` Andreas Müller
2018-03-26 19:31 ` Seebs
2018-03-26 20:12 ` Andre McCurdy
2018-03-26 21:07 ` Seebs
2018-03-27 1:10 ` Andre McCurdy
2018-03-27 1:32 ` Seebs
2018-03-27 1:34 ` Andre McCurdy
2018-03-27 2:07 ` Seebs
2018-03-27 2:59 ` Andre McCurdy
2018-03-27 4:41 ` Seebs
2018-03-27 19:11 ` Andre McCurdy
2018-03-27 19:22 ` Seebs
2018-03-27 20:12 ` Andre McCurdy
2018-03-27 20:20 ` Seebs
2018-03-27 20:52 ` Andre McCurdy
2018-03-27 21:10 ` Seebs
2018-03-29 12:04 ` Enrico Scholz
2018-03-29 14:06 ` Seebs
2018-03-27 13:06 ` Enrico Scholz
2018-03-27 15:50 ` Seebs
2018-03-27 16:26 ` Enrico Scholz
2018-03-27 16:46 ` Seebs
2018-03-24 20:22 ` Joshua Watt
2018-03-24 21:01 ` Seebs
2018-03-24 20:27 ` Andre McCurdy
2018-03-27 14:42 ` Enrico Scholz
2018-03-27 15:55 ` Seebs
2018-03-27 16:35 ` Enrico Scholz
2018-03-27 16:40 ` Seebs
2018-03-27 19:20 ` Enrico Scholz
2018-03-27 19:24 ` Seebs
2018-03-27 20:06 ` Enrico Scholz [this message]
2018-03-23 16:06 ` Burton, Ross
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=lyk1txth9l.fsf@ensc-virt.intern.sigma-chemnitz.de \
--to=enrico.scholz@sigma-chemnitz.de \
--cc=openembedded-core@lists.openembedded.org \
--cc=seebs@seebs.net \
/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