30 Jan, 2008

4 commits

  • This patch adds a new configuration option, which adds support for a new
    early_param which gets checked in arch/x86/kernel/setup_{32,64}.c:setup_arch()
    to decide wether OHCI-1394 FireWire controllers should be initialized and
    enabled for physical DMA access to allow remote debugging of early problems
    like issues ACPI or other subsystems which are executed very early.

    If the config option is not enabled, no code is changed, and if the boot
    paramenter is not given, no new code is executed, and independent of that,
    all new code is freed after boot, so the config option can be even enabled
    in standard, non-debug kernels.

    With specialized tools, it is then possible to get debugging information
    from machines which have no serial ports (notebooks) such as the printk
    buffer contents, or any data which can be referenced from global pointers,
    if it is stored below the 4GB limit and even memory dumps of of the physical
    RAM region below the 4GB limit can be taken without any cooperation from the
    CPU of the host, so the machine can be crashed early, it does not matter.

    In the extreme, even kernel debuggers can be accessed in this way. I wrote
    a small kgdb module and an accompanying gdb stub for FireWire which allows
    to gdb to talk to kgdb using remote remory reads and writes over FireWire.

    An version of the gdb stub fore FireWire is able to read all global data
    from a system which is running a a normal kernel without any kernel debugger,
    without any interruption or support of the system's CPU. That way, e.g. the
    task struct and so on can be read and even manipulated when the physical DMA
    access is granted.

    A HOWTO is included in this patch, in Documentation/debugging-via-ohci1394.txt
    and I've put a copy online at
    ftp://ftp.suse.de/private/bk/firewire/docs/debugging-via-ohci1394.txt

    It also has links to all the tools which are available to make use of it
    another copy of it is online at:
    ftp://ftp.suse.de/private/bk/firewire/kernel/ohci1394_dma_early-v2.diff

    Signed-Off-By: Bernhard Kaindl
    Tested-By: Thomas Renninger
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Bernhard Kaindl
     
  • During the work on the x86 32 and 64 bit backtrace code I found it useful
    to have a simple test module to test a process and irq context backtrace.
    Since the existing backtrace code was buggy, I figure it might be useful
    to have such a test module in the kernel so that maybe we can even
    detect such bugs earlier..

    [ mingo@elte.hu: build fix ]

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Arjan van de Ven
     
  • introduce the "asmregparm" calling convention: for functions
    implemented in assembly with a fixed regparm input parameters
    calling convention.

    mark the semaphore and rwsem slowpath functions with that.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Miklos Szeredi
    Signed-off-by: Thomas Gleixner

    Ingo Molnar
     
  • Here is a quick and naive smoke test for kprobes. This is intended to
    just verify if some unrelated change broke the *probes subsystem. It is
    self contained, architecture agnostic and isn't of any great use by itself.

    This needs to be built in the kernel and runs a basic set of tests to
    verify if kprobes, jprobes and kretprobes run fine on the kernel. In case
    of an error, it'll print out a message with a "BUG" prefix.

    This is a start; we intend to add more tests to this bucket over time.

    Thanks to Jim Keniston and Masami Hiramatsu for comments and suggestions.

    Tested on x86 (32/64) and powerpc.

    Signed-off-by: Ananth N Mavinakayanahalli
    Acked-by: Masami Hiramatsu
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Ananth N Mavinakayanahalli
     

29 Jan, 2008

7 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.25: (1470 commits)
    [IPV6] ADDRLABEL: Fix double free on label deletion.
    [PPP]: Sparse warning fixes.
    [IPV4] fib_trie: remove unneeded NULL check
    [IPV4] fib_trie: More whitespace cleanup.
    [NET_SCHED]: Use nla_policy for attribute validation in ematches
    [NET_SCHED]: Use nla_policy for attribute validation in actions
    [NET_SCHED]: Use nla_policy for attribute validation in classifiers
    [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers
    [NET_SCHED]: sch_api: introduce constant for rate table size
    [NET_SCHED]: Use typeful attribute parsing helpers
    [NET_SCHED]: Use typeful attribute construction helpers
    [NET_SCHED]: Use NLA_PUT_STRING for string dumping
    [NET_SCHED]: Use nla_nest_start/nla_nest_end
    [NET_SCHED]: Propagate nla_parse return value
    [NET_SCHED]: act_api: use PTR_ERR in tcf_action_init/tcf_action_get
    [NET_SCHED]: act_api: use nlmsg_parse
    [NET_SCHED]: act_api: fix netlink API conversion bug
    [NET_SCHED]: sch_netem: use nla_parse_nested_compat
    [NET_SCHED]: sch_atm: fix format string warning
    [NETNS]: Add namespace for ICMP replying code.
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (79 commits)
    Remove references to "make dep"
    kconfig: document use of HAVE_*
    Introduce new section reference annotations tags: __ref, __refdata, __refconst
    kbuild: warn about ld added unique sections
    kbuild: add verbose option to Section mismatch reporting in modpost
    kconfig: tristate choices with mixed tristate and boolean values
    asm-generic/vmlix.lds.h: simplify __mem{init,exit}* dependencies
    remove __attribute_used__
    kbuild: support ARCH=x86 in buildtar
    kconfig: remove "enable"
    kbuild: simplified warning report in modpost
    kbuild: introduce a few helpers in modpost
    kbuild: use simpler section mismatch warnings in modpost
    kbuild: link vmlinux.o before kallsyms passes
    kbuild: introduce new option to enhance section mismatch analysis
    Use separate sections for __dev/__cpu/__mem code/data
    compiler.h: introduce __section()
    all archs: consolidate init and exit sections in vmlinux.lds.h
    kbuild: check section names consistently in modpost
    kbuild: introduce blacklisting in modpost
    ...

    Linus Torvalds
     
  • This function is used by the ext4 multi block allocator patches.

    Also add generic_find_next_le_bit

    Signed-off-by: Aneesh Kumar K.V
    Cc:
    Signed-off-by: Andrew Morton

    Aneesh Kumar K.V
     
  • Before pushing pcounter to Linus tree, I would like to make some adjustments.

    Goal is to reduce kernel text size, by unlining too big functions.

    When a pcounter is bound to a statically defined per_cpu variable,
    we define two small helpers functions. (No more folding function
    using the fat for_each_possible_cpu(cpu) ... )

    static DEFINE_PER_CPU(int, NAME##_pcounter_values);
    static void NAME##_pcounter_add(struct pcounter *self, int val)
    {
    __get_cpu_var(NAME##_pcounter_values) += val;
    }
    static int NAME##_pcounter_getval(const struct pcounter *self, int cpu)
    {
    return per_cpu(NAME##_pcounter_values, cpu);
    }

    Fast path is therefore unchanged, while folding/alloc/free is now unlined.

    This saves 228 bytes on i386

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • This just generalises what was introduced by Eric Dumazet for the struct proto
    inuse field in 286ab3d46058840d68e5d7d52e316c1f7e98c59f:

    [NET]: Define infrastructure to keep 'inuse' changes in an efficent SMP/NUMA way.

    Please look at the comment in there to see the rationale.

    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     
  • If the config option CONFIG_SECTION_MISMATCH is not set and
    we see a Section mismatch present the following to the user:

    modpost: Found 1 section mismatch(es).
    To see additional details select "Enable full Section mismatch analysis"
    in the Kernel Hacking menu (CONFIG_SECTION_MISMATCH).

    If the option CONFIG_SECTION_MISMATCH is selected
    then be verbose in the Section mismatch reporting from mdopost.
    Sample outputs:

    WARNING: o-x86_64/vmlinux.o(.text+0x7396): Section mismatch in reference from the function discover_ebda() to the variable .init.data:ebda_addr
    The function discover_ebda() references
    the variable __initdata ebda_addr.
    This is often because discover_ebda lacks a __initdata
    annotation or the annotation of ebda_addr is wrong.

    WARNING: o-x86_64/vmlinux.o(.data+0x74d58): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()
    The variable pci_serial_quirks references
    the function __devexit pci_plx9050_exit()
    If the reference is valid then annotate the
    variable with __exit* (see linux/init.h) or name the variable:
    *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

    WARNING: o-x86_64/vmlinux.o(__ksymtab+0x630): Section mismatch in reference from the variable __ksymtab_arch_register_cpu to the function .cpuinit.text:arch_register_cpu()
    The symbol arch_register_cpu is exported and annotated __cpuinit
    Fix this by removing the __cpuinit annotation of arch_register_cpu or drop the export.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Setting the option DEBUG_SECTION_MISMATCH will
    report additional section mismatch'es but this
    should in the end makes it possible to get rid of
    all of them.

    See help text in lib/Kconfig.debug for details.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

28 Jan, 2008

2 commits


26 Jan, 2008

2 commits


25 Jan, 2008

25 commits