linux-hardened/arch/ia64
Tony Luck a119365586 [IA64] Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts
The following build error occured during a ia64 build with
swap-over-NFS patches applied.

net/core/sock.c:274:36: error: initializer element is not constant
net/core/sock.c:274:36: error: (near initialization for 'memalloc_socks')
net/core/sock.c:274:36: error: initializer element is not constant

This is identical to a parisc build error. Fengguang Wu, Mel Gorman
and James Bottomley did all the legwork to track the root cause of
the problem. This fix and entire commit log is shamelessly copied
from them with one extra detail to change a dubious runtime use of
ATOMIC_INIT() to atomic_set() in drivers/char/mspec.c

Dave Anglin says:
> Here is the line in sock.i:
>
> struct static_key memalloc_socks = ((struct static_key) { .enabled =
> ((atomic_t) { (0) }) });

The above line contains two compound literals.  It also uses a designated
initializer to initialize the field enabled.  A compound literal is not a
constant expression.

The location of the above statement isn't fully clear, but if a compound
literal occurs outside the body of a function, the initializer list must
consist of constant expressions.

Cc: <stable@vger.kernel.org>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2012-07-26 10:55:26 -07:00
..
configs Merge branch 'misc-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux 2011-11-02 16:52:17 -07:00
dig Disintegrate asm/system.h for IA64 2012-03-28 18:30:02 +01:00
hp Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2012-04-04 17:13:43 -07:00
include/asm [IA64] Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts 2012-07-26 10:55:26 -07:00
kernel Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-06-01 11:53:44 -07:00
kvm [IA64] Mark PARAVIRT and KVM as broken 2012-07-25 11:45:31 -07:00
lib Fix common misspellings 2011-03-31 11:26:23 -03:00
mm Disintegrate asm/system.h for IA64 2012-03-28 18:30:02 +01:00
oprofile Disintegrate asm/system.h for IA64 2012-03-28 18:30:02 +01:00
pci [IA64] Rename platform_name to ia64_platform_name 2012-07-25 11:47:16 -07:00
scripts scripts: change scripts to use system python instead of env 2010-02-02 14:33:56 +01:00
sn Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2012-04-04 17:13:43 -07:00
uv ia64: change to new flag variables 2011-03-17 14:02:56 +01:00
xen Disintegrate asm/system.h for IA64 2012-03-28 18:30:02 +01:00
install.sh kbuild: use INSTALLKERNEL to select customized installkernel script 2009-09-20 12:18:14 +02:00
Kconfig [IA64] Mark PARAVIRT and KVM as broken 2012-07-25 11:45:31 -07:00
Kconfig.debug
Makefile Merge commit 'v2.6.35' into kbuild/kbuild 2010-08-04 13:59:13 +02:00
module.lds