From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754173Ab3FRDeo (ORCPT ); Mon, 17 Jun 2013 23:34:44 -0400 Received: from intranet.asianux.com ([58.214.24.6]:24000 "EHLO intranet.asianux.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753973Ab3FRDel (ORCPT ); Mon, 17 Jun 2013 23:34:41 -0400 X-Spam-Score: -100.8 Message-ID: <51BFD51E.3040202@asianux.com> Date: Tue, 18 Jun 2013 11:33:50 +0800 From: Chen Gang User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 MIME-Version: 1.0 To: =?UTF-8?B?VXdlIEtsZWluZS1Lw7ZuaWc=?= , Russell King - ARM Linux , Geert Uytterhoeven CC: Linux-Arch , linux-m68k , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v3] arch/*/asm/include/bitops.h: api issue, find_*_bit() defination are different with each other References: <51AE8FEF.1020809@asianux.com> <51AE903C.6010806@asianux.com> <51AE909D.9080006@asianux.com> <20130605071915.GK23140@pengutronix.de> <51AF225A.5020703@asianux.com> <51B05865.30305@asianux.com> In-Reply-To: <51B05865.30305@asianux.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello related Maintainers: Please help check this patch when you have time. Thanks. On 06/06/2013 05:37 PM, Chen Gang wrote: > > For arm and m68k, they customize find_*_bit(), but the API is different > with 'generic'. > > avr32, s390, and unicore32 also customize find_*_bit(), but the API is > the same with 'generic', and the left architectures all use 'generic'. > > So need change arm and m68k related API to match the 'generic', then > all another modules can face same public API for various architectures. > > Also beautify code and comments to pass "./scripts/checkpatch.pl" > > > Signed-off-by: Chen Gang > --- > arch/arm/include/asm/bitops.h | 26 ++++++++++++++++++-------- > arch/arm/lib/findbit.S | 14 ++++++++++---- > arch/m68k/include/asm/bitops.h | 25 ++++++++++++++----------- > 3 files changed, 42 insertions(+), 23 deletions(-) > > diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h > index e691ec9..83e4d3a 100644 > --- a/arch/arm/include/asm/bitops.h > +++ b/arch/arm/include/asm/bitops.h > @@ -161,18 +161,28 @@ extern int _test_and_change_bit(int nr, volatile unsigned long * p); > /* > * Little endian assembly bitops. nr = 0 -> byte 0 bit 0. > */ > -extern int _find_first_zero_bit_le(const void * p, unsigned size); > -extern int _find_next_zero_bit_le(const void * p, int size, int offset); > -extern int _find_first_bit_le(const unsigned long *p, unsigned size); > -extern int _find_next_bit_le(const unsigned long *p, int size, int offset); > +extern unsigned long _find_first_zero_bit_le(const void *p, > + unsigned long size); > +extern unsigned long _find_next_zero_bit_le(const void *p, unsigned long size, > + unsigned long offset); > +extern unsigned long _find_first_bit_le(const unsigned long *p, > + unsigned long size); > +extern unsigned long _find_next_bit_le(const unsigned long *p, > + unsigned long size, > + unsigned long offset); > > /* > * Big endian assembly bitops. nr = 0 -> byte 3 bit 0. > */ > -extern int _find_first_zero_bit_be(const void * p, unsigned size); > -extern int _find_next_zero_bit_be(const void * p, int size, int offset); > -extern int _find_first_bit_be(const unsigned long *p, unsigned size); > -extern int _find_next_bit_be(const unsigned long *p, int size, int offset); > +extern unsigned long _find_first_zero_bit_be(const void *p, > + unsigned long size); > +extern unsigned long _find_next_zero_bit_be(const void *p, unsigned long size, > + unsigned long offset); > +extern unsigned long _find_first_bit_be(const unsigned long *p, > + unsigned long size); > +extern unsigned long _find_next_bit_be(const unsigned long *p, > + unsigned long size, > + unsigned long offset); > > #ifndef CONFIG_SMP > /* > diff --git a/arch/arm/lib/findbit.S b/arch/arm/lib/findbit.S > index 64f6bc1..817dd70 100644 > --- a/arch/arm/lib/findbit.S > +++ b/arch/arm/lib/findbit.S > @@ -19,7 +19,8 @@ > > /* > * Purpose : Find a 'zero' bit > - * Prototype: int find_first_zero_bit(void *addr, unsigned int maxbit); > + * Prototype: unsigned long find_first_zero_bit(const void *p, > + * unsigned long size); > */ > ENTRY(_find_first_zero_bit_le) > teq r1, #0 > @@ -40,7 +41,9 @@ ENDPROC(_find_first_zero_bit_le) > > /* > * Purpose : Find next 'zero' bit > - * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset) > + * Prototype: unsigned long find_next_zero_bit(const void *p, > + * unsigned long size, > + * unsigned long offset); > */ > ENTRY(_find_next_zero_bit_le) > teq r1, #0 > @@ -60,7 +63,8 @@ ENDPROC(_find_next_zero_bit_le) > > /* > * Purpose : Find a 'one' bit > - * Prototype: int find_first_bit(const unsigned long *addr, unsigned int maxbit); > + * Prototype: unsigned long find_first_bit(const unsigned long *p, > + * unsigned long size); > */ > ENTRY(_find_first_bit_le) > teq r1, #0 > @@ -81,7 +85,9 @@ ENDPROC(_find_first_bit_le) > > /* > * Purpose : Find next 'one' bit > - * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset) > + * Prototype: unsigned long find_next_bit(const unsigned long *p, > + * unsigned long size, > + * unsigned long offset); > */ > ENTRY(_find_next_bit_le) > teq r1, #0 > diff --git a/arch/m68k/include/asm/bitops.h b/arch/m68k/include/asm/bitops.h > index c6baa91..b1d8752 100644 > --- a/arch/m68k/include/asm/bitops.h > +++ b/arch/m68k/include/asm/bitops.h > @@ -320,11 +320,11 @@ static inline int bfchg_mem_test_and_change_bit(int nr, > #include > #else > > -static inline int find_first_zero_bit(const unsigned long *vaddr, > - unsigned size) > +static inline unsigned long find_first_zero_bit(const unsigned long *vaddr, > + unsigned long size) > { > const unsigned long *p = vaddr; > - int res = 32; > + unsigned int res = 32; > unsigned int words; > unsigned long num; > > @@ -346,11 +346,12 @@ out: > } > #define find_first_zero_bit find_first_zero_bit > > -static inline int find_next_zero_bit(const unsigned long *vaddr, int size, > - int offset) > +static inline unsigned long find_next_zero_bit(const unsigned long *vaddr, > + unsigned long size, > + unsigned long offset) > { > const unsigned long *p = vaddr + (offset >> 5); > - int bit = offset & 31UL, res; > + unsigned int bit = offset & 31UL, res; > > if (offset >= size) > return size; > @@ -376,10 +377,11 @@ static inline int find_next_zero_bit(const unsigned long *vaddr, int size, > } > #define find_next_zero_bit find_next_zero_bit > > -static inline int find_first_bit(const unsigned long *vaddr, unsigned size) > +static inline unsigned long find_first_bit(const unsigned long *vaddr, > + unsigned long size) > { > const unsigned long *p = vaddr; > - int res = 32; > + unsigned int res = 32; > unsigned int words; > unsigned long num; > > @@ -401,11 +403,12 @@ out: > } > #define find_first_bit find_first_bit > > -static inline int find_next_bit(const unsigned long *vaddr, int size, > - int offset) > +static inline unsigned long find_next_bit(const unsigned long *vaddr, > + unsigned long size, > + unsigned long offset) > { > const unsigned long *p = vaddr + (offset >> 5); > - int bit = offset & 31UL, res; > + unsigned int bit = offset & 31UL, res; > > if (offset >= size) > return size; > -- Chen Gang Asianux Corporation