12 Sep, 2020

1 commit

  • Using gcov to collect coverage data for kernels compiled with GCC 10.1
    causes random malfunctions and kernel crashes. This is the result of a
    changed GCOV_COUNTERS value in GCC 10.1 that causes a mismatch between
    the layout of the gcov_info structure created by GCC profiling code and
    the related structure used by the kernel.

    Fix this by updating the in-kernel GCOV_COUNTERS value. Also re-enable
    config GCOV_KERNEL for use with GCC 10.

    Reported-by: Colin Ian King
    Reported-by: Leon Romanovsky
    Signed-off-by: Peter Oberparleiter
    Tested-by: Leon Romanovsky
    Tested-and-Acked-by: Colin Ian King
    Signed-off-by: Linus Torvalds

    Peter Oberparleiter
     

05 Sep, 2020

1 commit

  • GCOV built with GCC 10 doesn't initialize n_function variable. This
    produces different kernel panics as was seen by Colin in Ubuntu and me
    in FC 32.

    As a workaround, let's disable GCOV build for broken GCC 10 version.

    Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1891288
    Link: https://lore.kernel.org/lkml/20200827133932.3338519-1-leon@kernel.org
    Link: https://lore.kernel.org/lkml/CAHk-=whbijeSdSvx-Xcr0DPMj0BiwhJ+uiNnDSVZcr_h_kg7UA@mail.gmail.com/
    Cc: Colin Ian King
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Linus Torvalds

    Leon Romanovsky
     

14 Jun, 2020

1 commit

  • Since commit 84af7a6194e4 ("checkpatch: kconfig: prefer 'help' over
    '---help---'"), the number of '---help---' has been gradually
    decreasing, but there are still more than 2400 instances.

    This commit finishes the conversion. While I touched the lines,
    I also fixed the indentation.

    There are a variety of indentation styles found.

    a) 4 spaces + '---help---'
    b) 7 spaces + '---help---'
    c) 8 spaces + '---help---'
    d) 1 space + 1 tab + '---help---'
    e) 1 tab + '---help---' (correct indentation)
    f) 1 tab + 1 space + '---help---'
    g) 1 tab + 2 spaces + '---help---'

    In order to convert all of them to 1 tab + 'help', I ran the
    following commend:

    $ find . -name 'Kconfig*' | xargs sed -i 's/^[[:space:]]*---help---/\thelp/'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

16 Apr, 2020

1 commit

  • The kernel requires at least GCC 4.8 in order to build, and so there is
    no need to cater for the pre-4.7 gcov format.

    Remove the obsolete code.

    Acked-by: Peter Oberparleiter
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Will Deacon

    Will Deacon
     

11 Apr, 2020

1 commit

  • If seq_file .next function does not change position index, read after
    some lseek can generate unexpected output.

    https://bugzilla.kernel.org/show_bug.cgi?id=206283
    Signed-off-by: Vasily Averin
    Signed-off-by: Andrew Morton
    Acked-by: Peter Oberparleiter
    Cc: Al Viro
    Cc: Davidlohr Bueso
    Cc: Ingo Molnar
    Cc: Manfred Spraul
    Cc: NeilBrown
    Cc: Steven Rostedt
    Cc: Waiman Long
    Link: http://lkml.kernel.org/r/f65c6ee7-bd00-f910-2f8a-37cc67e4ff88@virtuozzo.com
    Signed-off-by: Linus Torvalds

    Vasily Averin
     

08 Apr, 2020

3 commits

  • The current codebase makes use of the zero-length array language extension
    to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning in
    case the flexible array does not occur last in the structure, which will
    help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by this
    change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Signed-off-by: Andrew Morton
    Cc: Peter Oberparleiter
    Link: http://lkml.kernel.org/r/20200302224851.GA26467@embeddedor
    Signed-off-by: Linus Torvalds

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language extension
    to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning in
    case the flexible array does not occur last in the structure, which will
    help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by this
    change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Signed-off-by: Andrew Morton
    Cc: Peter Oberparleiter
    Link: http://lkml.kernel.org/r/20200302224501.GA14175@embeddedor
    Signed-off-by: Linus Torvalds

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language extension
    to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning in
    case the flexible array does not occur last in the structure, which will
    help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by this
    change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Signed-off-by: Andrew Morton
    Acked-by: Peter Oberparleiter
    Link: http://lkml.kernel.org/r/20200213152241.GA877@embeddedor
    Signed-off-by: Linus Torvalds

    Gustavo A. R. Silva
     

20 Jan, 2020

1 commit

  • This reverts commit 786b2384bf1c ("um: Enable CONFIG_CONSTRUCTORS").

    There are two issues with this commit, uncovered by Anton in tests
    on some (Debian) systems:

    1) I completely forgot to call any constructors if CONFIG_CONSTRUCTORS
    isn't set. Don't recall now if it just wasn't needed on my system, or
    if I never tested this case.

    2) With that fixed, it works - with CONFIG_CONSTRUCTORS *unset*. If I
    set CONFIG_CONSTRUCTORS, it fails again, which isn't totally
    unexpected since whatever wanted to run is likely to have to run
    before the kernel init etc. that calls the constructors in this case.

    Basically, some constructors that gcc emits (libc has?) need to run
    very early during init; the failure mode otherwise was that the ptrace
    fork test already failed:

    ----------------------
    $ ./linux mem=512M
    Core dump limits :
    soft - 0
    hard - NONE
    Checking that ptrace can change system call numbers...check_ptrace : child exited with exitcode 6, while expecting 0; status 0x67f
    Aborted
    ----------------------

    Thinking more about this, it's clear that we simply cannot support
    CONFIG_CONSTRUCTORS in UML. All the cases we need now (gcov, kasan)
    involve not use of the __attribute__((constructor)), but instead
    some constructor code/entry generated by gcc. Therefore, we cannot
    distinguish between kernel constructors and system constructors.

    Thus, revert this commit.

    Cc: stable@vger.kernel.org [5.4+]
    Fixes: 786b2384bf1c ("um: Enable CONFIG_CONSTRUCTORS")
    Reported-by: Anton Ivanov
    Signed-off-by: Johannes Berg
    Acked-by: Anton Ivanov

    Signed-off-by: Richard Weinberger

    Johannes Berg
     

16 Sep, 2019

1 commit

  • We do need to call the constructors for *modules*, and
    at least for KASAN in the future, we must call even the
    kernel constructors only later when the kernel has been
    initialized.

    Instead of relying on libc to call them, emit an empty
    section for libc and let the kernel's CONSTRUCTORS code
    do the rest of the job.

    Tested that it indeed doesn't work in modules, and does
    work after the fixes in both, with a few functions with
    __attribute__((constructor)) in both dynamic and static
    builds.

    Signed-off-by: Johannes Berg
    Signed-off-by: Richard Weinberger

    Johannes Berg
     

03 Jun, 2019

1 commit


21 May, 2019

1 commit


15 May, 2019

2 commits

  • LLVM uses profiling data that's deliberately similar to GCC, but has a
    very different way of exporting that data. LLVM calls llvm_gcov_init()
    once per module, and provides a couple of callbacks that we can use to
    ask for more data.

    We care about the "writeout" callback, which in turn calls back into
    compiler-rt/this module to dump all the gathered coverage data to disk:

    llvm_gcda_start_file()
    llvm_gcda_emit_function()
    llvm_gcda_emit_arcs()
    llvm_gcda_emit_function()
    llvm_gcda_emit_arcs()
    [... repeats for each function ...]
    llvm_gcda_summary_info()
    llvm_gcda_end_file()

    This design is much more stateless and unstructured than gcc's, and is
    intended to run at process exit. This forces us to keep some local
    state about which module we're dealing with at the moment. On the other
    hand, it also means we don't depend as much on how LLVM represents
    profiling data internally.

    See LLVM's lib/Transforms/Instrumentation/GCOVProfiling.cpp for more
    details on how this works, particularly GCOVProfiler::emitProfileArcs(),
    GCOVProfiler::insertCounterWriteout(), and GCOVProfiler::insertFlush().

    [akpm@linux-foundation.org: coding-style fixes]
    Link: http://lkml.kernel.org/r/20190417225328.208129-1-trong@android.com
    Signed-off-by: Greg Hackmann
    Signed-off-by: Nick Desaulniers
    Signed-off-by: Tri Vo
    Co-developed-by: Nick Desaulniers
    Co-developed-by: Tri Vo
    Tested-by: Trilok Soni
    Tested-by: Prasad Sodagudi
    Tested-by: Tri Vo
    Tested-by: Daniel Mentz
    Tested-by: Petri Gynther
    Reviewed-by: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Greg Hackmann
     
  • Patch series "gcov: add Clang support", v4.

    This patch (of 3):

    base.c contains a few callbacks specific to GCC's gcov implementation.
    Move these into their own module in preparation for Clang support.

    Link: http://lkml.kernel.org/r/20190318025411.98014-2-trong@android.com
    Signed-off-by: Greg Hackmann
    Signed-off-by: Nick Desaulniers
    Signed-off-by: Tri Vo
    Tested-by: Trilok Soni
    Tested-by: Prasad Sodagudi
    Tested-by: Tri Vo
    Reviewed-by: Peter Oberparleiter
    Cc: Daniel Mentz
    Cc: Petri Gynther
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Greg Hackmann
     

08 Mar, 2019

1 commit

  • One of the more common cases of allocation size calculations is finding
    the size of a structure that has a zero-sized array at the end, along
    with memory for some number of elements for that array. For example:

    struct foo {
    int stuff;
    void *entry[];
    };

    instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);

    Instead of leaving these open-coded and prone to type mistakes, we can
    now use the new struct_size() helper:

    instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL);

    This code was detected with the help of Coccinelle.

    Link: http://lkml.kernel.org/r/20190109172445.GA15908@embeddedor
    Signed-off-by: Gustavo A. R. Silva
    Reviewed-by: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gustavo A. R. Silva
     

08 Jun, 2018

1 commit

  • CONFIG_GCOV_FORMAT_AUTODETECT compiles either gcc_3_4.c or gcc_4_7.c
    according to your GCC version.

    We can achieve the equivalent behavior by setting reasonable dependency
    with the knowledge of the compiler version.

    If GCC older than 4.7 is used, GCOV_FORMAT_3_4 is the default, but users
    are still allowed to select GCOV_FORMAT_4_7 in case the newer format is
    back-ported.

    On the other hand, If GCC 4.7 or newer is used, there is no reason to
    use GCOV_FORMAT_3_4, so it should be hidden.

    If you downgrade the compiler to GCC 4.7 or older, oldconfig/syncconfig
    will display a prompt for the choice because GCOV_FORMAT_3_4 becomes
    visible as a new symbol.

    Signed-off-by: Masahiro Yamada
    Acked-by: Peter Oberparleiter
    Reviewed-by: Kees Cook

    Masahiro Yamada
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

13 May, 2017

1 commit

  • Starting from GCC 7.1, __gcov_exit is a new symbol expected to be
    implemented in a profiling runtime.

    [akpm@linux-foundation.org: coding-style fixes]
    [mliska@suse.cz: v2]
    Link: http://lkml.kernel.org/r/e63a3c59-0149-c97e-4084-20ca8f146b26@suse.cz
    Link: http://lkml.kernel.org/r/8c4084fa-3885-29fe-5fc4-0d4ca199c785@suse.cz
    Signed-off-by: Martin Liska
    Acked-by: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Martin Liska
     

15 Jul, 2016

1 commit


10 May, 2016

1 commit

  • Enabling gcov is counterproductive to compile testing: it significantly
    increases the kernel image size, compile time, and it produces lots
    of false positive "may be used uninitialized" warnings as the result
    of missed optimizations.

    This is in line with how UBSAN_SANITIZE_ALL and PROFILE_ALL_BRANCHES
    work, both of which have similar problems.

    With an ARM allmodconfig kernel, I see the build time drop from
    283 minutes CPU time to 225 minutes, and the vmlinux size drops
    from 43MB to 26MB.

    Signed-off-by: Arnd Bergmann
    Acked-by: Peter Oberparleiter
    Signed-off-by: Michal Marek

    Arnd Bergmann
     

05 Dec, 2015

1 commit

  • An exact mapping would be within_module_core(), but at this stage
    (MODULE_STATE_GOING) the init section is empty, and this is clearer.

    Reviewed-by: Peter Oberparleiter
    Signed-off-by: Rusty Russell
    Signed-off-by: Jiri Kosina

    Rusty Russell
     

01 Jul, 2015

1 commit

  • Fix kernel gcov support for GCC 5.1. Similar to commit a992bf836f9
    ("gcov: add support for GCC 4.9"), this patch takes into account the
    existence of a new gcov counter (see gcc's gcc/gcov-counter.def.)

    Firstly, it increments GCOV_COUNTERS (to 10), which makes the data
    structure struct gcov_info compatible with GCC 5.1.

    Secondly, a corresponding counter function __gcov_merge_icall_topn (Top N
    value tracking for indirect calls) is included in base.c with the other
    gcov counters unused for kernel profiling.

    Signed-off-by: Lorenzo Stoakes
    Cc: Andrey Ryabinin
    Cc: Yuan Pengfei
    Tested-by: Peter Oberparleiter
    Reviewed-by: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lorenzo Stoakes
     

17 Apr, 2015

1 commit

  • gcov profiling if enabled with other heavy compile-time instrumentation
    like KASan could trigger following softlockups:

    NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [swapper/0:1]
    Modules linked in:
    irq event stamp: 22823276
    hardirqs last enabled at (22823275): [] mutex_lock_nested+0x7d9/0x930
    hardirqs last disabled at (22823276): [] apic_timer_interrupt+0x6d/0x80
    softirqs last enabled at (22823172): [] __do_softirq+0x4db/0x729
    softirqs last disabled at (22823167): [] irq_exit+0x7d/0x15b
    CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W 3.19.0-05245-gbb33326-dirty #3
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5.1-0-g8936dbb-20141113_115728-nilsson.home.kraxel.org 04/01/2014
    task: ffff88006cba8000 ti: ffff88006cbb0000 task.ti: ffff88006cbb0000
    RIP: kasan_mem_to_shadow+0x1e/0x1f
    Call Trace:
    strcmp+0x28/0x70
    get_node_by_name+0x66/0x99
    gcov_event+0x4f/0x69e
    gcov_enable_events+0x54/0x7b
    gcov_fs_init+0xf8/0x134
    do_one_initcall+0x1b2/0x288
    kernel_init_freeable+0x467/0x580
    kernel_init+0x15/0x18b
    ret_from_fork+0x7c/0xb0
    Kernel panic - not syncing: softlockup: hung tasks

    Fix this by sticking cond_resched() in gcov_enable_events().

    Signed-off-by: Andrey Ryabinin
    Reported-by: Fengguang Wu
    Cc: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     

10 Jan, 2015

4 commits


14 Dec, 2014

1 commit

  • Following the suggestions from Andrew Morton and Stephen Rothwell,
    Dont expand the ARCH list in kernel/gcov/Kconfig. Instead,
    define a ARCH_HAS_GCOV_PROFILE_ALL bool which architectures
    can enable.

    set ARCH_HAS_GCOV_PROFILE_ALL on Architectures where it was
    previously allowed + ARM64 which I tested.

    Signed-off-by: Riku Voipio
    Cc: Peter Oberparleiter
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Riku Voipio
     

30 Oct, 2014

1 commit

  • Following up the arm testing of gcov, turns out gcov on ARM64 works fine
    as well. Only change needed is adding ARM64 to Kconfig depends.

    Tested with qemu and mach-virt

    Signed-off-by: Riku Voipio
    Acked-by: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Riku Voipio
     

26 Sep, 2014

1 commit

  • Enable gcov support for ARM based on original patches by David
    Singleton and George G. Davis

    Riku - updated to patch to current mainline kernel. The patch
    has been submitted in 2010, 2012 - for symmetry, now in 2014 too.

    https://lwn.net/Articles/390419/
    http://marc.info/?l=linux-arm-kernel&m=133823081813044

    v2: remove arch/arm/kernel from gcov disabled files

    Cc: Andrey Ryabinin
    Cc: Naresh Kamboju
    Acked-by: Arnd Bergmann
    Signed-off-by: Riku Voipio
    Signed-off-by: Vincent Sanders
    Signed-off-by: Russell King

    Vincent Sanders
     

09 Aug, 2014

1 commit


11 Jun, 2014

1 commit

  • This patch handles the gcov-related changes in GCC 4.9:

    A new counter (time profile) is added. The total number is 9 now.

    A new profile merge function __gcov_merge_time_profile is added.

    See gcc/gcov-io.h and libgcc/libgcov-merge.c

    For the first change, the layout of struct gcov_info is affected.

    For the second one, a dummy function is added to kernel/gcov/base.c
    similarly.

    Signed-off-by: Yuan Pengfei
    Acked-by: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yuan Pengfei
     

13 Nov, 2013

5 commits

  • To get name of the file from a pathname let's use kbasename() helper.

    Signed-off-by: Andy Shevchenko
    Cc: Jingoo Han
    Cc: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • pr_warning() is deprecated in favor of pr_warn()

    Cc: Andy Gospodarek
    Cc: Arnd Bergmann
    Cc: Frantisek Hrbata
    Cc: Jan Stancek
    Cc: Kees Cook
    Cc: Peter Oberparleiter
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Compile the correct gcov implementation file for the specific gcc version.

    Signed-off-by: Frantisek Hrbata
    Cc: Jan Stancek
    Cc: Kees Cook
    Acked-by: Peter Oberparleiter
    Cc: Rusty Russell
    Cc: Arnd Bergmann
    Cc: Andy Gospodarek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frantisek Hrbata
     
  • The gcov in-memory format changed in gcc 4.7. The biggest change, which
    requires this special implementation, is that gcov_info no longer contains
    array of counters for each counter type for all functions and gcov_fn_info
    is not used for mapping of function's counters to these arrays(offset).
    Now each gcov_fn_info contans it's counters, which makes things a little
    bit easier.

    This is heavily based on the previous gcc_3_4.c implementation and patches
    provided by Peter Oberparleiter. Specially the buffer gcda implementation
    for iterator.

    [akpm@linux-foundation.org: use kmemdup() and kcalloc()]
    [oberpar@linux.vnet.ibm.com: gcc_4_7.c needs vmalloc.h]
    Signed-off-by: Frantisek Hrbata
    Cc: Jan Stancek
    Cc: Kees Cook
    Reviewed-by: Peter Oberparleiter
    Cc: Rusty Russell
    Cc: Arnd Bergmann
    Cc: Andy Gospodarek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frantisek Hrbata
     
  • Since also the gcov structures(gcov_info, gcov_fn_info, gcov_ctr_info) can
    change between gcc releases, as shown in gcc 4.7, they cannot be defined
    in a common header and need to be moved to a specific gcc implemention
    file. This also requires to make the gcov_info structure opaque for the
    common code and to introduce simple helpers for accessing data inside
    gcov_info.

    Signed-off-by: Frantisek Hrbata
    Cc: Jan Stancek
    Cc: Kees Cook
    Acked-by: Peter Oberparleiter
    Cc: Rusty Russell
    Cc: Arnd Bergmann
    Cc: Andy Gospodarek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frantisek Hrbata
     

13 Sep, 2013

1 commit


12 Jan, 2013

1 commit

  • The CONFIG_EXPERIMENTAL config item has not carried much meaning for a
    while now and is almost always enabled by default. As agreed during the
    Linux kernel summit, remove it from any "depends on" lines in Kconfigs.

    Cc: WANG Cong
    Signed-off-by: Kees Cook
    Acked-by: Peter Oberparleiter

    Kees Cook
     

27 Jul, 2011

1 commit

  • Selecting GCOV for UML causing configuration mismatch:

    warning: (GCOV_KERNEL) selects CONSTRUCTORS which has unmet direct dependencies (!UML)

    Constructors are not needed for UML.

    Signed-off-by: Vitaliy Ivanov
    Cc: Peter Oberparleiter
    Acked-by: Richard Weinberger
    Acked-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vitaliy Ivanov