Commit graph

1,014 commits

Author SHA1 Message Date
Ben Hutchings
d7d78c9371 Linux 3.16.60 2018-10-21 08:46:24 +01:00
Ben Hutchings
58fb9b51d6 Linux 3.16.59 2018-10-03 04:10:10 +01:00
Ben Hutchings
51f70ddc85 Linux 3.16.58 2018-09-25 23:47:37 +01:00
Ben Hutchings
e472f29ebd Linux 3.16.57 2018-06-16 22:22:52 +01:00
Ben Hutchings
a413cc78bc Linux 3.16.56 2018-03-19 18:59:18 +00:00
Ben Hutchings
3e50cd97ed Linux 3.16.55 2018-03-03 15:52:38 +00:00
Linus Torvalds
8939b19d36 kbuild: add '-fno-stack-check' to kernel build options
commit 3ce120b16c upstream.

It appears that hardened gentoo enables "-fstack-check" by default for
gcc.

That doesn't work _at_all_ for the kernel, because the kernel stack
doesn't act like a user stack at all: it's much smaller, and it doesn't
auto-expand on use.  So the extra "probe one page below the stack" code
generated by -fstack-check just breaks the kernel in horrible ways,
causing infinite double faults etc.

[ I have to say, that the particular code gcc generates looks very
  stupid even for user space where it works, but that's a separate
  issue.  ]

Reported-and-tested-by: Alexander Tsoy <alexander@tsoy.me>
Reported-and-tested-by: Toralf Förster <toralf.foerster@gmx.de>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
2018-03-03 15:52:08 +00:00
Ben Hutchings
0b9f4cdd4d Linux 3.16.54 2018-02-13 18:42:38 +00:00
Ben Hutchings
329f19bd63 Linux 3.16.53 2018-01-09 00:35:23 +00:00
Ben Hutchings
bde16624c6 Linux 3.16.52 2018-01-01 20:52:14 +00:00
Ben Hutchings
c45c05f42d Linux 3.16.51 2017-11-26 13:50:43 +00:00
Ben Hutchings
2447a018c3 Linux 3.16.50 2017-11-11 13:34:06 +00:00
Linus Torvalds
987b13a4f0 Disable "frame-address" warning
commit 124a3d88fa upstream.

Newer versions of gcc warn about the use of __builtin_return_address()
with a non-zero argument when "-Wall" is specified:

  kernel/trace/trace_irqsoff.c: In function ‘stop_critical_timings’:
  kernel/trace/trace_irqsoff.c:433:86: warning: calling ‘__builtin_return_address’ with a nonzero argument is unsafe [-Wframe-address]
     stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
  [ .. repeats a few times for other similar cases .. ]

It is true that a non-zero argument is somewhat dangerous, and we do not
actually have very many uses of that in the kernel - but the ftrace code
does use it, and as Stephen Rostedt says:

 "We are well aware of the danger of using __builtin_return_address() of
  > 0.  In fact that's part of the reason for having the "thunk" code in
  x86 (See arch/x86/entry/thunk_{64,32}.S).  [..] it adds extra frames
  when tracking irqs off sections, to prevent __builtin_return_address()
  from accessing bad areas.  In fact the thunk_32.S states: 'Trampoline to
  trace irqs off.  (otherwise CALLER_ADDR1 might crash)'."

For now, __builtin_return_address() with a non-zero argument is the best
we can do, and the warning is not helpful and can end up making people
miss other warnings for real problems.

So disable the frame-address warning on compilers that need it.

Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
2017-11-11 13:33:41 +00:00
Ben Hutchings
e6a2ab837b Linux 3.16.49 2017-10-12 15:28:25 +01:00
Ben Hutchings
3717265153 Linux 3.16.48 2017-09-15 18:30:20 +01:00
Ben Hutchings
f4a99fcbf2 Linux 3.16.47 2017-08-26 02:14:52 +01:00
Ben Hutchings
2b57bae6d1 Linux 3.16.46 2017-07-18 18:40:42 +01:00
Ben Hutchings
f386a1595a Linux 3.16.45 2017-07-02 17:13:04 +01:00
Ben Hutchings
fa6e20ce66 Linux 3.16.44 2017-06-05 21:17:26 +01:00
Ben Hutchings
760b5f93bd Linux 3.16.43 2017-04-04 22:21:58 +01:00
Ben Hutchings
65be6fa1da Linux 3.16.42 2017-03-16 02:27:28 +00:00
Ben Hutchings
cfd0c7f4ab Linux 3.16.41 2017-02-26 20:01:51 +00:00
Ben Hutchings
54f1c43c39 Linux 3.16.40 2017-02-23 03:54:49 +00:00
Borislav Petkov
fcee7d4bd1 kbuild: Steal gcc's pie from the very beginning
commit c6a3855391 upstream.

So Sebastian turned off the PIE for kernel builds but that was too late
- Kbuild.include already uses KBUILD_CFLAGS and trying to disable gcc
options with, say cc-disable-warning, fails:

  gcc -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs
  ...
  -Wno-sign-compare -fno-asynchronous-unwind-tables -Wframe-address -c -x c /dev/null -o .31392.tmp
  /dev/null:1:0: error: code model kernel does not support PIC mode

because that returns an error and we can't disable the warning. For
example in this case:

KBUILD_CFLAGS   += $(call cc-disable-warning,frame-address,)

which leads to gcc issuing all those warnings again.

So let's turn off PIE/PIC at the earliest possible moment, when we
declare KBUILD_CFLAGS so that cc-disable-warning picks it up too.

Also, we need the $(call cc-option ...) because -fno-PIE is supported
since gcc v3.4 and our lowest supported gcc version is 3.2 right now.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Michal Marek <mmarek@suse.com>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
2017-02-23 03:54:34 +00:00
Sebastian Andrzej Siewior
fc23d5570c kbuild: add -fno-PIE
commit 8ae94224c9 upstream.

Debian started to build the gcc with -fPIE by default so the kernel
build ends before it starts properly with:
|kernel/bounds.c:1:0: error: code model kernel does not support PIC mode

Also add to KBUILD_AFLAGS due to:

|gcc -Wp,-MD,arch/x86/entry/vdso/vdso32/.note.o.d … -mfentry -DCC_USING_FENTRY … vdso/vdso32/note.S
|arch/x86/entry/vdso/vdso32/note.S:1:0: sorry, unimplemented: -mfentry isn’t supported for 32-bit in combination with -fpic

Tagging it stable so it is possible to compile recent stable kernels as
well.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Michal Marek <mmarek@suse.com>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
2017-02-23 03:54:31 +00:00
Ben Hutchings
34a0362f84 Linux 3.16.39 2016-11-20 01:17:41 +00:00
Ben Hutchings
fa1703ff58 Linux 3.16.38 2016-10-20 23:41:13 +01:00
Ben Hutchings
c8b431a18d Linux 3.16.37 2016-08-22 22:38:32 +01:00
Arnd Bergmann
282247a847 kbuild: move -Wunused-const-variable to W=1 warning level
commit c9c6837d39 upstream.

gcc-6 started warning by default about variables that are not
used anywhere and that are marked 'const', generating many
false positives in an allmodconfig build, e.g.:

arch/arm/mach-davinci/board-da830-evm.c:282:20: warning: 'da830_evm_emif25_pins' defined but not used [-Wunused-const-variable=]
arch/arm/plat-omap/dmtimer.c:958:34: warning: 'omap_timer_match' defined but not used [-Wunused-const-variable=]
drivers/bluetooth/hci_bcm.c:625:39: warning: 'acpi_bcm_default_gpios' defined but not used [-Wunused-const-variable=]
drivers/char/hw_random/omap-rng.c:92:18: warning: 'reg_map_omap4' defined but not used [-Wunused-const-variable=]
drivers/devfreq/exynos/exynos5_bus.c:381:32: warning: 'exynos5_busfreq_int_pm' defined but not used [-Wunused-const-variable=]
drivers/dma/mv_xor.c:1139:34: warning: 'mv_xor_dt_ids' defined but not used [-Wunused-const-variable=]

This is similar to the existing -Wunused-but-set-variable warning
that was added in an earlier release and that we disable by default
now and only enable when W=1 is set, so it makes sense to do
the same here. Once we have eliminated the majority of the
warnings for both, we can put them back into the default list.

We probably want this in backport kernels as well, to allow building
them with gcc-6 without introducing extra warnings.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Olof Johansson <olof@lixom.net>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
2016-08-22 22:37:57 +01:00
Arnd Bergmann
3c3e6b5e2b gcov: disable tree-loop-im to reduce stack usage
commit c87bf43144 upstream.

Enabling CONFIG_GCOV_PROFILE_ALL produces us a lot of warnings like

lib/lz4/lz4hc_compress.c: In function 'lz4_compresshcctx':
lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1504 bytes is larger than 1024 bytes [-Wframe-larger-than=]

After some investigation, I found that this behavior started with gcc-4.9,
and opened https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69702.
A suggested workaround for it is to use the -fno-tree-loop-im
flag that turns off one of the optimization stages in gcc, so the
code runs a little slower but does not use excessive amounts
of stack.

We could make this conditional on the gcc version, but I could not
find an easy way to do this in Kbuild and the benefit would be
fairly small, given that most of the gcc version in production are
affected now.

I'm marking this for 'stable' backports because it addresses a bug
with code generation in gcc that exists in all kernel versions
with the affected gcc releases.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
2016-08-22 22:37:56 +01:00
Ben Hutchings
c9cab79931 Linux 3.16.36 2016-06-15 21:29:36 +01:00
Ben Hutchings
e3c5b8847a Linux 3.16.35 2016-05-01 00:07:49 +02:00
Luis Henriques
c66d7e6c73 Linux 3.16.7-ckt27
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2016-04-15 10:25:39 +01:00
Luis Henriques
3a96c6601b Linux 3.16.7-ckt26
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2016-03-29 15:06:50 +01:00
Luis Henriques
7f2a8840d1 Linux 3.16.7-ckt25
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2016-03-02 10:31:21 +00:00
Luis Henriques
752289d006 Linux 3.16.7-ckt24
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2016-02-07 17:48:35 +00:00
Luis Henriques
3c702e47ca Linux 3.16.7-ckt23
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2016-01-28 09:57:51 +00:00
Luis Henriques
c5305f04d7 Linux 3.16.7-ckt22
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2016-01-11 10:47:48 +00:00
Luis Henriques
70a95b3e39 Linux 3.16.7-ckt21
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-12-14 10:14:38 +00:00
Luis Henriques
a11efd7b42 Linux 3.16.7-ckt20
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-11-18 10:08:46 +00:00
Luis Henriques
e25b6bafc0 Linux 3.16.7-ckt19
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-10-30 13:55:25 +00:00
Luis Henriques
e775020ec9 Linux 3.16.7-ckt18
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-10-06 11:51:02 +01:00
Luis Henriques
76aee4f56f Linux 3.16.7-ckt17
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-09-11 10:10:46 +01:00
Luis Henriques
72388a1322 Linux 3.16.7-ckt16
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-08-20 15:30:02 +01:00
Michal Marek
4a9e44d553 kbuild: Allow arch Makefiles to override {cpp,ld,c}flags
commit 61754c1875 upstream.

Since commit a1c48bb1 (Makefile: Fix unrecognized cross-compiler command
line options), the arch Makefile is included earlier by the main
Makefile, preventing the arc architecture to set its -O3 compiler
option. Since there might be more use cases for an arch Makefile to
fine-tune the options, add support for ARCH_CPPFLAGS, ARCH_AFLAGS and
ARCH_CFLAGS variables that are appended to the respective kbuild
variables. The user still has the final say via the KCPPFLAGS, KAFLAGS
and KCFLAGS variables.

Reported-by: Vineet Gupta <Vineet.Gupta1@synopsys.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
[ luis: backported to 3.16: adjusted context ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-08-10 09:54:09 +01:00
Luis Henriques
c0606b946e Linux 3.16.7-ckt15
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-07-20 13:05:19 +01:00
Luis Henriques
26749e751c Linux 3.16.7-ckt14
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-06-30 17:20:33 +01:00
Luis Henriques
162d643261 Linux 3.16.7-ckt13
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-06-11 11:23:21 +01:00
Kirill A. Shutemov
6e0fc212b9 kernel: use the gnu89 standard explicitly
commit 51b97e354b upstream.

Sasha Levin reports:
 "gcc5 changes the default standard to c11, which makes kernel build
  unhappy

  Explicitly define the kernel standard to be gnu89 which should keep
  everything working exactly like it was before gcc5"

There are multiple small issues with the new default, but the biggest
issue seems to be that the old - and very useful - GNU extension to
allow a cast in front of an initializer has gone away.

Patch updated by Kirill:
 "I'm pretty sure all gcc versions you can build kernel with supports
  -std=gnu89.  cc-option is redunrant.

  We also need to adjust HOSTCFLAGS otherwise allmodconfig fails for me"

Note by Andrew Pinski:
 "Yes it was reported and both problems relating to this extension has
  been added to gnu99 and gnu11.  Though there are other issues with the
  kernel dealing with extern inline have different semantics between
  gnu89 and gnu99/11"

End result: we may be able to move up to a newer stdc model eventually,
but right now the newer models have some annoying deficiencies, so the
traditional "gnu89" model ends up being the preferred one.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Singed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Philip Müller <philm@manjaro.org>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-05-28 11:14:27 +01:00
Luis Henriques
5de413904b Linux 3.16.7-ckt12
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-05-28 09:57:32 +01:00