Message ID | b6610c43-75fe-64ee-8b22-867f970e3fe7@free.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Tracking number in the patch mill: http://www.armlinux.org.uk/developer/patches/viewpatch.php?id=8669/1
On 05/04/2017 14:21, Mason wrote: > include/asm-generic/bitops/find.h declares: > > extern unsigned long > find_first_zero_bit(const unsigned long *addr, unsigned long size); > > while arch/arm/include/asm/bitops.h declares: > > #define find_first_zero_bit(p,sz) _find_first_zero_bit_le(p,sz) > extern int _find_first_zero_bit_le(const void * p, unsigned size); > > Align the arm prototypes to the generic API, to have gcc report > inadequate arguments, such as pointer to u32. > > Signed-off-by: Mason <slash.tmp@free.fr> > --- > arch/arm/include/asm/bitops.h | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h > index e943e6cee254..f308c8c40cb9 100644 > --- a/arch/arm/include/asm/bitops.h > +++ b/arch/arm/include/asm/bitops.h > @@ -159,16 +159,16 @@ 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_zero_bit_le(const unsigned long *p, unsigned size); > +extern int _find_next_zero_bit_le(const unsigned long *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); > > /* > * 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_zero_bit_be(const unsigned long *p, unsigned size); > +extern int _find_next_zero_bit_be(const unsigned long *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); Marc, it was you who pointed out that it is not valid to pass the address of a u32 to find_first_zero_bit() What are your thoughts on this trivial patch? Russell, same question. If no one thinks this patch is useful, I'll drop it and move on. Regards.
diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h index e943e6cee254..f308c8c40cb9 100644 --- a/arch/arm/include/asm/bitops.h +++ b/arch/arm/include/asm/bitops.h @@ -159,16 +159,16 @@ 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_zero_bit_le(const unsigned long *p, unsigned size); +extern int _find_next_zero_bit_le(const unsigned long *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); /* * 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_zero_bit_be(const unsigned long *p, unsigned size); +extern int _find_next_zero_bit_be(const unsigned long *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);
include/asm-generic/bitops/find.h declares: extern unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size); while arch/arm/include/asm/bitops.h declares: #define find_first_zero_bit(p,sz) _find_first_zero_bit_le(p,sz) extern int _find_first_zero_bit_le(const void * p, unsigned size); Align the arm prototypes to the generic API, to have gcc report inadequate arguments, such as pointer to u32. Signed-off-by: Mason <slash.tmp@free.fr> --- arch/arm/include/asm/bitops.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)