10 Sep, 2009

1 commit


06 Sep, 2009

1 commit


28 Aug, 2009

1 commit


22 Aug, 2009

1 commit


14 Aug, 2009

1 commit


01 Aug, 2009

1 commit


23 Jul, 2009

1 commit


17 Jul, 2009

1 commit

  • Turning on this flag could prevent the compiler from optimising away
    some "useless" checks for null pointers. Such bugs can sometimes become
    exploitable at compile time because of the -O2 optimisation.

    See http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Optimize-Options.html

    An example that clearly shows this 'problem' is commit 6bf67672.

    static void __devexit agnx_pci_remove(struct pci_dev *pdev)
    {
    struct ieee80211_hw *dev = pci_get_drvdata(pdev);
    - struct agnx_priv *priv = dev->priv;
    + struct agnx_priv *priv;
    AGNX_TRACE;

    if (!dev)
    return;
    + priv = dev->priv;

    By reverting this patch, and compile it with and without
    -fno-delete-null-pointer-checks flag, we can see that the check for dev
    is compiled away.

    call printk #
    - testq %r12, %r12 # dev
    - je .L94 #,
    movq %r12, %rdi # dev,

    Clearly the 'fix' is to stop using dev before it is tested, but building
    with -fno-delete-null-pointer-checks flag at least makes it harder to
    abuse.

    Signed-off-by: Eugene Teo
    Acked-by: Eric Paris
    Acked-by: Wang Cong
    Signed-off-by: Linus Torvalds

    Eugene Teo
     

14 Jul, 2009

1 commit


13 Jul, 2009

1 commit

  • This causes kernel images that don't run init to completion with certain
    broken gcc versions.

    This fixes kernel bugzilla entry:
    http://bugzilla.kernel.org/show_bug.cgi?id=13012

    I suspect the gcc problem is this:
    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28230

    Fix the problem by using the -fno-strict-overflow flag instead, which
    not only does not exist in the known-to-be-broken versions of gcc (it
    was introduced later than fwrapv), but seems to be much less disturbing
    to gcc too: the difference in the generated code by -fno-strict-overflow
    are smaller (compared to using neither flag) than when using -fwrapv.

    Reported-by: Barry K. Nathan
    Pushed-by: Frans Pop
    Cc: Andrew Morton
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

05 Jul, 2009

1 commit


27 Jun, 2009

2 commits

  • TOPDIR is obsolete, it can be finally removed now.

    Signed-off-by: WANG Cong
    Signed-off-by: Sam Ravnborg

    Amerigo Wang
     
  • Some distributions have enabled the gcc flag -Wformat-security by default.
    This results in a number of warnings about format arguments to functions,
    sometimes in cases where fixing the warning is not likely to actually fix a
    bug. Instead of hand patching a dozens of places (possibly more) that produce
    warnings that get ignored anyway we just turn off the flag in the Makefile.

    Signed-off-by: Floris Kraak
    Signed-off-by: Pekka Enberg
    Signed-off-by: Sam Ravnborg

    Floris Kraak
     

25 Jun, 2009

1 commit


19 Jun, 2009

1 commit

  • Enable the use of GCC's coverage testing tool gcov [1] with the Linux
    kernel. gcov may be useful for:

    * debugging (has this code been reached at all?)
    * test improvement (how do I change my test to cover these lines?)
    * minimizing kernel configurations (do I need this option if the
    associated code is never run?)

    The profiling patch incorporates the following changes:

    * change kbuild to include profiling flags
    * provide functions needed by profiling code
    * present profiling data as files in debugfs

    Note that on some architectures, enabling gcc's profiling option
    "-fprofile-arcs" for the entire kernel may trigger compile/link/
    run-time problems, some of which are caused by toolchain bugs and
    others which require adjustment of architecture code.

    For this reason profiling the entire kernel is initially restricted
    to those architectures for which it is known to work without changes.
    This restriction can be lifted once an architecture has been tested
    and found compatible with gcc's profiling. Profiling of single files
    or directories is still available on all platforms (see config help
    text).

    [1] http://gcc.gnu.org/onlinedocs/gcc/Gcov.html

    Signed-off-by: Peter Oberparleiter
    Cc: Andi Kleen
    Cc: Huang Ying
    Cc: Li Wei
    Cc: Michael Ellerman
    Cc: Ingo Molnar
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Rusty Russell
    Cc: WANG Cong
    Cc: Sam Ravnborg
    Cc: Jeff Dike
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Oberparleiter
     

15 Jun, 2009

1 commit

  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (53 commits)
    .gitignore: ignore *.lzma files
    kbuild: add generic --set-str option to scripts/config
    kbuild: simplify argument loop in scripts/config
    kbuild: handle non-existing options in scripts/config
    kallsyms: generalize text region handling
    kallsyms: support kernel symbols in Blackfin on-chip memory
    documentation: make version fix
    kbuild: fix a compile warning
    gitignore: Add GNU GLOBAL files to top .gitignore
    kbuild: fix delay in setlocalversion on readonly source
    README: fix misleading pointer to the defconf directory
    vmlinux.lds.h update
    kernel-doc: cleanup perl script
    Improve vmlinux.lds.h support for arch specific linker scripts
    kbuild: fix headers_exports with boolean expression
    kbuild/headers_check: refine extern check
    kbuild: fix "Argument list too long" error for "make headers_check",
    ignore *.patch files
    Remove bashisms from scripts
    menu: fix embedded menu presentation
    ...

    Linus Torvalds
     

10 Jun, 2009

2 commits

  • Linus Torvalds
     
  • The GNU make's origin function know undefined variable well,
    so the outer ifdef/endif conditional checking is unneeded.

    From `info make` documentation, origin will return

    `undefined'
    if VARIABLE was never defined.
    `command line'
    if VARIABLE was defined on the command line.
    ...

    Therefore, $(origin V) will get a value anyway, killing ifdef/endif is
    viable and safe.

    Furthermore, I've checked the minimal requirements from
    Documentation/Changes is GNU make 3.79.1, and that version of GNU make
    has support of origin function well already, so now it's safe to kill
    the outer conditional checking, without upgrading the minimal
    requirements.

    Signed-off-by: Cheng Renquan
    Signed-off-by: Sam Ravnborg

    Cheng Renquan
     

05 Jun, 2009

1 commit


03 Jun, 2009

1 commit


24 May, 2009

1 commit


16 May, 2009

1 commit


09 May, 2009

1 commit


01 May, 2009

2 commits


30 Apr, 2009

1 commit


22 Apr, 2009

1 commit


19 Apr, 2009

1 commit

  • We need a location for generated files.
    Today they are spread over several places and bringing them
    together to a common place makes it obvious hat is generated
    and what isreal files.

    Al Viro originally suggested: include/gen
    Linus suggested to spell it out.

    This patch implement support for

    include/generated

    All files in include/generated are ignored by git.
    include/generated is removed during "make mrproper".

    With this we are ready to implement support for include/generated
    in the various architctures and in the base kernel.

    Signed-off-by: Sam Ravnborg
    Cc: Al Viro
    Cc: Linus Torvalds

    Sam Ravnborg
     

15 Apr, 2009

1 commit


14 Apr, 2009

1 commit


11 Apr, 2009

3 commits


08 Apr, 2009

1 commit


28 Mar, 2009

1 commit


24 Mar, 2009

2 commits

  • Linus Torvalds
     
  • With a sufficiently new compiler and binutils, code which wasn't
    previously generating .eh_frame sections has begun to. Certain
    architectures (powerpc, in this case) may generate unexpected relocation
    formats in response to this, preventing modules from loading.

    While the new relocation types should probably be handled, revert to the
    previous behaviour with regards to generation of .eh_frame sections.

    (This was reported against Fedora, which appears to be the only distro
    doing any building against gcc-4.4 at present: RH bz#486545.)

    Signed-off-by: Kyle McMartin
    Acked-by: Roland McGrath
    Cc: Alexandre Oliva
    Cc: Sam Ravnborg
    Signed-off-by: Linus Torvalds

    Kyle McMartin
     

20 Mar, 2009

2 commits

  • Sam Ravnborg says:
    "We have several architectures that plays strange games with $(CC) and
    $(CROSS_COMPILE).

    So we need to postpone any use of $(call cc-option..) until we have
    included the arch specific Makefile so we try with the correct $(CC)
    version."

    Requested-by: Sam Ravnborg
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • This makes sure that gcc doesn't try to optimize away wrapping
    arithmetic, which the kernel occasionally uses for overflow testing, ie
    things like

    if (ptr + offset < ptr)

    which technically is undefined for non-unsigned types. See

    http://bugzilla.kernel.org/show_bug.cgi?id=12597

    for details.

    Not all versions of gcc support it, so we need to make it conditional
    (it looks like it was introduced in gcc-3.4).

    Reminded-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

13 Mar, 2009

1 commit