[RFC V6 2/3] arm:add bitrev.h file to support rbit instruction

Takashi Iwai tiwai at suse.de
Thu Nov 13 23:03:01 PST 2014


At Thu, 13 Nov 2014 22:55:09 -0800,
Joe Perches wrote:
> 
> On Fri, 2014-11-14 at 07:37 +0100, Takashi Iwai wrote:
> > At Thu, 13 Nov 2014 16:05:30 -0800,
> > Joe Perches wrote:
> > > 
> > > On Thu, 2014-11-13 at 23:53 +0000, Russell King - ARM Linux wrote:
> > > > On Fri, Oct 31, 2014 at 01:42:44PM +0800, Wang, Yalin wrote:
> > > > > This patch add bitrev.h file to support rbit instruction,
> > > > > so that we can do bitrev operation by hardware.
> > > > > Signed-off-by: Yalin Wang <yalin.wang at sonymobile.com>
> > > > > ---
> > > > >  arch/arm/Kconfig              |  1 +
> > > > >  arch/arm/include/asm/bitrev.h | 21 +++++++++++++++++++++
> > > > >  2 files changed, 22 insertions(+)
> > > > >  create mode 100644 arch/arm/include/asm/bitrev.h
> > > > > 
> > > > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > > > > index 89c4b5c..be92b3b 100644
> > > > > --- a/arch/arm/Kconfig
> > > > > +++ b/arch/arm/Kconfig
> > > > > @@ -28,6 +28,7 @@ config ARM
> > > > >  	select HANDLE_DOMAIN_IRQ
> > > > >  	select HARDIRQS_SW_RESEND
> > > > >  	select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
> > > > > +	select HAVE_ARCH_BITREVERSE if (CPU_V7M || CPU_V7)
> > > > 
> > > > Looking at this, this is just wrong.  Take a moment to consider what
> > > > happens if we build a kernel which supports both ARMv6 _and_ ARMv7 CPUs.
> > > > What happens if an ARMv6 CPU tries to execute an rbit instruction?
> > > > 
> > > > Second point (which isn't obvious from your submissions on-list) is that
> > > > you've loaded the patch system up with patches for other parts of the
> > > > kernel tree for which I am not responsible for.  As such, I can't take
> > > > those patches without the sub-tree maintainer acking them.  Also, the
> > > > commit text in those patches look weird:
> > > > 
> > > > 6fire: Convert byte_rev_table uses to bitrev8
> > > > 
> > > > Use the inline function instead of directly indexing the array.
> > > > 
> > > > This allows some architectures with hardware instructions for bit
> > > > reversals to eliminate the array.
> > > > 
> > > > Signed-off-by: Joe Perches <(address hidden)>
> > > > Signed-off-by: Yalin Wang <(address hidden)>
> > > > 
> > > > Why is Joe signing off on these patches?
> > > > Shouldn't his entry be an Acked-by: ?
> > > 
> > > I didn't sign off on or ack the "add bitrev.h" patch.
> > > 
> > > I created 2 patches that converted direct uses of byte_rev_table
> > > to that bitrev8 static inline.  One of them is already in -next
> > > 
> > > 7a1283d8f5298437a454ec477384dcd9f9f88bac carl9170: Convert byte_rev_table uses to bitrev8
> > > 
> > > The other hasn't been applied.
> > > 
> > > https://lkml.org/lkml/2014/10/28/1056
> > > 
> > > Maybe Takashi Iwai will get around to it one day.
> > 
> > It was not clear to me whether I should apply it individually from
> > others in the whole thread.  Your description looked as if it makes
> > sense only with ARM's bitrev8 support.
> > 
> > So, again: should I apply this now to my tree?
> 
> I it would be good to apply even if the
> bitrev patch for arm is never applied.
> 
> $ git grep -w bitrev8 | wc -l
> 110
> 
> vs
> 
> this last direct use of byte_rev_table.

Alright, I picked up your original patch and merged.


thanks,

Takashi



More information about the linux-arm-kernel mailing list