30 Oct, 2014

21 commits

  • If CONFIG_BALLOON_COMPACTION=n balloon_page_insert() does not link pages
    with balloon and doesn't set PagePrivate flag, as a result
    balloon_page_dequeue() cannot get any pages because it thinks that all
    of them are isolated. Without balloon compaction nobody can isolate
    ballooned pages. It's safe to remove this check.

    Fixes: d6d86c0a7f8d ("mm/balloon_compaction: redesign ballooned pages management").
    Signed-off-by: Konstantin Khlebnikov
    Reported-by: Matt Mullins
    Cc: [3.17]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • Resources scif1_resources & scif2_resources overlap. Actual SCIF region
    size is 0x10.

    This is regression from commit d850acf975be ("sh: Declare SCIF register
    base and IRQ as resources")

    Signed-off-by: Andriy Skulysh
    Acked-by: Laurent Pinchart
    Cc: Geert Uytterhoeven
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andriy Skulysh
     
  • There is a rare NULL pointer bug in mem_used_total_show() and
    mem_used_max_store() in concurrent situation, like this:

    zram is not initialized, process A is a mem_used_total reader which runs
    periodically, while process B try to init zram.

    process A process B
    access meta, get a NULL value
    init zram, done
    init_done() is true
    access meta->mem_pool, get a NULL pointer BUG

    This patch fixes this issue.

    Signed-off-by: Weijie Yang
    Acked-by: Minchan Kim
    Acked-by: Sergey Senozhatsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Weijie Yang
     
  • The SLUB cache merges caches with the same size and alignment and there
    was long standing bug with this behavior:

    - create the cache named "foo"
    - create the cache named "bar" (which is merged with "foo")
    - delete the cache named "foo" (but it stays allocated because "bar"
    uses it)
    - create the cache named "foo" again - it fails because the name "foo"
    is already used

    That bug was fixed in commit 694617474e33 ("slab_common: fix the check
    for duplicate slab names") by not warning on duplicate cache names when
    the SLUB subsystem is used.

    Recently, cache merging was implemented the with SLAB subsystem too, in
    12220dea07f1 ("mm/slab: support slab merge")). Therefore we need stop
    checking for duplicate names even for the SLAB subsystem.

    This patch fixes the bug by removing the check.

    Signed-off-by: Mikulas Patocka
    Acked-by: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mikulas Patocka
     
  • d_splice_alias() can return a valid dentry, NULL or an ERR_PTR.
    Currently the code checks not for ERR_PTR and will cuase an oops in
    ocfs2_dentry_attach_lock(). Fix this by using IS_ERR_OR_NULL().

    Signed-off-by: Richard Weinberger
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Richard Weinberger
     
  • page_remove_rmap() has too many branches on PageAnon() and is hard to
    follow. Move the file part into a separate function.

    Signed-off-by: Johannes Weiner
    Reviewed-by: Michal Hocko
    Cc: Vladimir Davydov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • Commit 0a31bc97c80c ("mm: memcontrol: rewrite uncharge API") changed
    page migration to uncharge the old page right away. The page is locked,
    unmapped, truncated, and off the LRU, but it could race with writeback
    ending, which then doesn't unaccount the page properly:

    test_clear_page_writeback() migration
    wait_on_page_writeback()
    TestClearPageWriteback()
    mem_cgroup_migrate()
    clear PCG_USED
    mem_cgroup_update_page_stat()
    if (PageCgroupUsed(pc))
    decrease memcg pages under writeback

    release pc->mem_cgroup->move_lock

    The per-page statistics interface is heavily optimized to avoid a
    function call and a lookup_page_cgroup() in the file unmap fast path,
    which means it doesn't verify whether a page is still charged before
    clearing PageWriteback() and it has to do it in the stat update later.

    Rework it so that it looks up the page's memcg once at the beginning of
    the transaction and then uses it throughout. The charge will be
    verified before clearing PageWriteback() and migration can't uncharge
    the page as long as that is still set. The RCU lock will protect the
    memcg past uncharge.

    As far as losing the optimization goes, the following test results are
    from a microbenchmark that maps, faults, and unmaps a 4GB sparse file
    three times in a nested fashion, so that there are two negative passes
    that don't account but still go through the new transaction overhead.
    There is no actual difference:

    old: 33.195102545 seconds time elapsed ( +- 0.01% )
    new: 33.199231369 seconds time elapsed ( +- 0.03% )

    The time spent in page_remove_rmap()'s callees still adds up to the
    same, but the time spent in the function itself seems reduced:

    # Children Self Command Shared Object Symbol
    old: 0.12% 0.11% filemapstress [kernel.kallsyms] [k] page_remove_rmap
    new: 0.12% 0.08% filemapstress [kernel.kallsyms] [k] page_remove_rmap

    Signed-off-by: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: Vladimir Davydov
    Cc: [3.17.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • A follow-up patch would have changed the call signature. To save the
    trouble, just fold it instead.

    Signed-off-by: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: Vladimir Davydov
    Cc: [3.17.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • If __bitmap_shift_left() or __bitmap_shift_right() are asked to shift by
    a multiple of BITS_PER_LONG, they will try to shift a long value by
    BITS_PER_LONG bits which is undefined. Change the functions to avoid
    the undefined shift.

    Coverity id: 1192175
    Coverity id: 1192174
    Signed-off-by: Jan Kara
    Cc: Rasmus Villemoes
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Kara
     
  • Fix register value in bq32000 trickle charging.

    Mike reported that I'm using wrong value in one trickle-charging case,
    and after checking docs, I must admit he's right.

    Signed-off-by: Pavel Machek
    Reported-by: Mike Bremford
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Machek
     
  • When hot adding the same memory after hot removal, the following
    messages are shown:

    WARNING: CPU: 20 PID: 6 at mm/page_alloc.c:4968 free_area_init_node+0x3fe/0x426()
    ...
    Call Trace:
    dump_stack+0x46/0x58
    warn_slowpath_common+0x81/0xa0
    warn_slowpath_null+0x1a/0x20
    free_area_init_node+0x3fe/0x426
    hotadd_new_pgdat+0x90/0x110
    add_memory+0xd4/0x200
    acpi_memory_device_add+0x1aa/0x289
    acpi_bus_attach+0xfd/0x204
    acpi_bus_attach+0x178/0x204
    acpi_bus_scan+0x6a/0x90
    acpi_device_hotplug+0xe8/0x418
    acpi_hotplug_work_fn+0x1f/0x2b
    process_one_work+0x14e/0x3f0
    worker_thread+0x11b/0x510
    kthread+0xe1/0x100
    ret_from_fork+0x7c/0xb0

    The detaled explanation is as follows:

    When hot removing memory, pgdat is set to 0 in try_offline_node(). But
    if the pgdat is allocated by bootmem allocator, the clearing step is
    skipped.

    And when hot adding the same memory, the uninitialized pgdat is reused.
    But free_area_init_node() checks wether pgdat is set to zero. As a
    result, free_area_init_node() hits WARN_ON().

    This patch clears pgdat which is allocated by bootmem allocator in
    try_offline_node().

    Signed-off-by: Yasuaki Ishimatsu
    Cc: Zhang Zhen
    Cc: Wang Nan
    Cc: Tang Chen
    Reviewed-by: Toshi Kani
    Cc: Dave Hansen
    Cc: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasuaki Ishimatsu
     
  • Fix unconditional initialization failure on non-exynos3250 SoCs.

    Commit df9e26d093d3 ("rtc: s3c: add support for RTC of Exynos3250 SoC")
    introduced rtc source clock support, but also added initialization
    failure on SoCs, which doesn't need such clock.

    Signed-off-by: Marek Szyprowski
    Reviewed-by: Chanwoo Choi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marek Szyprowski
     
  • Found this in the message log on a s390 system:

    BUG kmalloc-192 (Not tainted): Poison overwritten
    Disabling lock debugging due to kernel taint
    INFO: 0x00000000684761f4-0x00000000684761f7. First byte 0xff instead of 0x6b
    INFO: Allocated in call_usermodehelper_setup+0x70/0x128 age=71 cpu=2 pid=648
    __slab_alloc.isra.47.constprop.56+0x5f6/0x658
    kmem_cache_alloc_trace+0x106/0x408
    call_usermodehelper_setup+0x70/0x128
    call_usermodehelper+0x62/0x90
    cgroup_release_agent+0x178/0x1c0
    process_one_work+0x36e/0x680
    worker_thread+0x2f0/0x4f8
    kthread+0x10a/0x120
    kernel_thread_starter+0x6/0xc
    kernel_thread_starter+0x0/0xc
    INFO: Freed in call_usermodehelper_exec+0x110/0x1b8 age=71 cpu=2 pid=648
    __slab_free+0x94/0x560
    kfree+0x364/0x3e0
    call_usermodehelper_exec+0x110/0x1b8
    cgroup_release_agent+0x178/0x1c0
    process_one_work+0x36e/0x680
    worker_thread+0x2f0/0x4f8
    kthread+0x10a/0x120
    kernel_thread_starter+0x6/0xc
    kernel_thread_starter+0x0/0xc

    There is a use-after-free bug on the subprocess_info structure allocated
    by the user mode helper. In case do_execve() returns with an error
    ____call_usermodehelper() stores the error code to sub_info->retval, but
    sub_info can already have been freed.

    Regarding UMH_NO_WAIT, the sub_info structure can be freed by
    __call_usermodehelper() before the worker thread returns from
    do_execve(), allowing memory corruption when do_execve() failed after
    exec_mmap() is called.

    Regarding UMH_WAIT_EXEC, the call to umh_complete() allows
    call_usermodehelper_exec() to continue which then frees sub_info.

    To fix this race the code needs to make sure that the call to
    call_usermodehelper_freeinfo() is always done after the last store to
    sub_info->retval.

    Signed-off-by: Martin Schwidefsky
    Reviewed-by: Oleg Nesterov
    Cc: Tetsuo Handa
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Martin Schwidefsky
     
  • Adds support for RTC device inside PM8941 PMIC. The RTC in this PMIC
    have two register spaces. Thus the rtc-pm8xxx is slightly reworked to
    reflect these differences.

    The register set for different PMIC chips are selected on DT compatible
    string base.

    [akpm@linux-foundation.org: coding-style fixes]
    [akpm@linux-foundation.org: simplify and fix locking in pm8xxx_rtc_set_time()]
    Signed-off-by: Stanimir Varbanov
    Cc: Alessandro Zummo
    Cc: Stephen Boyd
    Cc: Josh Cartwright
    Cc: Stanimir Varbanov
    Cc: Dan Carpenter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stanimir Varbanov
     
  • If an anonymous mapping is not allowed to fault thp memory and then
    madvise(MADV_HUGEPAGE) is used after fault, khugepaged will never
    collapse this memory into thp memory.

    This occurs because the madvise(2) handler for thp, hugepage_madvise(),
    clears VM_NOHUGEPAGE on the stack and it isn't stored in vma->vm_flags
    until the final action of madvise_behavior(). This causes the
    khugepaged_enter_vma_merge() to be a no-op in hugepage_madvise() when
    the vma had previously had VM_NOHUGEPAGE set.

    Fix this by passing the correct vma flags to the khugepaged mm slot
    handler. There's no chance khugepaged can run on this vma until after
    madvise_behavior() returns since we hold mm->mmap_sem.

    It would be possible to clear VM_NOHUGEPAGE directly from vma->vm_flags
    in hugepage_advise(), but I didn't want to introduce special case
    behavior into madvise_behavior(). I think it's best to just let it
    always set vma->vm_flags itself.

    Signed-off-by: David Rientjes
    Reported-by: Suleiman Souhlal
    Cc: "Kirill A. Shutemov"
    Cc: Andrea Arcangeli
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • Driver calling of_reserved_mem_device_init() might be interested if the
    initialization has been successful or not, so add support for returning
    error code.

    This fixes a build warining caused by commit 7bfa5ab6fa1b ("drivers:
    dma-coherent: add initialization from device tree"), which has been
    merged without this change and without fixing function return value.

    Fixes: 7bfa5ab6fa1b1 ("drivers: dma-coherent: add initialization from device tree")
    Signed-off-by: Marek Szyprowski
    Acked-by: Arnd Bergmann
    Cc: Michal Nazarewicz
    Cc: Grant Likely
    Cc: Laura Abbott
    Cc: Josh Cartwright
    Cc: Joonsoo Kim
    Cc: Kyungmin Park
    Cc: Russell King
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marek Szyprowski
     
  • Compound page should be freed by put_page() or free_pages() with correct
    order. Not doing so will cause tail pages leaked.

    The compound order can be obtained by compound_order() or use
    HPAGE_PMD_ORDER in our case. Some people would argue the latter is
    faster but I prefer the former which is more general.

    This bug was observed not just on our servers (the worst case we saw is
    11G leaked on a 48G machine) but also on our workstations running Ubuntu
    based distro.

    $ cat /proc/vmstat | grep thp_zero_page_alloc
    thp_zero_page_alloc 55
    thp_zero_page_alloc_failed 0

    This means there is (thp_zero_page_alloc - 1) * (2M - 4K) memory leaked.

    Fixes: 97ae17497e99 ("thp: implement refcounting for huge zero page")
    Signed-off-by: Yu Zhao
    Acked-by: Kirill A. Shutemov
    Cc: Andrea Arcangeli
    Cc: Mel Gorman
    Cc: David Rientjes
    Cc: Bob Liu
    Cc: [3.8+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yu Zhao
     
  • Following up the arm testing of gcov, turns out gcov on ARM64 works fine
    as well. Only change needed is adding ARM64 to Kconfig depends.

    Tested with qemu and mach-virt

    Signed-off-by: Riku Voipio
    Acked-by: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Riku Voipio
     
  • During file system stress testing on 3.10 and 3.12 based kernels, the
    umount command occasionally hung in fsnotify_unmount_inodes in the
    section of code:

    spin_lock(&inode->i_lock);
    if (inode->i_state & (I_FREEING|I_WILL_FREE|I_NEW)) {
    spin_unlock(&inode->i_lock);
    continue;
    }

    As this section of code holds the global inode_sb_list_lock, eventually
    the system hangs trying to acquire the lock.

    Multiple crash dumps showed:

    The inode->i_state == 0x60 and i_count == 0 and i_sb_list would point
    back at itself. As this is not the value of list upon entry to the
    function, the kernel never exits the loop.

    To help narrow down problem, the call to list_del_init in
    inode_sb_list_del was changed to list_del. This poisons the pointers in
    the i_sb_list and causes a kernel to panic if it transverse a freed
    inode.

    Subsequent stress testing paniced in fsnotify_unmount_inodes at the
    bottom of the list_for_each_entry_safe loop showing next_i had become
    free.

    We believe the root cause of the problem is that next_i is being freed
    during the window of time that the list_for_each_entry_safe loop
    temporarily releases inode_sb_list_lock to call fsnotify and
    fsnotify_inode_delete.

    The code in fsnotify_unmount_inodes attempts to prevent the freeing of
    inode and next_i by calling __iget. However, the code doesn't do the
    __iget call on next_i

    if i_count == 0 or
    if i_state & (I_FREEING | I_WILL_FREE)

    The patch addresses this issue by advancing next_i in the above two cases
    until we either find a next_i which we can __iget or we reach the end of
    the list. This makes the handling of next_i more closely match the
    handling of the variable "inode."

    The time to reproduce the hang is highly variable (from hours to days.) We
    ran the stress test on a 3.10 kernel with the proposed patch for a week
    without failure.

    During list_for_each_entry_safe, next_i is becoming free causing
    the loop to never terminate. Advance next_i in those cases where
    __iget is not done.

    Signed-off-by: Jerry Hoemann
    Cc: Jeff Kirsher
    Cc: Ken Helias
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jerry Hoemann
     
  • Commit edc2ca612496 ("mm, compaction: move pageblock checks up from
    isolate_migratepages_range()") commonizes isolate_migratepages variants
    and make them use isolate_migratepages_block().

    isolate_migratepages_block() could stop the execution when enough pages
    are isolated, but, there is no code in isolate_migratepages_range() to
    handle this case. In the result, even if isolate_migratepages_block()
    returns prematurely without checking all pages in the range,

    isolate_migratepages_block() is called repeately on the following
    pageblock and some pages in the previous range are skipped to check.
    Then, CMA is failed frequently due to this fact.

    To fix this problem, this patch let isolate_migratepages_range() know
    the situation that enough pages are isolated and stop the isolation in
    that case.

    Note that isolate_migratepages() has no such problem, because, it always
    stops the isolation after just one call of isolate_migratepages_block().

    Signed-off-by: Joonsoo Kim
    Acked-by: Vlastimil Babka
    Cc: David Rientjes
    Cc: Minchan Kim
    Cc: Michal Nazarewicz
    Cc: Naoya Horiguchi
    Cc: Christoph Lameter
    Cc: Rik van Riel
    Cc: Mel Gorman
    Cc: Zhang Yanfei
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joonsoo Kim
     
  • Commit ff7ee93f4715 ("cgroup/kmemleak: Annotate alloc_page() for cgroup
    allocations") introduces kmemleak_alloc() for alloc_page_cgroup(), but
    corresponding kmemleak_free() is missing, which makes kmemleak be
    wrongly disabled after memory offlining. Log is pasted at the end of
    this commit message.

    This patch add kmemleak_free() into free_page_cgroup(). During page
    offlining, this patch removes corresponding entries in kmemleak rbtree.
    After that, the freed memory can be allocated again by other subsystems
    without killing kmemleak.

    bash # for x in 1 2 3 4; do echo offline > /sys/devices/system/memory/memory$x/state ; sleep 1; done ; dmesg | grep leak

    Offlined Pages 32768
    kmemleak: Cannot insert 0xffff880016969000 into the object search tree (overlaps existing)
    CPU: 0 PID: 412 Comm: sleep Not tainted 3.17.0-rc5+ #86
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    Call Trace:
    dump_stack+0x46/0x58
    create_object+0x266/0x2c0
    kmemleak_alloc+0x26/0x50
    kmem_cache_alloc+0xd3/0x160
    __sigqueue_alloc+0x49/0xd0
    __send_signal+0xcb/0x410
    send_signal+0x45/0x90
    __group_send_sig_info+0x13/0x20
    do_notify_parent+0x1bb/0x260
    do_exit+0x767/0xa40
    do_group_exit+0x44/0xa0
    SyS_exit_group+0x17/0x20
    system_call_fastpath+0x16/0x1b

    kmemleak: Kernel memory leak detector disabled
    kmemleak: Object 0xffff880016900000 (size 524288):
    kmemleak: comm "swapper/0", pid 0, jiffies 4294667296
    kmemleak: min_count = 0
    kmemleak: count = 0
    kmemleak: flags = 0x1
    kmemleak: checksum = 0
    kmemleak: backtrace:
    log_early+0x63/0x77
    kmemleak_alloc+0x4b/0x50
    init_section_page_cgroup+0x7f/0xf5
    page_cgroup_init+0xc5/0xd0
    start_kernel+0x333/0x408
    x86_64_start_reservations+0x2a/0x2c
    x86_64_start_kernel+0xf5/0xfc

    Fixes: ff7ee93f4715 (cgroup/kmemleak: Annotate alloc_page() for cgroup allocations)
    Signed-off-by: Wang Nan
    Acked-by: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: Steven Rostedt
    Cc: [3.2+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wang Nan
     

29 Oct, 2014

4 commits

  • Pull two nfsd fixes from Bruce Fields:
    "One regression from the 3.16 xdr rewrite, one an older bug exposed by
    a separate bug in the client's new SEEK code"

    * 'for-3.18' of git://linux-nfs.org/~bfields/linux:
    nfsd4: fix crash on unknown operation number
    nfsd4: fix response size estimation for OP_SEQUENCE

    Linus Torvalds
     
  • …it/rostedt/linux-trace

    Pull ftrace trampoline accounting fixes from Steven Rostedt:
    "Adding the new code for 3.19, I discovered a couple of minor bugs with
    the accounting of the ftrace_ops trampoline logic.

    One was that the old hash was not updated before calling the modify
    code for an ftrace_ops. The second bug was what let the first bug go
    unnoticed, as the update would check the current hash for all
    ftrace_ops (where it should only check the old hash for modified
    ones). This let things work when only one ftrace_ops was registered
    to a function, but could break if more than one was registered
    depending on the order of the look ups.

    The worse thing that can happen if this bug triggers is that the
    ftrace self checks would find an anomaly and shut itself down"

    * tag 'trace-fixes-v3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    ftrace: Fix checking of trampoline ftrace_ops in finding trampoline
    ftrace: Set ops->old_hash on modifying what an ops hooks to

    Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "A couple of ARM fixes.

    We fix some printk formats for ptrdiff_t quantities which cause GCC
    4.9 to complain, and we also blacklist known buggy GCC 4.8.x compilers
    as their miscompilation is serious enough to cause filesystem
    corruption, even through many distros have fixed their versions"

    * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: fix some printk formats
    ARM: Blacklist GCC 4.8.0 to GCC 4.8.2 - PR58854

    Linus Torvalds
     
  • When unmapping a range of pages in zap_pte_range, the page being
    unmapped is added to an mmu_gather_batch structure for asynchronous
    freeing. If we run out of space in the batch structure before the range
    has been completely unmapped, then we break out of the loop, force a
    TLB flush and free the pages that we have batched so far. If there are
    further pages to unmap, then we resume the loop where we left off.

    Unfortunately, we forget to update addr when we break out of the loop,
    which causes us to truncate the range being invalidated as the end
    address is exclusive. When we re-enter the loop at the same address, the
    page has already been freed and the pte_present test will fail, meaning
    that we do not reconsider the address for invalidation.

    This patch fixes the problem by incrementing addr by the PAGE_SIZE
    before breaking out of the loop on batch failure.

    Signed-off-by: Will Deacon
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Will Deacon
     

28 Oct, 2014

4 commits

  • Pull media fixes from Mauro Carvalho Chehab:
    "A series of driver fixes:
    - a few compilation fixes with randconfigs
    - one potential compilation breakage on userspace due to the usage of
    a gcc extension
    - several warnings fixed
    - some other random driver fixes"

    * tag 'media/v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (22 commits)
    [media] s5p-jpeg: Avoid -Wuninitialized warning in s5p_jpeg_parse_hdr
    [media] s5p-fimc: Only build suspend/resume for PM
    [media] s5p-jpeg: Only build suspend/resume for PM
    [media] Remove references to non-existent PLAT_S5P symbol
    [media] videobuf-dma-contig: set vm_pgoff to be zero to pass the sanity check in vm_iomap_memory()
    [media] tw68: remove bogus I2C_ALGOBIT dependency
    [media] usbvision-video: two use after frees
    [media] tw68: remove deprecated IRQF_DISABLED
    [media] xc5000: use after free in release()
    [media] em28xx-input: NULL dereference on error
    [media] wl128x: fix fmdbg compiler warning
    Revert "[media] v4l2-dv-timings: fix a sparse warning"
    [media] hackrf: harmless off by one in debug code
    [media] cx23885: initialize config structs for T9580
    [media] v4l: uvcvideo: Fix buffer completion size check
    [media] vivid: fix buffer overrun
    [media] saa7146: Create a device name before it's used
    [media] em28xx: fix uninitialized variable warning
    [media] vivid: fix Kconfig FB dependency
    [media] anysee: make sure loading modules is const
    ...

    Linus Torvalds
     
  • Pull EDAC fixes from Borislav Petkov:
    "Correct severity of reported errors in several EDAC drivers. From
    Jason Baron"

    * tag 'edac_fixes_for_3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    e7xxx_edac: Report CE events properly
    cpc925_edac: Report UE events properly
    i82860_edac: Report CE events properly
    i3200_edac: Report CE events properly

    Linus Torvalds
     
  • Pull spi fixes from Mark Brown:
    "Quite a few driver fixes in here, including some fairly substantial
    ones for the recently added Rockchip driver, plus a fix for spidev to
    more reliably support bidirectional transfers which is fairly large
    but basically mechanical.

    It's a bit more code than I'd like but all fixes"

    * tag 'spi-v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
    spi: orion: fix potential NULL pointer de-reference
    spi/rockchip: spi controller must be disabled in tx callback too
    spi/rockchip: fix bug that cause spi transfer timed out in DMA duplex mode
    spi/rockchip: fix bug that case spi can't go as fast as slave request
    spi: pl022: Fix incorrect dma_unmap_sg
    spi: spidev: Use separate TX and RX bounce buffers
    spi: dw: Initialize of_node to discover DT node children

    Linus Torvalds
     
  • Pull regulator fixes from Mark Brown:
    "A couple of fixes for v3.18, one fix for an incorrect voltage to
    register mapping in the rk808 driver and a fix for a build failure in
    some SH defconfigs"

    * tag 'regulator-v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
    regulator: Include err.h from consumer.h to fix build failure
    regulator: rk808: Fix min_uV for DCDC1 & DCDC2

    Linus Torvalds
     

27 Oct, 2014

6 commits

  • …spi/fix/rockchip' and 'spi/fix/spidev' into spi-linus

    Mark Brown
     
  • Mark Brown
     
  • Mark Brown
     
  • Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "Another week, another small batch of fixes.

    Most of these make zynq, socfpga and sunxi platforms work a bit
    better:

    - due to new requirements for regulators, DWMMC on socfpga broke past
    v3.17
    - SMP spinup fix for socfpga
    - a few DT fixes for zynq
    - another option (FIXED_REGULATOR) for sunxi is needed that used to
    be selected by other options but no longer is.
    - a couple of small DT fixes for at91
    - ...and a couple for i.MX"

    * tag 'armsoc-for-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: dts: imx28-evk: Let i2c0 run at 100kHz
    ARM: i.MX6: Fix "emi" clock name typo
    ARM: multi_v7_defconfig: enable CONFIG_MMC_DW_ROCKCHIP
    ARM: sunxi_defconfig: enable CONFIG_REGULATOR_FIXED_VOLTAGE
    ARM: dts: socfpga: Add a 3.3V fixed regulator node
    ARM: dts: socfpga: Fix SD card detect
    ARM: dts: socfpga: rename gpio nodes
    ARM: at91/dt: sam9263: fix PLLB frequencies
    power: reset: at91-reset: fix power down register
    MAINTAINERS: add atmel ssc driver maintainer entry
    arm: socfpga: fix fetching cpu1start_addr for SMP
    ARM: zynq: DT: trivial: Fix mc node
    ARM: zynq: DT: Add cadence watchdog node
    ARM: zynq: DT: Add missing reference for memory-controller
    ARM: zynq: DT: Add missing reference for ADC
    ARM: zynq: DT: Add missing address for L2 pl310
    ARM: zynq: DT: Remove 222 MHz OPP
    ARM: zynq: DT: Fix GEM register area size

    Linus Torvalds
     
  • Pull vfs updates from Al Viro:
    "overlayfs merge + leak fix for d_splice_alias() failure exits"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    overlayfs: embed middle into overlay_readdir_data
    overlayfs: embed root into overlay_readdir_data
    overlayfs: make ovl_cache_entry->name an array instead of pointer
    overlayfs: don't hold ->i_mutex over opening the real directory
    fix inode leaks on d_splice_alias() failure exits
    fs: limit filesystem stacking depth
    overlay: overlay filesystem documentation
    overlayfs: implement show_options
    overlayfs: add statfs support
    overlay filesystem
    shmem: support RENAME_WHITEOUT
    ext4: support RENAME_WHITEOUT
    vfs: add RENAME_WHITEOUT
    vfs: add whiteout support
    vfs: export check_sticky()
    vfs: introduce clone_private_mount()
    vfs: export __inode_permission() to modules
    vfs: export do_splice_direct() to modules
    vfs: add i_op->dentry_open()

    Linus Torvalds
     

26 Oct, 2014

1 commit


25 Oct, 2014

4 commits