22 Oct, 2010

2 commits

  • * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (278 commits)
    arm: remove machine_desc.io_pg_offst and .phys_io
    arm: use addruart macro to establish debug mappings
    arm: return both physical and virtual addresses from addruart
    arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC
    ARM: make struct machine_desc definition coherent with its comment
    eukrea_mbimxsd-baseboard: Pass the correct GPIO to gpio_free
    cpuimx27: fix compile when ULPI is selected
    mach-pcm037_eet: fix compile errors
    Fixing ethernet driver compilation error for i.MX31 ADS board
    cpuimx51: update board support
    mx5: add cpuimx51sd module and its baseboard
    iomux-mx51: fix GPIO_1_xx 's IOMUX configuration
    imx-esdhc: update devices registration
    mx51: add resources for SD/MMC on i.MX51
    iomux-mx51: fix SD1 and SD2's iomux configuration
    clock-mx51: rename CLOCK1 to CLOCK_CCGR for better readability
    clock-mx51: factorize clk_set_parent and clk_get_rate
    eukrea_mbimxsd: add support for DVI displays
    cpuimx25 & cpuimx35: fix OTG port registration in host mode
    i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472
    ...

    Linus Torvalds
     
  • …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: (163 commits)
    tracing: Fix compile issue for trace_sched_wakeup.c
    [S390] hardirq: remove pointless header file includes
    [IA64] Move local_softirq_pending() definition
    perf, powerpc: Fix power_pmu_event_init to not use event->ctx
    ftrace: Remove recursion between recordmcount and scripts/mod/empty
    jump_label: Add COND_STMT(), reducer wrappery
    perf: Optimize sw events
    perf: Use jump_labels to optimize the scheduler hooks
    jump_label: Add atomic_t interface
    jump_label: Use more consistent naming
    perf, hw_breakpoint: Fix crash in hw_breakpoint creation
    perf: Find task before event alloc
    perf: Fix task refcount bugs
    perf: Fix group moving
    irq_work: Add generic hardirq context callbacks
    perf_events: Fix transaction recovery in group_sched_in()
    perf_events: Fix bogus AMD64 generic TLB events
    perf_events: Fix bogus context time tracking
    tracing: Remove parent recording in latency tracer graph options
    tracing: Use one prologue for the preempt irqs off tracer function tracers
    ...

    Linus Torvalds
     

20 Oct, 2010

1 commit


19 Oct, 2010

2 commits

  • …x' and 'unwind' into devel

    Russell King
     
  • When DYNAMIC_FTRACE is enabled and we use the C version of recordmcount,
    all objects are run through the recordmcount program to create a
    separate section that stores all the callers of mcount.

    The build process has a special file: scripts/mod/empty.o. This is
    built from empty.c which is literally an empty file (except for a
    single comment). This file is used to find information about the target
    elf format, like endianness and word size.

    The problem comes up when we need to build recordmcount. The
    build process requires that empty.o is built first. The build rules
    for empty.o will try to execute recordmcount on the empty.o file.
    We get an error that recordmcount does not exist.

    To avoid this recursion, the build file will skip running recordmcount
    if the file that it is building is script/mod/empty.o.

    [ extra comment Suggested-by: Sam Ravnborg ]

    Reported-by: Ingo Molnar
    Tested-by: Ingo Molnar
    Cc: Michal Marek
    Cc: linux-kbuild@vger.kernel.org
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

16 Oct, 2010

1 commit


15 Oct, 2010

4 commits

  • The file kernel/trace/ftrace.c references the mcount() call to
    convert the mcount() callers to nops. But because it references
    mcount(), the mcount() address is placed in the relocation table.

    The C version of recordmcount reads the relocation table of all
    object files, and it will add all references to mcount to the
    __mcount_loc table that is used to find the places that call mcount()
    and change the call to a nop. When recordmcount finds the mcount reference
    in kernel/trace/ftrace.o, it saves that location even though the code
    is not a call, but references mcount as data.

    On boot up, when all calls are converted to nops, the code has a safety
    check to determine what op code it is actually replacing before it
    replaces it. If that op code at the address does not match, then
    a warning is printed and the function tracer is disabled.

    The reference to mcount in ftrace.c, causes this warning to trigger,
    since the reference is not a call to mcount(). The ftrace.c file is
    not compiled with the -pg flag, so no calls to mcount() should be
    expected.

    This patch simply makes recordmcount.c skip the kernel/trace/ftrace.c
    file. This was the same solution used by the perl version of
    recordmcount.

    Reported-by: Ingo Molnar
    Cc: John Reiser
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The elf reader for recordmcount.c had duplicate functions for both
    32 bit and 64 bit elf handling. This was due to the need of using
    the 32 and 64 bit elf structures.

    This patch consolidates the two by using macros to define the 32
    and 64 bit names in a recordmcount.h file, and then by just defining
    a RECORD_MCOUNT_64 macro and including recordmcount.h twice we
    create the funtions for both the 32 bit version as well as the
    64 bit version using one code source.

    Cc: John Reiser
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • This patch adds the support for the C version of recordmcount and
    compile times show ~ 12% improvement.

    After verifying this works, other archs can add:

    HAVE_C_MCOUNT_RECORD

    in its Kconfig and it will use the C version of recordmcount
    instead of the perl version.

    Cc:
    Cc: Michal Marek
    Cc: linux-kbuild@vger.kernel.org
    Cc: John Reiser
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • Currently, the mcount callers are found with a perl script that does
    an objdump on every file in the kernel. This is a C version of that
    same code which should increase the performance time of compiling
    the kernel with dynamic ftrace enabled.

    Signed-off-by: John Reiser

    [ Updated the code to include .text.unlikely section as well as
    changing the format to follow Linux coding style. ]

    Signed-off-by: Steven Rostedt

    John Reiser
     

12 Oct, 2010

1 commit


10 Oct, 2010

2 commits

  • Commit 861b4ea4 broke oldnoconfig when removed the oldnoconfig checks on
    if (input_mode == nonint_oldconfig ||
    input_mode == oldnoconfig) {
    if (input_mode == nonint_oldconfig &&
    sym->name &&
    !sym_is_choice_value(sym)) {
    to avoid oldnoconfig chugging through the else stanza.

    Fix that to restore expected behaviour (which I've confirmed in the
    Fedora kernel build that the configs end up looking the same.)

    Signed-off-by: Kyle McMartin
    Acked-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Kyle McMartin
     
  • After fixing a use-after-free bug in kconfig, a 'make defconfig' or
    'make allmodconfig' fills the screen with warnings that were not
    detected before. Given that we are close to the release now, disable the
    warnings temporarily and deal with them after 2.6.36.

    Signed-off-by: Michal Marek

    Michal Marek
     

04 Oct, 2010

1 commit


24 Sep, 2010

1 commit

  • The following build bug occurs on distcc builds:

    CC arch/x86/kernel/asm-offsets.s
    In file included from include/linux/module.h:24,
    from include/linux/crypto.h:22,
    from arch/x86/kernel/asm-offsets_64.c:9,
    from arch/x86/kernel/asm-offsets.c:5:
    include/trace/events/module.h: In function 'trace_module_load':
    include/trace/events/module.h:18: error: expected '(' before 'goto'
    include/trace/events/module.h:18: error: expected identifier or '*' before '(' token

    It triggers because distcc is invoked by turning $CC into "distcc gcc",
    but gcc-goto.sh check script was using $1 not $@ to expand parameters.

    Cc: Jason Baron
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

23 Sep, 2010

2 commits

  • Convert the 'dynamic debug' infrastructure to use jump labels.

    Signed-off-by: Jason Baron
    LKML-Reference:
    Signed-off-by: Steven Rostedt

    Jason Baron
     
  • base patch to implement 'jump labeling'. Based on a new 'asm goto' inline
    assembly gcc mechanism, we can now branch to labels from an 'asm goto'
    statment. This allows us to create a 'no-op' fastpath, which can subsequently
    be patched with a jump to the slowpath code. This is useful for code which
    might be rarely used, but which we'd like to be able to call, if needed.
    Tracepoints are the current usecase that these are being implemented for.

    Acked-by: David S. Miller
    Signed-off-by: Jason Baron
    LKML-Reference:

    [ cleaned up some formating ]

    Signed-off-by: Steven Rostedt

    Jason Baron
     

12 Sep, 2010

2 commits

  • When you don't use !E or !I but only !F, then it's very easy to miss
    including some functions, structs etc. in documentation. To help
    finding which ones were missed, allow printing out the unused ones as
    warnings.

    For example, using this on mac80211 yields a lot of warnings like this:

    Warning: didn't use docs for DOC: mac80211 workqueue
    Warning: didn't use docs for ieee80211_max_queues
    Warning: didn't use docs for ieee80211_bss_change
    Warning: didn't use docs for ieee80211_bss_conf

    when generating the documentation for it.

    Signed-off-by: Johannes Berg
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Johannes Berg
     
  • There are valid attributes that could have upper case letters, but we
    still want to remove, like for example
    __attribute__((aligned(NETDEV_ALIGN)))
    as encountered in the wireless code.

    Signed-off-by: Johannes Berg
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Johannes Berg
     

02 Sep, 2010

3 commits

  • Handle the different nop and call instructions for Thumb-2. Also, we
    need to adjust the recorded mcount_loc addresses because they have the
    lsb set.

    Cc: Catalin Marinas
    Acked-by: Steven Rostedt [recordmcount.pl change]
    Signed-off-by: Rabin Vincent
    Signed-off-by: Russell King

    Rabin Vincent
     
  • This adds mcount recording and updates dynamic ftrace for ARM to work
    with the new ftrace dyamic tracing implementation. It also adds support
    for the mcount format used by newer ARM compilers.

    With dynamic tracing, mcount() is implemented as a nop. Callsites are
    patched on startup with nops, and dynamically patched to call to the
    ftrace_caller() routine as needed.

    Acked-by: Steven Rostedt [recordmcount.pl change]
    Signed-off-by: Rabin Vincent
    Signed-off-by: Russell King

    Rabin Vincent
     
  • On ARM, we have two ABIs, and the ABI used is controlled via a config
    option. Object files built with one ABI can't be merged with object
    files built with the other ABI. So, record_mcount.pl needs to use the
    same compiler flags as the kernel when generating the object file with
    the mcount locations. Ensure this by passing CFLAGS to the script.

    Acked-by: Steven Rostedt
    Signed-off-by: Rabin Vincent
    Signed-off-by: Russell King

    Rabin Vincent
     

24 Aug, 2010

1 commit


21 Aug, 2010

1 commit

  • Dan McGee writes:
    > Note that when in git, you get the appended "+" sign. If
    > LOCALVERSION_AUTO is set, you will get something like
    > "eee-gb01b08c-dirty" (whereas the copy of the tree in /tmp still
    > returns "eee"). It doesn't matter whether the working tree is dirty or
    > clean.
    >
    > Is there a way to disable this? I'm building from a clean tarball that
    > just happens to be unpacked inside a git repository. One would think
    > setting LOCALVERSION_AUTO to false would do it, but no such luck...

    Fix this by checking if the kernel source tree is the root of the git or
    hg repository. No fix for svn: If the kernel source is not tracked in
    the svn repository, it works as expected, otherwise determining the
    'repository root' is not really a defined task.

    Reported-and-tested-by: Dan McGee
    Signed-off-by: Michal Marek

    Michal Marek
     

20 Aug, 2010

1 commit


17 Aug, 2010

1 commit

  • It doesn't like pattern and explicit rules to be on the same line,
    and it seems to be more picky when matching file (or really directory)
    names with different numbers of trailing slashes.

    Signed-off-by: Jan Beulich
    Acked-by: Sam Ravnborg
    Andrew Benton
    Cc:
    Signed-off-by: Michal Marek

    Jan Beulich
     

16 Aug, 2010

1 commit


15 Aug, 2010

3 commits

  • Following sample Kconfig generated a segfault:

    config FOO
    bool
    select PERF_EVENTS if HAVE_HW_BREAKPOINT

    config PERF_EVENTS
    bool

    config HAVE_HW_BREAKPOINT
    bool
    depends on PERF_EVENTS

    Fix by reverting back to a valid property if there was no
    property on the stack of symbols.

    The above pattern were seen in sh Kconfig.
    A fix for the Kconfig file has been sent to the sh folks.

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

    Sam Ravnborg
     
  • savedefconfig failed to save the correct minimal config
    when it encountered a choice marked optional.

    Consider following minimal configuration:
    $cat Kconfig
    choice
    prompt "choice"
    optional

    config A
    bool "a"

    config B
    bool "b"

    endchoice

    $cat .config | grep -v ^#
    CONFIG_A=y

    $conf --savedefconfig=defconfig Kconfig

    would before this fix result in an empty file, because
    kconfig would assume that CONFIG_A=y is a default value.
    But because the choice is optional the default is that
    both A and B are =n.

    Fix so we handle optional choices correct.

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

    Sam Ravnborg
     
  • unifdef-y is not used anymore - drop remaining references

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

14 Aug, 2010

2 commits


13 Aug, 2010

6 commits

  • The manpage for cut says it will return all lines without the delimiter
    unless -s is specified.

    When I backed up my mecurial tree to generate modules, I found that the
    scm part of localversion was turning up blank.

    Signed-off-by: Milton Miller
    Cc: Michal Marek
    Cc: "Michał Górny"
    Signed-off-by: Michal Marek

    Milton Miller
     
  • This fix facilitates fgets() either it returns on success or on error or
    when end of file occurs.

    Signed-off-by: Jean Sacren
    Signed-off-by: Michal Marek

    Jean Sacren
     
  • This fix facilitates fwrite() in both confdata.c and expr.c, either it
    succeeds in writing, or an error occurs, or the end of file is reached.

    Signed-off-by: Jean Sacren
    Signed-off-by: Michal Marek

    Jean Sacren
     
  • nconf crush with segfault if press right arrow in empty menu.

    Signed-off-by: Andrej Gelenberg
    Signed-off-by: Michal Marek

    Andrej Gelenberg
     
  • * 'params' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: (22 commits)
    param: don't deref arg in __same_type() checks
    param: update drivers/acpi/debug.c to new scheme
    param: use module_param in drivers/message/fusion/mptbase.c
    ide: use module_param_named rather than module_param_call
    param: update drivers/char/ipmi/ipmi_watchdog.c to new scheme
    param: lock if_sdio's lbs_helper_name and lbs_fw_name against sysfs changes.
    param: lock myri10ge_fw_name against sysfs changes.
    param: simple locking for sysfs-writable charp parameters
    param: remove unnecessary writable charp
    param: add kerneldoc to moduleparam.h
    param: locking for kernel parameters
    param: make param sections const.
    param: use free hook for charp (fix leak of charp parameters)
    param: add a free hook to kernel_param_ops.
    param: silence .init.text references from param ops
    Add param ops struct for hvc_iucv driver.
    nfs: update for module_param_named API change
    AppArmor: update for module_param_named API change
    param: use ops in struct kernel_param, rather than get and set fns directly
    param: move the EXPORT_SYMBOL to after the definitions.
    ...

    Linus Torvalds
     
  • Permit .GCC-command-line sections in modules. Otherwise modpost says things
    like:

    WARNING: drivers/mtd/chips/map_ram.o (.GCC-command-line): unexpected non-allocatable section.
    Did you forget to use "ax"/"aw" in a .S file?
    Note that for example contains
    section definitions for use in .S files.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     

12 Aug, 2010

2 commits

  • The mcount call on Blackfin systems includes some stack manipulation
    around the actual call site, so extend the build time perl script to
    support this. This way we can avoid doing the calculation at runtime.

    Signed-off-by: Mike Frysinger
    LKML-Reference:
    Signed-off-by: Steven Rostedt

    Mike Frysinger
     
  • If a minimal config did not specify the value
    of all choice values, the resulting configuration
    could have wrong values.

    Consider following example:
    config M
    def_bool y
    option modules
    choice
    prompt "choice list"
    config A
    tristate "a"
    config B
    tristate "b"
    endchoice

    With a defconfig like this:
    CONFIG_M=y
    CONFIG_A=y

    The resulting configuration would have

    CONFIG_A=m

    which was unexpected.

    The problem was not not all choice values were set and thus
    kconfig calculated a wrong value.

    The fix is to set all choice values when we
    read a defconfig files.

    conf_set_all_new_symbols() is refactored such that
    random choice values are now handled by a dedicated function.
    And new choice values are set by set_all_choice_values().

    This was not the minimal fix, but the fix that resulted
    in the most readable code.

    Signed-off-by: Sam Ravnborg
    Reported-by: Arve Hjønnevåg
    Tested-by: Arve Hjønnevåg
    Signed-off-by: Michal Marek

    Sam Ravnborg