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]
Message-ID: <AANLkTi=MRU3Qi6NQfqnCwX34sHL2Rx8AyaqRwrxNVQoM@mail.gmail.com>
Date:	Fri, 22 Oct 2010 16:47:36 -0400
From:	Mike Frysinger <vapier@...too.org>
To:	Andrew Morton <akpm@...ux-foundation.org>
Cc:	Luca Barbieri <luca@...a-barbieri.com>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] lib/atomic64_test: do not build on non-atomic64 systems

On Fri, Oct 22, 2010 at 16:31, Andrew Morton wrote:
> On Fri, 22 Oct 2010 16:14:49 -0400 Mike Frysinger wrote:
>> On Thu, Oct 21, 2010 at 19:24, Andrew Morton wrote:
>> > On Thu, 21 Oct 2010 19:04:36 -0400 Mike Frysinger wrote:
>> >> you can say "lazy" all you like. __i dont see the point in going that route.
>> >
>> > Try
>> >
>> > __ __ __ __grep HAVE arch/x86/Kconfig
>> >
>> > If all of those were instead to use some random #define which the
>> > particular feature happened to define in some header file then we would
>> > have a mess on our hands.
>>
>> fun times.  new tact.
>>
>> Luca: your new atomic64_t test build fails on all arches that lack
>> atomic64_t.  please fix.
>
> That's only part of the problem.  The following won't build also:
>
> net/rds

not true.  that code base is already using my suggestion:
net/rds/rds.h:
#ifdef ATOMIC64_INIT
#define KERNEL_HAS_ATOMIC64
#endif

but this isnt a matter of "use atomic64_t or atomic_t" ... this code
manually takes care of doing a spinlock around a u64 member.  i
imagine if you'd notice this before it was merged you'd have made them
fix this cleanly.

> kernel/perf_event.c

also not true -- this requires arches to opt in to HAVE_PERF_EVENTS
and only arches which have validated it works (i.e. they have
atomic64) have done that

> drivers/staging/octeon

not an issue -- this depends on CPU_CAVIUM_OCTEON which is only
provided by mips which provides atomic64

> drivers/infiniband/hw

the only code usage of atomic64 is in code that already depends on the
Kconfig symbol 64BIT

as for why it depends on this, i dont know ... maybe it's because of atomic64_t

> Or, much better, we implement atomic64 on the offending architectures.

i dont want to give people the impression that 64 atomics are free to
use if in reality they're pretty expensive.  on a Blackfin system, i'd
need to implement every access with basically a spinlock.

> with more to come.  These things should be made dependent upon
> CONFIG_HAVE_ATOMIC64 in Kconfig.  (Can't use #ifdef ATOMIC64_INIT for this!)

these are actually compelling arguments unlike the original one.  even
if all these examples ended up not really being true (only the new
atomic64_t test code is available to build on arches that lack
atomic64).
-mike
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ