Linux 3.4.100
Fix gcc-4.9.0 miscompilation of load_balance() in scheduler

Michel Dänzer and a couple of other people reported inexplicable random
oopses in the scheduler, and the cause turns out to be gcc mis-compiling
the load_balance() function when debugging is enabled.  The gcc bug
apparently goes back to gcc-4.5, but slight optimization changes means
that it now showed up as a problem in 4.9.0 and 4.9.1.

    The instruction scheduling problem causes gcc to schedule a spill
operation to before the stack frame has been created, which in turn can
corrupt the spilled value if an interrupt comes in.  There may be other
effects of this bug too, but that's the code generation problem seen in
Michel's case.

    This is fixed in current gcc HEAD, but the workaround as suggested
by Markus Trippelsdorf is pretty simple: use -fno-var-tracking-
assignments when compiling the kernel, which disables the gcc code that
causes the problem.  This can result in slightly worse debug information
for variable accesses, but that is infinitely preferable to actual code
generation problems.

    Doing this unconditionally (not just for CONFIG_DEBUG_INFO) also
allows non-debug builds to verify that the debug build would be
identical: we can do

        export GCC_COMPARE_DEBUG=1

    to make gcc internally verify that the result of the build is
independent of the "-g" flag (it will make the compiler build everything
twice, toggling the debug flag, and compare the results).

    Without the "-fno-var-tracking-assignments" option, the build would
fail (even with 4.8.3 that didn't show the actual stack frame bug) with
a gcc compare failure.

    See also gcc bugzilla:

    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801

    Reported-by: Michel Dänzer <michel@daenzer.net>
    Suggested-by: Markus Trippelsdorf <markus@trippelsdorf.de>
    Cc: Jakub Jelinek <jakub@redhat.com>
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
version 1.1.3
arch/mm changes from 3.16.rc
Linux 3.4.101
Revert "msm: enable idle & suspend sleep modes"

This reverts commit 58bd6ab4e67c5c88f42ef3b09bab084d264d42e8.
Revert "sched: disable autogroup"

This reverts commit 16e4ca3f2551cd376b67bc85b49103553a93778e.
Revert "mm: compaction: do not accidentally skip pageblocks in the migrate sc…"

This reverts commit 3a0b98f4bcec3fcd2ce99c24bde03930aba7f408.
Revert "defonfig: arm: Enable ERRATA_775420 & ERRATA_798181"

This reverts commit 1e3f44f965ce428288efdbf62666948a6c76ca2d.
Revert "ARM: Use TTBR1 instead of reserved context ID"

This reverts commit b2baaa298df979465e0046f3b57eb1b41d6c0bef.
Revert "ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails"

This reverts commit 189d14b057e4cdf69625af510407f36bd9d8ca20.
Revert "arch/mm changes from 3.16.rc"

This reverts commit 149dd1e604fb0e938ce7ea4785c515f880c8130c.
Revert "ARM: 7784/1: mm: ensure SMP alternates assemble to exactly 4 bytes with Thumb-2"

This reverts commit d815f78a8431e78a812b2247e7ab1ce433ba88ae.
Revert "ARM: 7691/1: mm: kill unused TLB_CAN_READ_FROM_L1_CACHE and use ALT_SMP instead"

This reverts commit 18a3c5b0e808d7f42c1f5200d35274016593f92d.
Revert "ARM: 7660/1: tlb: add branch predictor maintenance operations"

This reverts commit e2f612143eb90e94acc94970fefd83bc6e9170a2.
Revert "ARM: 7678/1: Work around faulty ISAR0 register in some Krait CPUs"

This reverts commit 33ad6a07d44bf9af8258da120bfe5fd61144aca4.
Revert "ARM: 7747/1: pcpu: ensure __my_cpu_offset cannot be re-ordered across barrier()"

This reverts commit 2f1e91ed945a8476825cde930cd4c5be4100bba3.
Revert "ARM: 7587/1: implement optimized percpu variable access"

This reverts commit 3496f85415d6b03f9579f1468b53312aae786e49.
Revert "ARM: 7680/1: Detect support for SDIV/UDIV from ISAR0 register"

This reverts commit 6f169fef633982d0facdf5033e592f6f8407fd5d.
Revert "lib: cpu_rmap: avoid flushing all workqueues"

This reverts commit 074c3b9e57acdefe07904e894a6049c2ac19a3d0.