lkml.org 
[lkml]   [2019]   [May]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 00/18] locking/atomic: atomic64 type cleanup
Date
Currently architectures return inconsistent types for atomic64 ops. Some return
long (e..g. powerpc), some return long long (e.g. arc), and some return s64
(e.g. x86).

This is a bit messy, and causes unnecessary pain (e.g. as values must be cast
before they can be printed [1]).

This series reworks all the atomic64 implementations to use s64 as the base
type for atomic64_t (as discussed [2]), and to ensure that this type is
consistently used for parameters and return values in the API, avoiding further
problems in this area.

This series (based on v5.1-rc1) can also be found in my atomics/type-cleanup
branch [3] on kernel.org.

Thanks,
Mark.

[1] https://lkml.kernel.org/r/20190310183051.87303-1-cai@lca.pw
[2] https://lkml.kernel.org/r/20190313091844.GA24390@hirez.programming.kicks-ass.net
[3] git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git atomics/type-cleanup

Mark Rutland (18):
locking/atomic: crypto: nx: prepare for atomic64_read() conversion
locking/atomic: s390/pci: prepare for atomic64_read() conversion
locking/atomic: generic: use s64 for atomic64
locking/atomic: alpha: use s64 for atomic64
locking/atomic: arc: use s64 for atomic64
locking/atomic: arm: use s64 for atomic64
locking/atomic: arm64: use s64 for atomic64
locking/atomic: ia64: use s64 for atomic64
locking/atomic: mips: use s64 for atomic64
locking/atomic: powerpc: use s64 for atomic64
locking/atomic: riscv: fix atomic64_sub_if_positive() offset argument
locking/atomic: riscv: use s64 for atomic64
locking/atomic: s390: use s64 for atomic64
locking/atomic: sparc: use s64 for atomic64
locking/atomic: x86: use s64 for atomic64
locking/atomic: use s64 for atomic64_t on 64-bit
locking/atomic: crypto: nx: remove redundant casts
locking/atomic: s390/pci: remove redundant casts

arch/alpha/include/asm/atomic.h | 20 +++++------
arch/arc/include/asm/atomic.h | 41 +++++++++++-----------
arch/arm/include/asm/atomic.h | 50 +++++++++++++-------------
arch/arm64/include/asm/atomic_ll_sc.h | 20 +++++------
arch/arm64/include/asm/atomic_lse.h | 34 +++++++++---------
arch/ia64/include/asm/atomic.h | 20 +++++------
arch/mips/include/asm/atomic.h | 22 ++++++------
arch/powerpc/include/asm/atomic.h | 44 +++++++++++------------
arch/riscv/include/asm/atomic.h | 44 ++++++++++++-----------
arch/s390/include/asm/atomic.h | 38 ++++++++++----------
arch/s390/pci/pci_debug.c | 2 +-
arch/sparc/include/asm/atomic_64.h | 8 ++---
arch/x86/include/asm/atomic64_32.h | 66 +++++++++++++++++------------------
arch/x86/include/asm/atomic64_64.h | 38 ++++++++++----------
drivers/crypto/nx/nx-842-pseries.c | 6 ++--
include/asm-generic/atomic64.h | 20 +++++------
include/linux/types.h | 2 +-
lib/atomic64.c | 32 ++++++++---------
18 files changed, 252 insertions(+), 255 deletions(-)

--
2.11.0

\
 
 \ /
  Last update: 2019-05-22 15:23    [W:0.275 / U:0.228 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site