mbox series

[v2,0/4] arm64: asm improvements

Message ID 20230314153700.787701-1-mark.rutland@arm.com (mailing list archive)
Headers show
Series arm64: asm improvements | expand

Message

Mark Rutland March 14, 2023, 3:36 p.m. UTC
This series contains a few minor asm cleanups/improvements I've
collected since the last cycle, one of which was previously posted on
its own [1], hence sending as a v2.

Largely, this is simplifying/relaxing constraints to allow for better
code generation. The cmpxchg patch also drops some C code that's made
redundant with the relaxed constraints.

Since v1:
* Accumulate uaccess asm patches
* lse/cmpxchg: allow use of [WX]ZR for 'new'
* lse/cmpxchg: cleanup commit message

[1] https://lore.kernel.org/linux-arm-kernel/20230206115852.265006-1-mark.rutland@arm.com/

I've given these basic boot testing atop v6.3-rc2 under QEMU TCG mode.

Thanks,
Mark.

Mark Rutland (4):
  arm64: atomics: lse: improve cmpxchg implementation
  arm64: uaccess: permit __smp_store_release() to use zero register
  arm64: uaccess: permit put_{user,kernel} to use zero register
  arm64: uaccess: remove unnecessary earlyclobber

 arch/arm64/include/asm/atomic_lse.h | 17 +++++------------
 arch/arm64/include/asm/barrier.h    | 10 +++++-----
 arch/arm64/include/asm/uaccess.h    |  4 ++--
 3 files changed, 12 insertions(+), 19 deletions(-)

Comments

Will Deacon March 28, 2023, 9:15 p.m. UTC | #1
On Tue, 14 Mar 2023 15:36:56 +0000, Mark Rutland wrote:
> This series contains a few minor asm cleanups/improvements I've
> collected since the last cycle, one of which was previously posted on
> its own [1], hence sending as a v2.
> 
> Largely, this is simplifying/relaxing constraints to allow for better
> code generation. The cmpxchg patch also drops some C code that's made
> redundant with the relaxed constraints.
> 
> [...]

Applied to arm64 (for-next/asm), thanks!

[1/4] arm64: atomics: lse: improve cmpxchg implementation
      https://git.kernel.org/arm64/c/e5cacb540fd2
[2/4] arm64: uaccess: permit __smp_store_release() to use zero register
      https://git.kernel.org/arm64/c/39c8275de81c
[3/4] arm64: uaccess: permit put_{user,kernel} to use zero register
      https://git.kernel.org/arm64/c/4a3f806eca09
[4/4] arm64: uaccess: remove unnecessary earlyclobber
      https://git.kernel.org/arm64/c/172420865b29

Cheers,