From mboxrd@z Thu Jan 1 00:00:00 1970 From: Russell King - ARM Linux Subject: Re: [PATCHv5] atomic: add *_dec_not_zero Date: Sun, 4 Dec 2011 21:33:16 +0000 Message-ID: <20111204213316.GB14542@n2100.arm.linux.org.uk> References: <1323013369-29691-1-git-send-email-sven@narfation.org> Reply-To: The list for a Better Approach To Mobile Ad-hoc Networking Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-m32r-ja-rQhvJZKUsGBRYuoOT4C5/9i2O/JbrIOy@public.gmane.org, linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org, linux-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Benjamin Herrenschmidt , "H. Peter Anvin" , Heiko Carstens , Randy Dunlap , Paul Mackerras , Helge Deller , sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-hexagon-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-s390-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, user-mode-linux-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, Richard Weinberger , Hirokazu Takata , x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, "James E.J. Bottomley" , Ingo Molnar , Matt Turner , Fenghua Yu , Arnd Bergmann , Jeff Dike , Chris Metcalf , linux-m32r-rQhvJZKUsGBRYuoOT4C5/9i2O/JbrIOy@public.gmane.org, Iv To: Sven Eckelmann Return-path: In-Reply-To: <1323013369-29691-1-git-send-email-sven-KaDOiPu9UxWEi8DpZVb4nw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: b.a.t.m.a.n-bounces-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r@public.gmane.org List-ID: On Sun, Dec 04, 2011 at 04:42:49PM +0100, Sven Eckelmann wrote: > diff --git a/arch/alpha/include/asm/atomic.h b/arch/alpha/include/asm/atomic.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1, 0) > diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1LL, 0LL) > diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1, 0) > diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1, 0) > diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1, 0) > diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1, 0) > diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1, 0) > diff --git a/arch/sparc/include/asm/atomic_64.h b/arch/sparc/include/asm/atomic_64.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1, 0) > diff --git a/arch/tile/include/asm/atomic_32.h b/arch/tile/include/asm/atomic_32.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1LL, 0LL) > diff --git a/arch/tile/include/asm/atomic_64.h b/arch/tile/include/asm/atomic_64.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1, 0) > diff --git a/arch/x86/include/asm/atomic64_64.h b/arch/x86/include/asm/atomic64_64.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1, 0) > diff --git a/include/asm-generic/atomic64.h b/include/asm-generic/atomic64.h > +#define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1LL, 0LL) I think this is rather silly - all these definitions are very similar to each other. Is there really no way to put this into include/linux/atomic.h, maybe as something like: #ifndef atomic64_dec_not_zero #define atomic64_dec_not_zero(v) atomic64_add_unless((v), -1, 0) #endif and avoid having to add essentially the same definition to 12 individual files? Architectures which want to override it can do by the following: #define atomic64_dec_not_zero atomic64_dec_not_zero which won't have any effect on C nor asm code.