03 Feb, 2010

2 commits

  • When I use markup_oops.pl parse a x8664 oops, I got:

    objdump: --start-address: bad number: NaN
    No matching code found
    This is because:
    main::(./m.pl:228): open(FILE, "objdump -dS --adjust-vma=$vmaoffset --start-address=$decodestart --stop-address=$decodestop $filename |") || die "Cannot start objdump";
    DB p $decodestart
    NaN

    This NaN is from:
    main::(./m.pl:176): my $decodestart = Math::BigInt->from_hex("0x$target") - Math::BigInt->from_hex("0x$func_offset");
    DB p $func_offset
    0x175

    There is already a "0x" in $func_offset, another 0x makes it a NaN.

    The $func_offset is from line:

    if ($line =~ /RIP: 0010:\[\\] \[\\] ([a-zA-Z0-9\_]+)\+(0x[0-9a-f]+)\/0x[a-f0-9]/) {
    $function = $1;
    $func_offset = $2;
    }

    I make a patch to change "(0x[0-9a-f]+)\/0x[a-f0-9]/)" to "0x([0-9a-f]+)\/0x[a-f0-9]/)".

    Signed-off-by: Hui Zhu
    Cc: Arjan van de Ven
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hui Zhu
     
  • When git has been set to always use color in .gitconfig then I get the
    warning message

    Bad divisor in main::vcs_assign: 0

    This is caused by vcs_file_signoffs not matching any commits due to the
    pattern not understand the colour codes. Fix this by telling git log to
    never use colour.

    Signed-off-by: Richard Kennedy
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Richard Kennedy
     

18 Jan, 2010

1 commit

  • The sym_is() compares a symbol in an attempt to automatically skip symbol
    prefixes. It does this first by searching the real symbol with the normal
    unprefixed symbol. But then it uses the length of the original symbol to
    check the end of the substring instead of the length of the symbol it is
    looking for. On non-prefixed arches, this is effectively the same thing,
    so there is no problem. On prefixed-arches, since this is exceeds by just
    one byte, a crash is rare and it is usually a NUL byte anyways. But every
    once in a blue moon, you get the right page alignment and it segfaults.

    For example, on the Blackfin arch, sym_is() will be called with the real
    symbol "___mod_usb_device_table" as "symbol" when looking for the normal
    symbol "__mod_usb_device_table" as "name". The substring will thus return
    one byte into "symbol" and store it into "match". But then "match" will
    be indexed with the length of "symbol" instead of "name" and so we will
    exceed the storage. i.e. the code ends up doing:
    char foo[] = "abc"; return foo[strlen(foo)+1] == '\0';

    Signed-off-by: Mike Frysinger
    Signed-off-by: Rusty Russell
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     

17 Jan, 2010

2 commits

  • …nel/git/tip/linux-2.6-tip

    * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    tracing/filters: Add comment for match callbacks
    tracing/filters: Fix MATCH_FULL filter matching for PTR_STRING
    tracing/filters: Fix MATCH_MIDDLE_ONLY filter matching
    lib: Introduce strnstr()
    tracing/filters: Fix MATCH_END_ONLY filter matching
    tracing/filters: Fix MATCH_FRONT_ONLY filter matching
    ftrace: Fix MATCH_END_ONLY function filter
    tracing/x86: Derive arch from bits argument in recordmcount.pl
    ring-buffer: Add rb_list_head() wrapper around new reader page next field
    ring-buffer: Wrap a list.next reference with rb_list_head()

    Linus Torvalds
     
  • When I try to use markup_oops.pl in x86, I always get:

    cat 1 | perl markup_oops.pl ./vmlinux
    objdump: --start-address: bad number: NaN
    No matching code found

    This is because in line:
    if ($line =~ /EIP is at ([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/[a-f0-9]/) {
    $function = $1;
    $func_offset = $2;
    }

    $func_offset will get a number like "0x2"

    But in follow code:

    my $decodestart = Math::BigInt->from_hex("0x$target") -
    Math::BigInt->from_hex("0x$func_offset");

    It add other ox to ox2. Then this value will be set to NaN.

    So I made a small patch to fix it.

    Signed-off-by: Hui Zhu
    Acked-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hui Zhu
     

13 Jan, 2010

2 commits

  • In an x86 build with CONFIG_KERNEL_LZMA enabled and dash as sh,
    arch/x86/boot/compressed/vmlinux.bin.lzma ends with
    '\xf0\x7d\x39\x00' (16 bytes) instead of the 4 bytes intended and
    the resulting vmlinuz fails to boot. This improves on the
    previous behavior, in which the file contained the characters
    '-ne ' as well, but not by much.

    Previous commits replaced "echo -ne" first with "/bin/echo -ne",
    then "printf" in the hope of improving portability, but none of
    these commands is guaranteed to support hexadecimal escapes on
    POSIX systems. So use the shell to convert from hexadecimal to
    octal.

    With this change, an LZMA-compressed kernel built with dash as sh
    boots correctly again.

    Reported-by: Sebastian Dalfuß
    Reported-by: Oliver Hartkopp
    Reported-by: Michael Guntsche
    Signed-off-by: Jonathan Nieder
    Cc: Michael Tokarev
    Cc: Alek Du
    Cc: Andrew Morton
    Signed-off-by: Michal Marek

    Jonathan Nieder
     
  • Maybe this will stop people emailing me about it.

    Signed-off-by: Dave Jones
    Signed-off-by: Linus Torvalds

    Dave Jones
     

12 Jan, 2010

3 commits

  • Let the arch argument be overruled by bits. Otherwise, building of
    external modules against a i386 target on a x86-64 host (and likely vice
    versa as well) fails unless ARCH=i386 is explicitly passed to make.

    Signed-off-by: Jan Kiszka
    LKML-Reference:
    Signed-off-by: Steven Rostedt

    Jan Kiszka
     
  • The following command doesn't generate any output.
    `./scripts/get_maintainer.pl --no-git -f drivers/net/wireless/wl12xx/wl1271_acx.c`

    An excluded "X:" pattern match in any section would cause a file not to
    match any other section.

    Signed-off-by: Joe Perches
    Reported-by: Dan Carpenter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • This patch series adds generic support for creating and extracting
    LZO-compressed kernel images, as well as support for using such images on
    the x86 and ARM architectures, and support for creating and using
    LZO-compressed initrd and initramfs images.

    Russell King said:

    : Testing on a Cortex A9 model:
    : - lzo decompressor is 65% of the time gzip takes to decompress a kernel
    : - lzo kernel is 9% larger than a gzip kernel
    :
    : which I'm happy to say confirms your figures when comparing the two.
    :
    : However, when comparing your new gzip code to the old gzip code:
    : - new is 99% of the size of the old code
    : - new takes 42% of the time to decompress than the old code
    :
    : What this means is that for a proper comparison, the results get even better:
    : - lzo is 7.5% larger than the old gzip'd kernel image
    : - lzo takes 28% of the time that the old gzip code took
    :
    : So the expense seems definitely worth the effort. The only reason I
    : can think of ever using gzip would be if you needed the additional
    : compression (eg, because you have limited flash to store the image.)
    :
    : I would argue that the default for ARM should therefore be LZO.

    This patch:

    The lzo compressor is worse than gzip at compression, but faster at
    extraction. Here are some figures for an ARM board I'm working on:

    Uncompressed size: 3.24Mo
    gzip 1.61Mo 0.72s
    lzo 1.75Mo 0.48s

    So for a compression ratio that is still relatively close to gzip, it's
    much faster to extract, at least in that case.

    This part contains:
    - Makefile routine to support lzo compression
    - Fixes to the existing lzo compressor so that it can be used in
    compressed kernels
    - wrapper around the existing lzo1x_decompress, as it only extracts one
    block at a time, while we need to extract a whole file here
    - config dialog for kernel compression

    [akpm@linux-foundation.org: coding-style fixes]
    [akpm@linux-foundation.org: cleanup]
    Signed-off-by: Albin Tonnerre
    Tested-by: Wu Zhangjin
    Acked-by: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Tested-by: Russell King
    Acked-by: Russell King
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Albin Tonnerre
     

18 Dec, 2009

1 commit

  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (71 commits)
    MIPS: Lasat: Fix botched changes to sysctl code.
    RTC: rtc-cmos.c: Fix warning on MIPS
    MIPS: Cleanup random differences beween lmo and Linus' kernel.
    MIPS: No longer hardwire CONFIG_EMBEDDED to y
    MIPS: Fix and enhance built-in kernel command line
    MIPS: eXcite: Remove platform.
    MIPS: Loongson: Cleanups of serial port support
    MIPS: Lemote 2F: Suspend CS5536 MFGPT Timer
    MIPS: Excite: move iodev_remove to .devexit.text
    MIPS: Lasat: Convert to proc_fops / seq_file
    MIPS: Cleanup signal code initialization
    MIPS: Modularize COP2 handling
    MIPS: Move EARLY_PRINTK to Kconfig.debug
    MIPS: Yeeloong 2F: Cleanup reset logic using the new ec_write function
    MIPS: Yeeloong 2F: Add LID open event as the wakeup event
    MIPS: Yeeloong 2F: Add basic EC operations
    MIPS: Move several variables from .bss to .init.data
    MIPS: Tracing: Make function graph tracer work with -mmcount-ra-address
    MIPS: Tracing: Reserve $12(t0) for mcount-ra-address of gcc 4.5
    MIPS: Tracing: Make ftrace for MIPS work without -fno-omit-frame-pointer
    ...

    Linus Torvalds
     

17 Dec, 2009

4 commits

  • * 'for-33' of git://repo.or.cz/linux-kbuild: (29 commits)
    net: fix for utsrelease.h moving to generated
    gen_init_cpio: fixed fwrite warning
    kbuild: fix make clean after mismerge
    kbuild: generate modules.builtin
    genksyms: properly consider EXPORT_UNUSED_SYMBOL{,_GPL}()
    score: add asm/asm-offsets.h wrapper
    unifdef: update to upstream revision 1.190
    kbuild: specify absolute paths for cscope
    kbuild: create include/generated in silentoldconfig
    scripts/package: deb-pkg: use fakeroot if available
    scripts/package: add KBUILD_PKG_ROOTCMD variable
    scripts/package: tar-pkg: use tar --owner=root
    Kbuild: clean up marker
    net: add net_tstamp.h to headers_install
    kbuild: move utsrelease.h to include/generated
    kbuild: move autoconf.h to include/generated
    drop explicit include of autoconf.h
    kbuild: move compile.h to include/generated
    kbuild: drop include/asm
    kbuild: do not check for include/asm-$ARCH
    ...

    Fixed non-conflicting clean merge of modpost.c as per comments from
    Stephen Rothwell (modpost.c had grown an include of linux/autoconf.h
    that needed to be changed to generated/autoconf.h)

    Linus Torvalds
     
  • With dynamic function tracer, by default, _mcount is defined as an
    "empty" function, it returns directly without any more action . When
    enabling it in user-space, it will jump to a real tracing
    function(ftrace_caller), and do the real job for us.

    Differ from the static function tracer, dynamic function tracer provides
    two functions ftrace_make_call()/ftrace_make_nop() to enable/disable the
    tracing of some indicated kernel functions(set_ftrace_filter).

    In the -v4 version, the implementation of this support is basically the same as
    X86 version does: _mcount is implemented as an empty function and ftrace_caller
    is implemented as a real tracing function respectively.

    But in this version, to support module tracing with the help of
    -mlong-calls in arch/mips/Makefile:

    MODFLAGS += -mlong-calls.

    The stuff becomes a little more complex. We need to cope with two
    different type of calling to _mcount.

    For the kernel part, the calling to _mcount(result of "objdump -hdr
    vmlinux"). is like this:

    108: 03e0082d move at,ra
    10c: 0c000000 jal 0
    10c: R_MIPS_26 _mcount
    10c: R_MIPS_NONE *ABS*
    10c: R_MIPS_NONE *ABS*
    110: 00020021 nop

    For the module with -mlong-calls, it looks like this:

    c: 3c030000 lui v1,0x0
    c: R_MIPS_HI16 _mcount
    c: R_MIPS_NONE *ABS*
    c: R_MIPS_NONE *ABS*
    10: 64630000 daddiu v1,v1,0
    10: R_MIPS_LO16 _mcount
    10: R_MIPS_NONE *ABS*
    10: R_MIPS_NONE *ABS*
    14: 03e0082d move at,ra
    18: 0060f809 jalr v1

    In the kernel version, there is only one "_mcount" string for every
    kernel function, so, we just need to match this one in mcount_regex of
    scripts/recordmcount.pl, but in the module version, we need to choose
    one of the two to match. Herein, I choose the first one with
    "R_MIPS_HI16 _mcount".

    and In the kernel verion, without module tracing support, we just need
    to replace "jal _mcount" by "jal ftrace_caller" to do real tracing, and
    filter the tracing of some kernel functions via replacing it by a nop
    instruction.

    but as we have described before, the instruction "jal ftrace_caller" only left
    32bit length for the address of ftrace_caller, it will fail when calling from
    the module space. so, herein, we must replace something else.

    the basic idea is loading the address of ftrace_caller to v1 via changing these
    two instructions:

    lui v1,0x0
    addiu v1,v1,0

    If we want to enable the tracing, we need to replace the above instructions to:

    lui v1, HI_16BIT_ftrace_caller
    addiu v1, v1, LOW_16BIT_ftrace_caller

    If we want to stop the tracing of the indicated kernel functions, we
    just need to replace the "jalr v1" to a nop instruction. but we need to
    replace two instructions and encode the above two instructions
    oursevles.

    Is there a simpler solution? Yes! Here it is, in this version, we put _mcount
    and ftrace_caller together, which means the address of _mcount and
    ftrace_caller is the same:

    _mcount:
    ftrace_caller:
    j ftrace_stub
    nop

    ...(do real tracing here)...

    ftrace_stub:
    jr ra
    move ra, at

    By default, the kernel functions call _mcount, and then jump to ftrace_stub and
    return. and when we want to do real tracing, we just need to remove that "j
    ftrace_stub", and it will run through the two "nop" instructions and then do
    the real tracing job.

    what about filtering job? we just need to do this:

    lui v1, hi_16bit_of_mcount b 1f (0x10000004)
    addiu v1, v1, low_16bit_of_mcount
    move at, ra
    jalr v1
    nop
    1f: (rec->ip + 12)

    In linux-mips64, there will be some local symbols, whose name are
    prefixed by $L, which need to be filtered. thanks goes to Steven for
    writing the mips64-specific function_regex.

    In a conclusion, with RISC, things becomes easier with such a "stupid"
    trick, RISC is something like K.I.S.S, and also, there are lots of
    "simple" tricks in the whole ftrace support, thanks goes to Steven and
    the other folks for providing such a wonderful tracing framework!

    Signed-off-by: Wu Zhangjin
    Cc: Nicholas Mc Guire
    Cc: zhangfx@lemote.com
    Cc: Wu Zhangjin
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Frederic Weisbecker
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/675/
    Acked-by: Steven Rostedt
    Signed-off-by: Ralf Baechle

    Wu Zhangjin
     
  • MIPS and some other architectures need this argument to handle
    big/little endian respectively.

    Signed-off-by: Wu Zhangjin
    Cc: Nicholas Mc Guire
    Cc: zhangfx@lemote.com
    Cc: Wu Zhangjin
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Frederic Weisbecker
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/674/
    Acked-by: Steven Rostedt
    Signed-off-by: Ralf Baechle

    Wu Zhangjin
     
  • * 'module' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
    modpost: fix segfault with short symbol names
    module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y
    Kbuild: clear marker out of modpost
    module: make MODULE_SYMBOL_PREFIX into a CONFIG option
    ARM: unexport symbols used to implement floating point emulation
    ARM: use unified discard definition in linker script
    x86: don't export inline function
    sparc64: don't export static inline pci_ functions

    Linus Torvalds
     

16 Dec, 2009

3 commits

  • Restructure a bit for multiple version control systems support.

    Use a hash for each supported VCS that contains the commands
    and patterns used to find commits, logs, and signers.

    --git command line options are still used for hg except for
    --git-since. Use --hg-since instead.

    The number of commits can differ for git and hg, so --rolestats
    might be different.

    Style changes: Use common push style push(@foo...), simplify a return

    Bumped version to 0.23.

    Signed-off-by: Joe Perches
    Cc: Marti Raudsepp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Fix email matching without name --n and --git-blame
    Using --non and --git-blame caused maintainer signature
    matching to fail. Fixed that by adding 3rd argument to
    sub format_email to control show/hide name portion of address
    Slurp -f file instead of reading line-by-line for K: pattern matching.
    Suggested by Wolfram Sang as more efficient
    Refactor git command execution
    Break into 2 functions, execute/analyze
    Share code between --git and --git-blame
    Don't warn multiple times when git isn't installed
    Improve stats reporting
    --git-min-percent and -- rolestats now count the total number of commits
    for either the period of --git-since or if using --git-blame the commits
    used by the current file and calculate commit % as
    # of commits signed / total commits * 100
    Code style cleaning
    Use consistent sub foo { my (args...) = @_;

    Signed-off-by: Joe Perches
    Cc: Ben Hutchings
    Cc: Greg KH
    Cc: Pavel Machek
    Cc: Wolfram Sang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • --roles shows the role of each email address, i.e. why it was selected.
    --rolestats selects --roles and adds git log/blame signers #'s and %

    Multiple roles are possible (supporter, maintainer, git-signer...)

    --roles or --rolestats is meant to help identify appropriate maintainers
    to notify and should not be used with "git send-email --cc-cmd"

    Example output:

    Existing:

    $ ./scripts/get_maintainer.pl -f arch/x86/kernel/acpi/boot.c
    Corentin Chary
    Karol Kozimor
    Len Brown
    Pavel Machek
    Rafael J. Wysocki
    Thomas Gleixner
    Ingo Molnar
    H. Peter Anvin
    x86@kernel.org
    Yinghai Lu
    Jeremy Fitzhardinge
    acpi4asus-user@lists.sourceforge.net
    linux-pm@lists.linux-foundation.org
    linux-kernel@vger.kernel.org

    With --roles

    $ ./scripts/get_maintainer.pl --roles -f arch/x86/kernel/acpi/boot.c
    Corentin Chary (maintainer:ASUS ACPI EXTRAS...)
    Karol Kozimor (maintainer:ASUS ACPI EXTRAS...)
    Len Brown (supporter:SUSPEND TO RAM,git-signer)
    Pavel Machek (supporter:SUSPEND TO RAM)
    Rafael J. Wysocki (supporter:SUSPEND TO RAM)
    Thomas Gleixner (maintainer:X86 ARCHITECTURE...)
    Ingo Molnar (maintainer:X86 ARCHITECTURE...,git-signer)
    H. Peter Anvin (maintainer:X86 ARCHITECTURE...)
    x86@kernel.org (maintainer:X86 ARCHITECTURE...)
    Yinghai Lu (git-signer)
    Jeremy Fitzhardinge (git-signer)
    acpi4asus-user@lists.sourceforge.net (open list:ASUS ACPI EXTRAS...)
    linux-pm@lists.linux-foundation.org (open list:SUSPEND TO RAM)
    linux-kernel@vger.kernel.org (open list)

    With --rolestats

    $ ./scripts/get_maintainer.pl --rolestats -f arch/x86/kernel/acpi/boot.c
    Corentin Chary (maintainer:ASUS ACPI EXTRAS...)
    Karol Kozimor (maintainer:ASUS ACPI EXTRAS...)
    Len Brown (supporter:SUSPEND TO RAM,git-signer:16/79=20%)
    Pavel Machek (supporter:SUSPEND TO RAM)
    Rafael J. Wysocki (supporter:SUSPEND TO RAM)
    Thomas Gleixner (maintainer:X86 ARCHITECTURE...)
    Ingo Molnar (maintainer:X86 ARCHITECTURE...,git-signer:29/79=37%)
    H. Peter Anvin (maintainer:X86 ARCHITECTURE...)
    x86@kernel.org (maintainer:X86 ARCHITECTURE...)
    Yinghai Lu (git-signer:12/79=15%)
    Jeremy Fitzhardinge (git-signer:6/79=8%)
    acpi4asus-user@lists.sourceforge.net (open list:ASUS ACPI EXTRAS...)
    linux-pm@lists.linux-foundation.org (open list:SUSPEND TO RAM)
    linux-kernel@vger.kernel.org (open list)

    With --rolestats and --git-blame

    $ ./scripts/get_maintainer.pl --rolestats --git-blame -f arch/x86/kernel/acpi/boot.c
    Corentin Chary (maintainer:ASUS ACPI EXTRAS...)
    Karol Kozimor (maintainer:ASUS ACPI EXTRAS...)
    Len Brown (supporter:SUSPEND TO RAM,git-signer:16/79=20%,commits:22/154=14%)
    Pavel Machek (supporter:SUSPEND TO RAM)
    Rafael J. Wysocki (supporter:SUSPEND TO RAM)
    Thomas Gleixner (maintainer:X86 ARCHITECTURE...)
    Ingo Molnar (maintainer:X86 ARCHITECTURE...,git-signer:29/79=37%,commits:36/154=23%)
    H. Peter Anvin (maintainer:X86 ARCHITECTURE...)
    x86@kernel.org (maintainer:X86 ARCHITECTURE...)
    Yinghai Lu (git-signer:12/79=15%,commits:9/154=6%)
    Jeremy Fitzhardinge (git-signer:6/79=8%)
    Andi Kleen (commits:11/154=7%)
    Andrew Morton (commits:10/154=6%)
    acpi4asus-user@lists.sourceforge.net (open list:ASUS ACPI EXTRAS...)
    linux-pm@lists.linux-foundation.org (open list:SUSPEND TO RAM)
    linux-kernel@vger.kernel.org (open list)

    Other changes:

    Format git-signers email addresses a bit to reduce bad signatures
    Command line bad arguments emitted a verbose usage(), just show --help
    Version number bumped to .22

    Ben Hutchings had the idea and created a good deal of this implementation.

    Signed-off-by: Joe Perches
    Signed-off-by: Ben Hutchings
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

15 Dec, 2009

3 commits

  • memcmp() is wrong here, the symbol name can be shorter than KSYMTAB_PFX
    or CRC_PFX.

    Signed-off-by: Michal Marek
    Signed-off-by: Rusty Russell

    Michal Marek
     
  • Remove the unnecessary functions and variables.

    Signed-off-by: Wenji Huang
    Signed-off-by: Michal Marek
    Signed-off-by: Rusty Russell

    Wenji Huang
     
  • The next commit will require the use of MODULE_SYMBOL_PREFIX in
    .tmp_exports-asm.S. Currently it is mixed in with C structure
    definitions in "asm/module.h". Move the definition of this arch option
    into Kconfig, so it can be easily accessed by any code.

    This also lets modpost.c use the same definition. Previously modpost
    relied on a hardcoded list of architectures in mk_elfconfig.c.

    A build test for blackfin, one of the two MODULE_SYMBOL_PREFIX archs,
    showed the generated code was unchanged. vmlinux was identical save
    for build ids, and an apparently randomized suffix on a single "__key"
    symbol in the kallsyms data).

    Signed-off-by: Alan Jenkins
    Acked-by: Mike Frysinger (blackfin)
    CC: Sam Ravnborg
    Signed-off-by: Rusty Russell

    Alan Jenkins
     

14 Dec, 2009

1 commit

  • With dynamic function tracer, by default, _mcount is defined as an
    "empty" function, it returns directly without any more action. When
    enabling it in user-space, it will jump to a real tracing
    function(ftrace_caller), and do the real job for us.

    Differ from the static function tracer, dynamic function tracer provides
    two functions ftrace_make_call()/ftrace_make_nop() to enable/disable the
    tracing of some indicated kernel functions(set_ftrace_filter).

    In the kernel version, there is only one "_mcount" string for every
    kernel function, so, we just need to match this one in mcount_regex of
    scripts/recordmcount.pl.

    For more information please look at code and Documentation/trace folder.

    Steven ACK that scripts/recordmcount.pl part.

    Acked-by: Steven Rostedt
    Signed-off-by: Michal Simek

    Michal Simek
     

12 Dec, 2009

13 commits

  • To make it easier for module-init-tools and scripts like mkinitrd to
    distinguish builtin and missing modules, install a modules.builtin file
    listing all builtin modules. This is done by generating an additional
    config file (tristate.conf) with tristate options set to uppercase 'Y'
    or 'M'. If we source that config file, the builtin modules appear in
    obj-Y.

    Signed-off-by: Michal Marek

    Michal Marek
     
  • Despite being unused these should also get a CRC calculated.
    Primarily I view this as a consistency thing. But I also think this is
    one of the reasons why __crc_* need to be weak (which I think should be
    avoided, and hence we should have the goal to eliminate this so that
    failure to calculate a proper CRC for a symbol causes the build to fail).

    Signed-off-by: Jan Beulich
    Cc: Anibal Monsalve Salazar
    Cc: Steven Rostedt
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Michal Marek

    Jan Beulich
     
  • Fix handling of input files (e.g. with no newline at EOF) that could
    make unifdef get into an unexpected state and call abort().

    The new -B option compresses blank lines around a deleted section
    so that blank lines around "paragraphs" of code don't get doubled.

    The evaluator can now handle macros with arguments, and unbracketed
    arguments to the "defined" operator.

    Add myself to MAINTAINERS for unifdef.

    Signed-off-by: Tony Finch
    Acked-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Tony Finch
     
  • Cscope doesn't hadle relative paths when cscope.out is not in $PWD. Use
    absolute paths when generating cscope.files, which seems to be the
    recommended way to generate cscope.out, anyway (at least according to
    cscope.sf.net). The speed and size differences are minimal, the only
    drawback is that the database needs to be regenerated if the source
    directory is moved.

    [mmarek: fixed for O= builds, modified changelog]

    Signed-off-by: Daniel Vetter
    Signed-off-by: Michal Marek

    Daniel Vetter
     
  • The toplevel Makefile creates the directory if it runs silentoldconfig
    automatically, but if run manually, it fails:

    $ make mrproper
    $ make defconfig && make silentoldconfig
    *** Default configuration is based on 'x86_64_defconfig'
    #
    # configuration written to .config
    #
    scripts/kconfig/conf -s arch/x86/Kconfig

    *** Error during update of the kernel configuration.
    ...

    Move the mkdir command to the silentoldconfig target to make it work.

    Signed-off-by: Michal Marek

    Michal Marek
     
  • Running "make deb-pkg" requires setting KBUILD_PKG_ROOTCMD or
    becoming root oneself or it errors out. Unless already running
    as root or KBUILD_PKG_ROOTCMD is already set, use fakeroot as a
    good default.

    With this patch applied, you can run "make oldconfig deb-pkg" as
    an ordinary user to build a binary package for an updated kernel
    tree and it should just work.

    fakeroot is too zealous by default in treating files as owned by
    root. Its wrapped stat() sets st_uid and st_gid to 0 for all
    files, which causes Git to go on a wild goose chase if
    CONFIG_LOCALVERSION_AUTO is set, checking if any file's content
    has changed along with its stat information. Avoid this by
    telling fakeroot to use the actual owner and group for
    preexisting files, by passing it the -u option.

    Signed-off-by: Jonathan Nieder
    Signed-off-by: Michal Marek

    Jonathan Nieder
     
  • Let the deb-pkg target acquire (fake) root privileges before
    running commands that need them. Without such privileges,
    deb-pkg errors out because chown fails.

    The new KBUILD_PKG_ROOTCMD variable, if defined, is used as a
    command to run other commands with possibly fake elevated
    privileges. Since this is not needed for the tar-pkg and rpm-pkg
    targets, it is only used by deb-pkg. If it is not defined, the
    behavior is as before, and the user will have to rerun make as
    root.

    In other words, as a shortcut, instead of running 'make oldconfig &&
    make && fakeroot -u make deb-pkg', one can use the single command
    'make oldconfig deb-pkg KBUILD_PKG_ROOTCMD="fakeroot -u"'.

    Suggested-by: Ryan Anderson
    Signed-off-by: Jonathan Nieder
    Signed-off-by: Michal Marek

    Jonathan Nieder
     
  • Use the --owner= and --group= options to make sure the entries in
    the built tar file are owned by root. Without this change, a
    careless sysadmin using the tar-pkg target can easily end up
    installing a kernel that is writable by the unprivileged user
    account used to build the kernel.

    Test that these options are understood before using them so that
    non-GNU versions of tar can still be used if the operator is
    appropriately cautious.

    Signed-off-by: Jonathan Nieder
    Signed-off-by: Michal Marek

    Michal Marek
     
  • Signed-off-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Sam Ravnborg
     
  • No architectures uses include/asm-$ARCH now.
    So drop check for location of include files

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Sam Ravnborg
     
  • As has been discussed previously (and Sam has been CC'ed), the fix
    is still incorrect. It replaces "echo -ne" with "/bin/echo -ne",
    but neither of the two are guaranteed to support the necessary
    arguments and necessary (hexadecimal) escape sequences. What should
    be used here is printf(1). The trivial patch below (on top of these
    kbuild changes) fixes this issue.

    Signed-Off-By: Michael Tokarev
    Signed-off-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Michael Tokarev
     
  • This patch fixes a bug when incrementing/decrementing on a BCD formatted
    integer (i.e. 0x09++ should be 0x10 not 0x0A). It just adds a function
    for incrementing/decrementing BCD integers by converting to decimal,
    doing the increment/decrement and then converting back to BCD.

    Signed-off-by: Nathaniel McCallum
    Signed-off-by: Greg Kroah-Hartman

    Nathaniel McCallum
     
  • The current code to generate usb modaliases from usb_device_id assumes
    that the device's bcdDevice descriptor will actually be in BCD format.
    While this should be a sane assumption, some devices don't follow spec
    and just use plain old hex. This causes drivers for these devices to
    generate invalid modalias lines which will never actually match for the
    hardware.

    The following patch adds hex support for bcdDevice in file2alias.c by
    detecting when a driver uses a hex formatted bcdDevice_(lo|hi) and
    adjusts the output to hex format accordingly.

    Drivers for devices which have bcdDevice conforming to BCD will have no
    change in modalias output. Drivers for devices which don't conform
    (i.e. ibmcam) should now generate valid modaliases.

    EXAMPLE OUTPUT (ibmcam; space added to highlight change)
    Old: usb:v0545p800D d030[10-9] dc*dsc*dp*ic*isc*ip*
    New: usb:v0545p800D d030a dc*dsc*dp*ic*isc*ip*

    Signed-off-by: Nathaniel McCallum
    Signed-off-by: Greg Kroah-Hartman

    Nathaniel McCallum
     

08 Dec, 2009

1 commit


06 Dec, 2009

2 commits

  • …git/tip/linux-2.6-tip

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (470 commits)
    x86: Fix comments of register/stack access functions
    perf tools: Replace %m with %a in sscanf
    hw-breakpoints: Keep track of user disabled breakpoints
    tracing/syscalls: Make syscall events print callbacks static
    tracing: Add DEFINE_EVENT(), DEFINE_SINGLE_EVENT() support to docbook
    perf: Don't free perf_mmap_data until work has been done
    perf_event: Fix compile error
    perf tools: Fix _GNU_SOURCE macro related strndup() build error
    trace_syscalls: Remove unused syscall_name_to_nr()
    trace_syscalls: Simplify syscall profile
    trace_syscalls: Remove duplicate init_enter_##sname()
    trace_syscalls: Add syscall_nr field to struct syscall_metadata
    trace_syscalls: Remove enter_id exit_id
    trace_syscalls: Set event_enter_##sname->data to its metadata
    trace_syscalls: Remove unused event_syscall_enter and event_syscall_exit
    perf_event: Initialize data.period in perf_swevent_hrtimer()
    perf probe: Simplify event naming
    perf probe: Add --list option for listing current probe events
    perf probe: Add argv_split() from lib/argv_split.c
    perf probe: Move probe event utility functions to probe-event.c
    ...

    Linus Torvalds
     
  • …el/git/tip/linux-2.6-tip

    * 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (40 commits)
    tracing: Separate raw syscall from syscall tracer
    ring-buffer-benchmark: Add parameters to set produce/consumer priorities
    tracing, function tracer: Clean up strstrip() usage
    ring-buffer benchmark: Run producer/consumer threads at nice +19
    tracing: Remove the stale include/trace/power.h
    tracing: Only print objcopy version warning once from recordmcount
    tracing: Prevent build warning: 'ftrace_graph_buf' defined but not used
    ring-buffer: Move access to commit_page up into function used
    tracing: do not disable interrupts for trace_clock_local
    ring-buffer: Add multiple iterations between benchmark timestamps
    kprobes: Sanitize struct kretprobe_instance allocations
    tracing: Fix to use __always_unused attribute
    compiler: Introduce __always_unused
    tracing: Exit with error if a weak function is used in recordmcount.pl
    tracing: Move conditional into update_funcs() in recordmcount.pl
    tracing: Add regex for weak functions in recordmcount.pl
    tracing: Move mcount section search to front of loop in recordmcount.pl
    tracing: Fix objcopy revision check in recordmcount.pl
    tracing: Check absolute path of input file in recordmcount.pl
    tracing: Correct the check for number of arguments in recordmcount.pl
    ...

    Linus Torvalds
     

04 Dec, 2009

1 commit

  • That is "success", "unknown", "through", "performance", "[re|un]mapping"
    , "access", "default", "reasonable", "[con]currently", "temperature"
    , "channel", "[un]used", "application", "example","hierarchy", "therefore"
    , "[over|under]flow", "contiguous", "threshold", "enough" and others.

    Signed-off-by: André Goddard Rosa
    Signed-off-by: Jiri Kosina

    André Goddard Rosa
     

03 Dec, 2009

1 commit