Commit graph

837 commits

Author SHA1 Message Date
Zefan Li
343a5fbeef Linux 3.4.112 2016-04-27 18:55:30 +08:00
Zefan Li
3389604d77 Linux 3.4.111 2016-03-21 09:17:59 +08:00
Zefan Li
3edd6224c2 Linux 3.4.110 2015-10-22 09:20:09 +08:00
Zefan Li
4a55c0cfdd Linux 3.4.109 2015-09-18 09:20:47 +08:00
Zefan Li
cf1b3dad6c Linux 3.4.108 2015-06-19 11:40:35 +08:00
Zefan Li
56b48fcda5 Linux 3.4.107 2015-04-14 17:34:05 +08:00
Zefan Li
28895317f9 Linux 3.4.106 2015-02-02 17:05:26 +08:00
Zefan Li
7fd7a446b1 Linux 3.4.105 2014-12-01 18:02:45 +08:00
Zefan Li
bb4a05a040 Linux 3.4.104 2014-09-25 11:49:19 +08:00
Greg Kroah-Hartman
9f089cfb4b Linux 3.4.103 2014-08-14 09:07:43 +08:00
Greg Kroah-Hartman
0a9d91dca3 Linux 3.4.102 2014-08-07 13:54:57 -07:00
Greg Kroah-Hartman
91f7c8cbc8 Linux 3.4.101 2014-07-31 14:56:22 -07:00
Linus Torvalds
e5c662d1f7 Fix gcc-4.9.0 miscompilation of load_balance() in scheduler
commit 2062afb4f8 upstream.

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>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-31 12:54:52 -07:00
Greg Kroah-Hartman
82f9c4a309 Linux 3.4.100 2014-07-28 07:07:01 -07:00
Greg Kroah-Hartman
0758142f8a Linux 3.4.99 2014-07-17 15:55:52 -07:00
Greg Kroah-Hartman
0bbbf93fb1 Linux 3.4.98 2014-07-09 10:52:25 -07:00
Greg Kroah-Hartman
79136399ed Linux 3.4.97 2014-07-06 18:50:29 -07:00
Greg Kroah-Hartman
3e3d5f6146 Linux 3.4.96 2014-06-30 20:05:38 -07:00
Greg Kroah-Hartman
12470e74f3 Linux 3.4.95 2014-06-26 15:10:41 -04:00
Greg Kroah-Hartman
95f3bb9bd6 Linux 3.4.94 2014-06-16 13:46:06 -07:00
Greg Kroah-Hartman
c75c3b96fa Linux 3.4.93 2014-06-11 12:25:24 -07:00
Greg Kroah-Hartman
22feaed11f Linux 3.4.92 2014-06-07 16:02:54 -07:00
Greg Kroah-Hartman
25c7b871a0 Linux 3.4.91 2014-05-18 05:26:09 -07:00
Greg Kroah-Hartman
f39c8bf9da Linux 3.4.90 2014-05-13 14:11:45 +02:00
Greg Kroah-Hartman
d89a13cf5f Linux 3.4.89 2014-05-06 07:52:14 -07:00
Greg Kroah-Hartman
5c5994f5a1 Linux 3.4.88 2014-04-26 17:13:46 -07:00
Greg Kroah-Hartman
9660cc51f8 Linux 3.4.87 2014-04-14 06:45:17 -07:00
Greg Kroah-Hartman
7ae240637a Linux 3.4.86 2014-04-03 11:59:21 -07:00
Greg Kroah-Hartman
72cb2a7f42 Linux 3.4.85 2014-03-30 21:40:45 -07:00
Greg Kroah-Hartman
b1cee752ee Linux 3.4.84 2014-03-23 21:38:33 -07:00
Greg Kroah-Hartman
0c4f5371eb Linux 3.4.83 2014-03-11 16:10:41 -07:00
Greg Kroah-Hartman
2606524141 Linux 3.4.82 2014-02-22 10:33:35 -08:00
Greg Kroah-Hartman
dd12c7c4cb Linux 3.4.81 2014-02-20 10:46:04 -08:00
Greg Kroah-Hartman
a6d2ebcda7 Linux 3.4.80 2014-02-13 13:00:25 -08:00
Greg Kroah-Hartman
e3b1f4138a Linux 3.4.79 2014-02-06 11:05:59 -08:00
Greg Kroah-Hartman
a13224074a Linux 3.4.78 2014-01-29 05:11:12 -08:00
Greg Kroah-Hartman
4b9c8e9bd1 Linux 3.4.77 2014-01-15 15:27:19 -08:00
Greg Kroah-Hartman
94f578e6ab Linux 3.4.76 2014-01-08 09:42:33 -08:00
Greg Kroah-Hartman
84dfcb758b Linux 3.4.75 2013-12-20 07:34:35 -08:00
Greg Kroah-Hartman
827f121bfd Linux 3.4.74 2013-12-11 22:34:28 -08:00
Greg Kroah-Hartman
50b673d2fe Linux 3.4.73 2013-12-08 08:12:17 -08:00
Greg Kroah-Hartman
44d19f5a04 Linux 3.4.72 2013-12-04 10:50:53 -08:00
Greg Kroah-Hartman
71ea173874 Linux 3.4.71 2013-11-29 10:50:58 -08:00
Greg Kroah-Hartman
234d96ee0f Linux 3.4.70 2013-11-20 10:43:41 -08:00
Greg Kroah-Hartman
14aa272fcd Linux 3.4.69 2013-11-13 12:02:08 +09:00
Greg Kroah-Hartman
575e5ec35d Linux 3.4.68 2013-11-04 04:23:59 -08:00
Greg Kroah-Hartman
3cebd7931a Linux 3.4.67 2013-10-22 09:19:41 +01:00
Greg Kroah-Hartman
dc3a8b0c21 Linux 3.4.66 2013-10-13 16:02:48 -07:00
Greg Kroah-Hartman
5602328b0d Linux 3.4.65 2013-10-05 07:07:13 -07:00
Greg Kroah-Hartman
d4c162c56b Linux 3.4.64 2013-10-01 09:12:49 -07:00