[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Znwdf2c1pYetrsHe@xhacker>
Date: Wed, 26 Jun 2024 21:54:07 +0800
From: Jisheng Zhang <jszhang@...nel.org>
To: Andreas Schwab <schwab@...e.de>
Cc: Arnd Bergmann <arnd@...db.de>, Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>, linux-riscv@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/4] riscv: uaccess: use input constraints for ptr of
__put_user
On Wed, Jun 26, 2024 at 03:35:54PM +0200, Andreas Schwab wrote:
> On Jun 26 2024, Jisheng Zhang wrote:
>
> > no output constraints either. It just uses "r" input constraints to tell
> > gcc to read the store address into one proper GP reg.
>
> Again, this is backwards. Being an input operand means the asm is using
> this operand as an input to the instructions. The compiler needs to
> arrange to put the value in the allocated operand location according to
> the constraint.
Hi Andreas,
Your information is clearly received. What confused me is:
why x86 and arm64 don't put the "addr" of __put_user into output
constraints? Especially the following comments, why this is "read"
from memory?
* Tell gcc we read from memory instead of writing: this is because
* we do not write to any memory gcc knows about, so there are no
* aliasing issues.
can you please kindly help me understand the tricky points here?
thanks
>
> --
> Andreas Schwab, SUSE Labs, schwab@...e.de
> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
> "And now for something completely different."
Powered by blists - more mailing lists