lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sun, 5 Nov 2017 18:40:43 +0100
From:   Ingo Molnar <mingo@...nel.org>
To:     Heiko Carstens <heiko.carstens@...ibm.com>
Cc:     hpa@...or.com, peterz@...radead.org, tglx@...utronix.de,
        linux-kernel@...r.kernel.org, torvalds@...ux-foundation.org,
        ak@...ux.intel.com, linux-tip-commits@...r.kernel.org
Subject: Re: [tip:x86/fpu] bitops: Add clear/set_bit32() to linux/bitops.h


* Heiko Carstens <heiko.carstens@...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@...ux.intel.com>
> > AuthorDate: Fri, 13 Oct 2017 14:56:41 -0700
> > Committer:  Ingo Molnar <mingo@...nel.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@...ux.intel.com>
> > Reviewed-by: Thomas Gleixner <tglx@...utronix.de>
> > Cc: Linus Torvalds <torvalds@...ux-foundation.org>
> > Cc: Peter Zijlstra <peterz@...radead.org>
> > Link: http://lkml.kernel.org/r/20171013215645.23166-2-andi@firstfloor.org
> > Signed-off-by: Ingo Molnar <mingo@...nel.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ