04 Mar, 2008

29 commits

  • Create based on and the
    at91sam9263 and at32ap7000 datasheets. Most AT91 and AT32 SOCs have one
    or two of these TC blocks, which include three 16-bit timers that can be
    interconnected in various ways.

    These TC blocks can be used for external interfacing (such as PWM and
    measurement), or used as somewhat quirky sixteen-bit timers.

    Changes relative to the original version:
    * Drop unneeded inclusion of
    * Support an arbitrary number of TC blocks
    * Return a struct with information about a TC block from
    atmel_tc_alloc() instead of using a combination of return values
    and "out" parameters.
    * ioremap() the I/O registers on allocation
    * Look up clocks and irqs for all channels
    * Add "name" parameter to atmel_tc_alloc() and use this when
    requesting the iomem resource.
    * Check if the platform provided the necessary resources at probe()
    time instead of when the TCB is allocated.

    Signed-off-by: David Brownell
    Signed-off-by: Haavard Skinnemoen

    David Brownell
     
  • * 'slab-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm:
    slub: fix possible NULL pointer dereference
    slub: Add kmalloc_large_node() to support kmalloc_node fallback
    slub: look up object from the freelist once
    slub: Fix up comments
    slub: Rearrange #ifdef CONFIG_SLUB_DEBUG in calculate_sizes()
    slub: Remove BUG_ON() from ksize and omit checks for !SLUB_DEBUG
    slub: Use the objsize from the kmem_cache_cpu structure
    slub: Remove useless checks in alloc_debug_processing
    slub: Remove objsize check in kmem_cache_flags()
    slub: rename slab_objects to show_slab_objects
    Revert "unique end pointer" patch
    slab: avoid double initialization & do initialization in 1 place

    Linus Torvalds
     
  • 1. exit_notify() always calls kill_orphaned_pgrp(). This is wrong, we
    should do this only when the whole process exits.

    2. exit_notify() uses "current" as "ignored_task", obviously wrong.
    Use ->group_leader instead.

    Test case:

    void hup(int sig)
    {
    printf("HUP received\n");
    }

    void *tfunc(void *arg)
    {
    sleep(2);
    printf("sub-thread exited\n");
    return NULL;
    }

    int main(int argc, char *argv[])
    {
    if (!fork()) {
    signal(SIGHUP, hup);
    kill(getpid(), SIGSTOP);
    exit(0);
    }

    pthread_t thr;
    pthread_create(&thr, NULL, tfunc, NULL);

    sleep(1);
    printf("main thread exited\n");
    syscall(__NR_exit, 0);

    return 0;
    }

    output:

    main thread exited
    HUP received
    Hangup

    With this patch the output is:

    main thread exited
    sub-thread exited
    HUP received

    Signed-off-by: Oleg Nesterov
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • p->exit_state != 0 doesn't mean this process is dead, it may have
    sub-threads. Change the code to use "p->exit_state && thread_group_empty(p)"
    instead.

    Without this patch, ^Z doesn't deliver SIGTSTP to the foreground process
    if the main thread has exited.

    However, the new check is not perfect either. There is a window when
    exit_notify() drops tasklist and before release_task(). Suppose that
    the last (non-leader) thread exits. This means that entire group exits,
    but thread_group_empty() is not true yet.

    As Eric pointed out, is_global_init() is wrong as well, but I did not
    dare to do other changes.

    Just for the record, has_stopped_jobs() is absolutely wrong too. But we
    can't fix it now, we should first fix SIGNAL_STOP_STOPPED issues.

    Even with this patch ^Z doesn't play well with the dead main thread.
    The task is stopped correctly but do_wait(WSTOPPED) won't see it. This
    is another unrelated issue, will be (hopefully) fixed separately.

    Signed-off-by: Oleg Nesterov
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Factor out the common code in reparent_thread() and exit_notify().

    No functional changes.

    Signed-off-by: Oleg Nesterov
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Oddly enough, unsigned int c = '\300'; puts a "negative" value in c, not
    0300... This fixes the default unicode compose table by using integers
    instead of character constants.

    Signed-off-by: Samuel Thibault
    Signed-off-by: Linus Torvalds

    Samuel Thibault
     
  • This patch fix possible NULL pointer dereference if kzalloc
    failed. To be able to return proper error code the function
    return type is changed to ssize_t (according to callees and
    sysfs definitions).

    Signed-off-by: Cyrill Gorcunov
    Signed-off-by: Christoph Lameter

    Cyrill Gorcunov
     
  • Slub is missing some NUMA support for large kmallocs. Provide that.

    Reviewed-by: Pekka Enberg
    Signed-off-by: Christoph Lameter

    Christoph Lameter
     
  • We only need to look up object from c->page->freelist once in
    __slab_alloc().

    Signed-off-by: Pekka Enberg
    Signed-off-by: Christoph Lameter

    Pekka J Enberg
     
  • Provide comments and fix up various spelling / style issues.

    Signed-off-by: Christoph Lameter

    Christoph Lameter
     
  • Group SLUB_DEBUG code together to reduce the number of #ifdefs. Move some
    debug checks under the #ifdef.

    Reviewed-by: Pekka Enberg
    Signed-off-by: Christoph Lameter

    Christoph Lameter
     
  • The BUG_ONs are useless since the pointer derefs will lead to
    NULL deref errors anyways. Some of the checks are not necessary
    if no debugging is possible.

    Signed-off-by: Christoph Lameter

    Christoph Lameter
     
  • No need to access the kmem_cache structure. We have the same value
    in kmem_cache_cpu.

    Reviewed-by: Pekka Enberg
    Signed-off-by: Christoph Lameter

    Christoph Lameter
     
  • Alloc debug processing is never called with a NULL object pointer.
    No reason to check for NULL.

    Reviewed-by: Pekka Enberg
    Signed-off-by: Christoph Lameter

    Christoph Lameter
     
  • There is no page->offset anymore and also no associated limit on the number
    of objects. The page->offset field was removed for 2.6.24. So the check
    in kmem_cache_flags() is now also obsolete (should have been dropped
    earlier, somehow a hunk vanished).

    Reviewed-by: Pekka Enberg
    Signed-by: Christoph Lameter

    Christoph Lameter
     
  • The sysfs callback is better named show_slab_objects since it is always
    called from the xxx_show callbacks. We need the name for other purposes
    later.

    Reviewed-by: Pekka Enberg
    Signed-off-by: Christoph Lameter

    Christoph Lameter
     
  • This only made sense for the alternate fastpath which was reverted last week.

    Mathieu is working on a new version that addresses the fastpath issues but that
    new code first needs to go through mm and it is not clear if we need the
    unique end pointers with his new scheme.

    Reviewed-by: Pekka Enberg
    Signed-off-by: Christoph Lameter

    Christoph Lameter
     
  • Christoph Lameter
     
  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] Fix freeing of page tables for ARM in free_pgd_slow

    Linus Torvalds
     
  • Fix docbook problems in fusion source files.
    These cause the generated docbook to be incorrect.

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

    Randy Dunlap
     
  • Fix docbook problems in kernel-api.tmpl.
    These cause the generated docbook to be incorrect.

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

    Randy Dunlap
     
  • Fix docbook problems in USB source files.
    These cause the generated docbook to be incorrect.

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

    Randy Dunlap
     
  • Fix docbook problem in SCSI source files.
    These cause the generated docbook to be incorrect.

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

    Randy Dunlap
     
  • Fix docbook problems in rapidio source files.
    These cause the generated docbook to be incorrect.

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

    Randy Dunlap
     
  • Fix docbook problems in filesystems.tmpl.
    These cause the generated docbook to be incorrect.

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

    Randy Dunlap
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
    x86: revert "x86: fix pmd_bad and pud_bad to support huge pages"
    x86: revert "x86: CPA: avoid split of alias mappings"

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (24 commits)
    [POWERPC] Convert the cell IOMMU fixed mapping to 16M IOMMU pages
    [POWERPC] Allow for different IOMMU page sizes in cell IOMMU code
    [POWERPC] Cell IOMMU: n_pte_pages is in 4K page units, not IOMMU_PAGE_SIZE
    [POWERPC] Split setup of IOMMU stab and ptab, allocate dynamic/fixed ptabs separately
    [POWERPC] Move allocation of cell IOMMU pad page
    [POWERPC] Remove unused pte_offset variable
    [POWERPC] Use it_offset not pte_offset in cell IOMMU code
    [POWERPC] Clearup cell IOMMU fixed mapping terminology
    [POWERPC] enable hardware watchpoints on cell blades
    [POWERPC] move celleb DABRX definitions
    [POWERPC] OProfile: enable callgraph support for Cell
    [POWERPC] spufs: fix use time accounting on SPE-overcommit
    [POWERPC] spufs: serialize SLB invalidation against SLB loading
    [POWERPC] spufs: invalidate SLB translation before adding a new entry
    [POWERPC] spufs: synchronize IRQ when disabling
    [POWERPC] spufs: fix order of sputrace thread IDs
    [POWERPC] Xilinx: hwicap cleanup
    [POWERPC] 4xx: Use correct board info structure in cuboot wrappers
    [POWERPC] spufs: fix invalid scheduling of forgotten contexts
    [POWERPC] 44x: add missing define TARGET_4xx and TARGET_440GX to cuboot-taishan
    ...

    Linus Torvalds
     
  • The new code that removed the limitation on the execve string size
    (which was historically 32 pages) replaced it with a much softer limit
    based on RLIMIT_STACK which is usually much larger than the traditional
    limit. See commit b6a2fea39318e43fee84fa7b0b90d68bed92d2ba ("mm:
    variable length argument support") for details.

    However, if you have a small stack limit (perhaps because you need lots
    of stacks in a threaded environment), the new heuristic of allowing up
    to 1/4th of RLIMIT_STACK to be used for argument and environment strings
    could actually be smaller than the old limit.

    So just say that it's ok to have up to ARG_MAX strings regardless of the
    value of RLIMIT_STACK, and check the rlimit only when going over that
    traditional limit.

    (Of course, if you actually have a *really* small stack limit, the whole
    stack itself will be limited before you hit ARG_MAX, but that has always
    been true and is clearly the right behaviour anyway).

    Acked-by: Carlos O'Donell
    Cc: Michael Kerrisk
    Cc: Peter Zijlstra
    Cc: Ollie Wild
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • This reverts commit cded932b75ab0a5f9181ee3da34a0a488d1a14fd.

    Arjan bisected down a boot-time hang to this, saying:
    ".. it prevents the kernel to finish booting on my (Penryn based)
    laptop. The boot stops right after freeing the init memory."

    and while it's not clear exactly what triggers it, at this stage we're
    better off just reverting it while Ingo tries to figure out what went
    wrong.

    Requested-by: Arjan van de Ven
    Cc: Hans Rosenfeld
    Cc: Nish Aravamudan
    Acked-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

03 Mar, 2008

11 commits