29 May, 2009

17 commits

  • The amd8111_edac.c driver will fail allmodconfig on architectures other
    than PPC, introduce Kconfig dependency to avoid this, since both AMD8111
    and AMD8131 chips are only adopted on Maple so far.

    Signed-off-by: Harry Ciao
    Cc: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harry Ciao
     
  • The "bus_id" member in the device structure has been obsolete, use
    dev_name() instead.

    Signed-off-by: Harry Ciao
    Cc: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harry Ciao
     
  • Fix build warning, "mem_cgroup_is_obsolete defined but not used" when
    CONFIG_DEBUG_VM is not set. Also avoid checking for !mem again and again.

    Signed-off-by: Nikanth Karthikesan
    Acked-by: Pekka Enberg
    Acked-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nikanth Karthikesan
     
  • Addresses http://bugzilla.kernel.org/show_bug.cgi?id=13302

    hugetlbfs reserves huge pages but does not fault them at mmap() time to
    ensure that future faults succeed. The reservation behaviour differs
    depending on whether the mapping was mapped MAP_SHARED or MAP_PRIVATE.
    For MAP_SHARED mappings, hugepages are reserved when mmap() is first
    called and are tracked based on information associated with the inode.
    Other processes mapping MAP_SHARED use the same reservation. MAP_PRIVATE
    track the reservations based on the VMA created as part of the mmap()
    operation. Each process mapping MAP_PRIVATE must make its own
    reservation.

    hugetlbfs currently checks if a VMA is MAP_SHARED with the VM_SHARED flag
    and not VM_MAYSHARE. For file-backed mappings, such as hugetlbfs,
    VM_SHARED is set only if the mapping is MAP_SHARED and the file was opened
    read-write. If a shared memory mapping was mapped shared-read-write for
    populating of data and mapped shared-read-only by other processes, then
    hugetlbfs would account for the mapping as if it was MAP_PRIVATE. This
    causes processes to fail to map the file MAP_SHARED even though it should
    succeed as the reservation is there.

    This patch alters mm/hugetlb.c and replaces VM_SHARED with VM_MAYSHARE
    when the intent of the code was to check whether the VMA was mapped
    MAP_SHARED or MAP_PRIVATE.

    Signed-off-by: Mel Gorman
    Cc: Hugh Dickins
    Cc: Ingo Molnar
    Cc:
    Cc: Lee Schermerhorn
    Cc: KOSAKI Motohiro
    Cc:
    Cc: Eric B Munson
    Cc: Adam Litke
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Addresses http://bugzilla.kernel.org/show_bug.cgi?id=13302

    On x86 and x86-64, it is possible that page tables are shared beween
    shared mappings backed by hugetlbfs. As part of this,
    page_table_shareable() checks a pair of vma->vm_flags and they must match
    if they are to be shared. All VMA flags are taken into account, including
    VM_LOCKED.

    The problem is that VM_LOCKED is cleared on fork(). When a process with a
    shared memory segment forks() to exec() a helper, there will be shared
    VMAs with different flags. The impact is that the shared segment is
    sometimes considered shareable and other times not, depending on what
    process is checking.

    What happens is that the segment page tables are being shared but the
    count is inaccurate depending on the ordering of events. As the page
    tables are freed with put_page(), bad pmd's are found when some of the
    children exit. The hugepage counters also get corrupted and the Total and
    Free count will no longer match even when all the hugepage-backed regions
    are freed. This requires a reboot of the machine to "fix".

    This patch addresses the problem by comparing all flags except VM_LOCKED
    when deciding if pagetables should be shared or not for hugetlbfs-backed
    mapping.

    Signed-off-by: Mel Gorman
    Acked-by: Hugh Dickins
    Cc: Ingo Molnar
    Cc:
    Cc: Lee Schermerhorn
    Cc: KOSAKI Motohiro
    Cc:
    Cc: Eric B Munson
    Cc: Adam Litke
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Remove wrong fifo size definition for some AT91 products.

    Due to a misunderstanding of some AT91 datasheets, a fifo size of 2048
    (words) has been introduced by mistake. In fact, all products (AT91/AT32)
    are sharing the same fifo size of 512 words.

    Signed-off-by: Nicolas Ferre
    Cc: Andrew Victor
    Acked-by: Haavard Skinnemoen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Ferre
     
  • Correctly restore the FrameBuffer register state in the resume function.

    Reviewed-by: Kyungmin Park
    Signed-off-by: Marek Szyprowski
    Cc: Ben Dooks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marek Szyprowski
     
  • drivers/serial/8250_gsc.c:44: warning: format '%lx' expects type
    'long unsigned int', but argument 2 has type 'resource_size_t'

    [akpm@linux-foundation.org: fix it to handle u64's]
    Signed-off-by: Alexander Beregalov
    Cc: Alan Cox
    Cc: Kyle McMartin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Beregalov
     
  • drivers/parport/parport_gsc.c:356: warning: format '%lx' expects type
    'long unsigned int', but argument 2 has type 'resource_size_t'

    [akpm@linux-foundation.org: fix it to handle u64's]
    Signed-off-by: Alexander Beregalov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Beregalov
     
  • The flat loader uses an architecture's flat_stack_align() to align the
    stack but assumes word-alignment is enough for the data sections.

    However, on the Xtensa S6000 we have registers up to 128bit width
    which can be used from userspace and therefor need userspace stack and
    data-section alignment of at least this size.

    This patch drops flat_stack_align() and uses the same alignment that
    is required for slab caches, ARCH_SLAB_MINALIGN, or wordsize if it's
    not defined by the architecture.

    It also fixes m32r which was obviously kaput, aligning an
    uninitialized stack entry instead of the stack pointer.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Oskar Schirmer
    Cc: David Howells
    Cc: Russell King
    Cc: Bryan Wu
    Cc: Geert Uytterhoeven
    Acked-by: Paul Mundt
    Cc: Greg Ungerer
    Signed-off-by: Johannes Weiner
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oskar Schirmer
     
  • Signed-off-by: Thomas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Dahlmann
     
  • The check for an overindexing of mpc52xx_uart_{ports,nodes} has an
    off-by-one.

    Signed-off-by: Roel Kluin
    Acked-by: Wolfram Sang
    Acked-by: Grant Likely
    Cc: Benjamin Herrenschmidt
    Cc: Alan Cox
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • mapping->tree_lock can be acquired from interrupt context. Then,
    following dead lock can occur.

    Assume "A" as a page.

    CPU0:
    lock_page_cgroup(A)
    interrupted
    -> take mapping->tree_lock.
    CPU1:
    take mapping->tree_lock
    -> lock_page_cgroup(A)

    This patch tries to fix above deadlock by moving memcg's hook to out of
    mapping->tree_lock. charge/uncharge of pagecache/swapcache is protected
    by page lock, not tree_lock.

    After this patch, lock_page_cgroup() is not called under mapping->tree_lock.

    Signed-off-by: KAMEZAWA Hiroyuki
    Signed-off-by: Daisuke Nishimura
    Cc: Balbir Singh
    Cc: Daisuke Nishimura
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daisuke Nishimura
     
  • proc_pident_instantiate() has following call flow.

    proc_pident_lookup()
    proc_pident_instantiate()
    proc_pid_make_inode()

    And, proc_pident_lookup() has following error handling.

    const struct pid_entry *p, *last;
    error = ERR_PTR(-ENOENT);
    if (!task)
    goto out_no_task;

    Then, proc_pident_instantiate should return ENOENT too when racing against
    exit(2) occur.

    EINAL has two bad reason.
    - it implies caller is wrong. bad the race isn't caller's mistake.
    - man 2 open don't explain EINVAL. user often don't handle it.

    Note: Other proc_pid_make_inode() caller already use ENOENT properly.

    Acked-by: Eric W. Biederman
    Cc: Alexey Dobriyan
    Signed-off-by: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • linux/cred.h can't be included as first header (alphabetical order)
    because it uses __init which is enough to break compilation on some archs.

    Signed-off-by: Alexey Dobriyan
    Acked-by: James Morris
    Acked-by: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • When /proc/sys/vm/oom_dump_tasks is enabled, it is possible to get a NULL
    pointer for tasks that have detached mm's since task_lock() is not held
    during the tasklist scan. Add the task_lock().

    Acked-by: Nick Piggin
    Acked-by: Mel Gorman
    Cc: Rik van Riel
    Signed-off-by: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • Entries should be P: name then M: email address.

    Signed-off-by: Joe Perches
    Acked-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

28 May, 2009

5 commits


27 May, 2009

18 commits