27 Jul, 2011

40 commits

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     
  • The majority of architectures implement ext2 atomic bitops as
    test_and_{set,clear}_bit() without spinlock.

    This adds this type of generic implementation in ext2-atomic-setbit.h and
    use it wherever possible.

    Signed-off-by: Akinobu Mita
    Suggested-by: Andreas Dilger
    Suggested-by: Arnd Bergmann
    Acked-by: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • This changes should_fail_request() to more usable wrapper function of
    should_fail(). It can avoid putting #ifdef CONFIG_FAIL_MAKE_REQUEST in
    the middle of a function.

    Signed-off-by: Akinobu Mita
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Now cleanup_fault_attr_dentries() recursively removes a directory, So we
    can simplify the error handling in the initialization code and no need
    to hold dentry structs for each debugfs file.

    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Now cleanup_fault_attr_dentries() recursively removes a directory, So we
    can simplify the error handling in the initialization code and no need
    to hold dentry structs for each debugfs file.

    Signed-off-by: Akinobu Mita
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Matt Mackall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Use debugfs_remove_recursive() to simplify initialization and
    deinitialization of fault injection debugfs files.

    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Minor cosmetic changes for simple attribute of stacktrace_depth:

    - use min_t()
    - reduce #ifdef by moving a function
    - do not use partly capitalized function name

    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • should_fail_srandom() does not exist.

    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • No need to include linux/kallsyms.h.

    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • The size of the dump is currently set using the RECORD_SIZE macro which
    is set to a page size. This patch makes the record size a module
    parameter and allows it to be set through platform data as well to allow
    larger dumps if needed.

    Signed-off-by: Sergiu Iordache
    Acked-by: Marco Stornelli
    Cc: "Ahmed S. Darwish"
    Cc: Artem Bityutskiy
    Cc: Kyungmin Park
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sergiu Iordache
     
  • The platform driver currently allows setting the mem_size and
    mem_address.

    ince dump_oops is also a module parameter it would be more consistent if
    it could be set through platform data as well.

    Signed-off-by: Sergiu Iordache
    Acked-by: Marco Stornelli
    Cc: "Ahmed S. Darwish"
    Cc: Artem Bityutskiy
    Cc: Kyungmin Park
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sergiu Iordache
     
  • Add new line to each print.

    Signed-off-by: Marco Stornelli
    Reported-by: Stevie Trujillo
    Cc: Kyungmin Park
    Cc: Américo Wang
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marco Stornelli
     
  • Use generic module parameters instead of platform data, if platform data
    are not available. This limitation has been introduced with commit
    c3b92ce9e75 ("ramoops: use the platform data structure instead of module
    params").

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Marco Stornelli
    Cc: Kyungmin Park
    Cc: Américo Wang
    Reported-by: Stevie Trujillo
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marco Stornelli
     
  • With the arrival of concurrency-managed workqueues there is no need for
    our driver to use dedicated workqueue; system-wide one should suffice just
    fine.

    [akpm@linux-foundation.org: fix comment layout & grammar]
    Signed-off-by: Dmitry Torokhov
    Acked-by: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Torokhov
     
  • Signed-off-by: Christian Glindkamp
    Cc: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christian Glindkamp
     
  • Don't force output if you intend to reboot immediately.

    In this patch, I'm disabling the functionality enabled by
    vc->vc_panic_force_write if panic_timeout < 0 (i.e. no timeout).
    vc_panic_force_write is only enabled for fb video consoles if the
    FBINFO_CAN_FORCE_OUTPUT flag is set.

    For our application, we're using ram_oops to preserved the panic in
    memory. We want to reliably, and as fast as possible, machine_restart.
    The vc_panic_force_write flag results in a bunch of graphics driver code
    to be invoked which slows down restart and decreases reliability. Since
    we're already storing the panic in RAM and are going to reboot
    immediately, there is no benefit in mode switching back to the vc in
    order to display the panic output. The log buffer will get flushed by
    the console_unblank() call so remote management consoles should see all
    output.

    Signed-off-by: Mandeep Singh Baines
    Cc: Huang Ying
    Cc: Andi Kleen
    Cc: Hugh Dickins
    Cc: Olaf Hering
    Cc: Jesse Barnes
    Cc: Dave Airlie
    Cc: Greg Kroah-Hartman
    Acked-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mandeep Singh Baines
     
  • When a kernel BUG or oops occurs, ChromeOS intends to panic and
    immediately reboot, with stacktrace and other messages preserved in RAM
    across reboot.

    But the longer we delay, the more likely the user is to poweroff and
    lose the info.

    panic_timeout (seconds before rebooting) is set by panic= boot option or
    sysctl or /proc/sys/kernel/panic; but 0 means wait forever, so at
    present we have to delay at least 1 second.

    Let a negative number mean reboot immediately (with the small cosmetic
    benefit of suppressing that newline-less "Rebooting in %d seconds.."
    message).

    Signed-off-by: Hugh Dickins
    Signed-off-by: Mandeep Singh Baines
    Cc: Huang Ying
    Cc: Andi Kleen
    Cc: Hugh Dickins
    Cc: Olaf Hering
    Cc: Jesse Barnes
    Cc: Dave Airlie
    Cc: Greg Kroah-Hartman
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • See: DMA-API.txt, part Id, DMA_FROM_DEVICE description.

    Signed-off-by: Michal Miroslaw
    Cc: FUJITA Tomonori
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Miroslaw
     
  • git grep shows there are no users in tree, so we can remove them safely.

    Signed-off-by: WANG Cong
    Acked-by: FUJITA Tomonori
    Acked-by: Jiri Slaby
    Acked-by: Vinod Koul
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    WANG Cong
     
  • Selecting GCOV for UML causing configuration mismatch:

    warning: (GCOV_KERNEL) selects CONSTRUCTORS which has unmet direct dependencies (!UML)

    Constructors are not needed for UML.

    Signed-off-by: Vitaliy Ivanov
    Cc: Peter Oberparleiter
    Acked-by: Richard Weinberger
    Acked-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vitaliy Ivanov
     
  • Parameter offset_in_page in edac_mc_handle_ce() should mask the higher
    bits above the page size, not the lower bits. The original input
    sometimes causes a crash.

    Signed-off-by: Kai.Jiang
    Signed-off-by: Shaohui Xie
    Cc: Anton Vorontsov
    Cc: Grant Likely
    Cc: "David S. Miller"
    Cc: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kai.Jiang
     
  • Add support for the shm_rmid_forced sysctl. If set to 1, all shared
    memory objects in current ipc namespace will be automatically forced to
    use IPC_RMID.

    The POSIX way of handling shmem allows one to create shm objects and
    call shmdt(), leaving shm object associated with no process, thus
    consuming memory not counted via rlimits.

    With shm_rmid_forced=1 the shared memory object is counted at least for
    one process, so OOM killer may effectively kill the fat process holding
    the shared memory.

    It obviously breaks POSIX - some programs relying on the feature would
    stop working. So set shm_rmid_forced=1 only if you're sure nobody uses
    "orphaned" memory. Use shm_rmid_forced=0 by default for compatability
    reasons.

    The feature was previously impemented in -ow as a configure option.

    [akpm@linux-foundation.org: fix documentation, per Randy]
    [akpm@linux-foundation.org: fix warning]
    [akpm@linux-foundation.org: readability/conventionality tweaks]
    [akpm@linux-foundation.org: fix shm_rmid_forced/shm_forced_rmid confusion, use standard comment layout]
    Signed-off-by: Vasiliy Kulikov
    Cc: Randy Dunlap
    Cc: "Eric W. Biederman"
    Cc: "Serge E. Hallyn"
    Cc: Daniel Lezcano
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Ingo Molnar
    Cc: Alan Cox
    Cc: Solar Designer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vasiliy Kulikov
     
  • We return ENOMEM from mqueue_get_inode even when we have enough memory.
    Namely in case the system rlimit of mqueue was reached. This error
    propagates to mq_queue and user sees the error unexpectedly. So fix
    this up to properly return EMFILE as described in the manpage:

    EMFILE The process already has the maximum number of files and
    message queues open.

    instead of:

    ENOMEM Insufficient memory.

    With the previous patch we just switch to ERR_PTR/PTR_ERR/IS_ERR error
    handling here.

    Signed-off-by: Jiri Slaby
    Cc: Manfred Spraul
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • If new_inode fails to allocate an inode we need only to return with
    NULL. But now we test the opposite and have all the work in a nested
    block. So do the opposite to save one indentation level (and remove
    unnecessary line breaks).

    This is only a preparation/cleanup for the next patch where we fix up
    return values from mqueue_get_inode.

    Signed-off-by: Jiri Slaby
    Cc: Manfred Spraul
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • cpumask_var_t has one notable difference from cpumask_t. Add the
    explanation.

    Signed-off-by: KOSAKI Motohiro
    Cc: Thiago Farina
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • NUMA_NO_NODE and numa_node_id() have different meanings. NUMA_NO_NODE is
    obviously the recommended fallback.

    Signed-off-by: KOSAKI Motohiro
    Cc: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Adapt new API fashion.

    Signed-off-by: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • acct_arg_size() takes ->page_table_lock around add_mm_counter() if
    !SPLIT_RSS_COUNTING. This is not needed after commit 172703b08cd0 ("mm:
    delete non-atomic mm counter implementation").

    Signed-off-by: Oleg Nesterov
    Reviewed-by: Matt Fleming
    Cc: Dave Hansen
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • If CONFIG_MODULES=n, it makes no sense to retry the list of binary formats
    handler because the list will not be modified by request_module().

    Signed-off-by: Tetsuo Handa
    Cc: Richard Weinberger
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tetsuo Handa
     
  • Currently, search_binary_handler() tries to load binary loader module
    using request_module() if a loader for the requested program is not yet
    loaded. But second attempt of request_module() does not affect the result
    of search_binary_handler().

    If request_module() triggered recursion, calling request_module() twice
    causes 2 to the power of MAX_KMOD_CONCURRENT (= 50) repetitions. It is
    not an infinite loop but is sufficient for users to consider as a hang up.

    Therefore, this patch changes not to call request_module() twice, making 1
    to the power of MAX_KMOD_CONCURRENT repetitions in case of recursion.

    Signed-off-by: Tetsuo Handa
    Reported-by: Richard Weinberger
    Tested-by: Richard Weinberger
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tetsuo Handa
     
  • Commit a8bef8ff6ea1 ("mm: migration: avoid race between
    shift_arg_pages() and rmap_walk() during migration by not migrating
    temporary stacks") introduced a BUG_ON() to ensure that VM_STACK_FLAGS
    and VM_STACK_INCOMPLETE_SETUP do not overlap. The check is a compile
    time one, so BUILD_BUG_ON is more appropriate.

    Signed-off-by: Michal Hocko
    Cc: Mel Gorman
    Cc: Richard Weinberger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • Signed-off-by: Daniel Rebelo de Oliveira
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Rebelo de Oliveira
     
  • If an inode's mode permits opening /proc/PID/io and the resulting file
    descriptor is kept across execve() of a setuid or similar binary, the
    ptrace_may_access() check tries to prevent using this fd against the
    task with escalated privileges.

    Unfortunately, there is a race in the check against execve(). If
    execve() is processed after the ptrace check, but before the actual io
    information gathering, io statistics will be gathered from the
    privileged process. At least in theory this might lead to gathering
    sensible information (like ssh/ftp password length) that wouldn't be
    available otherwise.

    Holding task->signal->cred_guard_mutex while gathering the io
    information should protect against the race.

    The order of locking is similar to the one inside of ptrace_attach():
    first goes cred_guard_mutex, then lock_task_sighand().

    Signed-off-by: Vasiliy Kulikov
    Cc: Al Viro
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vasiliy Kulikov
     
  • Change the return value to ENOENT. This return value is then returned
    when opening the proc entry that have been removed. For example,
    open("/proc/bus/pci/XX/YY") when the corresponding device is being
    hot-removed.

    Signed-off-by: Daisuke Ogino
    Cc: Jesse Barnes
    Acked-by: Alexey Dobriyan
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daisuke Ogino
     
  • Harmonise these return values with other architectures. In some cases
    this affects all compilers and in other cases non-gcc compilers only.

    Cc: Yoshinori Sato
    Cc: Geert Uytterhoeven
    Cc: Chris Zankel
    Cc: Ulrich Drepper
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • do_coredump() assumes that if format_corename() fails it should return
    -ENOMEM. This is not true, for example cn_print_exe_file() can propagate
    the error from d_path. Even if it was true, this is too fragile. Change
    the code to check "ispipe < 0".

    Signed-off-by: Oleg Nesterov
    Signed-off-by: Jiri Slaby
    Reviewed-by: Neil Horman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Change every occurence of / in comm and hostname to !. If the process
    changes its name to contain /, the core is not dumped (if the directory
    tree doesn't exist like that). The same with hostname being something
    like myhost/3. Fix this behaviour by using the escape loop used in %E.
    (We extract it to a separate function.)

    Now both with comm == myprocess/1 and hostname == myhost/1, the core is
    dumped like (kernel.core_pattern='core.%p.%e.%h):
    core.2349.myprocess!1.myhost!1

    Signed-off-by: Jiri Slaby
    Cc: Alan Cox
    Cc: Al Viro
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • If we don't know the file corresponding to the binary (i.e. exe_file is
    unknown), use "task->comm (path unknown)" instead of simple "(unknown)"
    as suggested by ak.

    The fallback is the same as %e except it will append "(path unknown)".

    Signed-off-by: Jiri Slaby
    Cc: Alan Cox
    Cc: Al Viro
    Cc: Andi Kleen
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • [ poleg@redhat.com: no need to declare show_regs() in ptrace.h, sched.h does this ]
    Signed-off-by: Mike Frysinger
    Cc: Tejun Heo
    Signed-off-by: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • [ This patch has already been accepted as commit 0ac0c0d0f837 but later
    reverted (commit 35926ff5fba8) because it itroduced arch specific
    __node_random which was defined only for x86 code so it broke other
    archs. This is a followup without any arch specific code. Other than
    that there are no functional changes.]

    Some workloads that create a large number of small files tend to assign
    too many pages to node 0 (multi-node systems). Part of the reason is
    that the rotor (in cpuset_mem_spread_node()) used to assign nodes starts
    at node 0 for newly created tasks.

    This patch changes the rotor to be initialized to a random node number
    of the cpuset.

    [akpm@linux-foundation.org: fix layout]
    [Lee.Schermerhorn@hp.com: Define stub numa_random() for !NUMA configuration]
    [mhocko@suse.cz: Make it arch independent]
    [akpm@linux-foundation.org: fix CONFIG_NUMA=y, MAX_NUMNODES>1 build]
    Signed-off-by: Jack Steiner
    Signed-off-by: Lee Schermerhorn
    Signed-off-by: Michal Hocko
    Reviewed-by: KOSAKI Motohiro
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Paul Menage
    Cc: Jack Steiner
    Cc: Robin Holt
    Cc: David Rientjes
    Cc: Christoph Lameter
    Cc: David Rientjes
    Cc: Jack Steiner
    Cc: KOSAKI Motohiro
    Cc: Lee Schermerhorn
    Cc: Michal Hocko
    Cc: Paul Menage
    Cc: Pekka Enberg
    Cc: Robin Holt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko