lkml.org 
[lkml]   [2017]   [Nov]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [tip:x86/fpu] bitops: Add clear/set_bit32() to linux/bitops.h

* Heiko Carstens <heiko.carstens@de.ibm.com> wrote:

> On Tue, Oct 17, 2017 at 09:21:46AM -0700, tip-bot for Andi Kleen wrote:
> > Commit-ID: cbe96375025e14fc76f9ed42ee5225120d7210f8
> > Gitweb: https://git.kernel.org/tip/cbe96375025e14fc76f9ed42ee5225120d7210f8
> > Author: Andi Kleen <ak@linux.intel.com>
> > AuthorDate: Fri, 13 Oct 2017 14:56:41 -0700
> > Committer: Ingo Molnar <mingo@kernel.org>
> > CommitDate: Tue, 17 Oct 2017 17:14:56 +0200
> >
> > bitops: Add clear/set_bit32() to linux/bitops.h
> >
> > Add two simple wrappers around set_bit/clear_bit() that accept
> > the common case of an u32 array. This avoids writing
> > casts in all callers.
> >
> > Signed-off-by: Andi Kleen <ak@linux.intel.com>
> > Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
> > Cc: Linus Torvalds <torvalds@linux-foundation.org>
> > Cc: Peter Zijlstra <peterz@infradead.org>
> > Link: http://lkml.kernel.org/r/20171013215645.23166-2-andi@firstfloor.org
> > Signed-off-by: Ingo Molnar <mingo@kernel.org>
> > ---
> > include/linux/bitops.h | 26 ++++++++++++++++++++++++++
> > 1 file changed, 26 insertions(+)
>
> ...
>
> > + * set_bit32 - Set a bit in memory for u32 array
> > + * @nr: Bit to clear
> > + * @addr: u32 * address of bitmap
> > + *
> > + * Same as set_bit, but avoids needing casts for u32 arrays.
> > + */
> > +
> > +static __always_inline void set_bit32(long nr, volatile u32 *addr)
> > +{
> > + set_bit(nr, (volatile unsigned long *)addr);
> > +}
>
> This does not work at all on 64 bit big endian machines. If e.g. the array
> would contain only one 32 bit member set_bit() would write to whatever is
> behind the array.

Yeah, indeed - this got reverted via:

1943dc07b45e: bitops: Revert cbe96375025e ("bitops: Add clear/set_bit32() to linux/bitops.h")

Thanks,

Ingo

\
 
 \ /
  Last update: 2017-11-05 18:41    [W:2.597 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site