05 Jan, 2014

1 commit


04 Jan, 2014

2 commits

  • Pull battery fixes from Anton Vorontsov:
    "Two fixes:

    - fix build error caused by max17042_battery conversion to the regmap
    API.

    - fix kernel oops when booting with wakeup_source_activate enabled"

    * tag 'for-v3.13-fixes' of git://git.infradead.org/battery-2.6:
    max17042_battery: Fix build errors caused by missing REGMAP_I2C config
    power_supply: Fix Oops from NULL pointer dereference from wakeup_source_activate

    Linus Torvalds
     
  • Pull ACPI and PM fixes and new device IDs from Rafael Wysocki:
    "These commits, except for one, are regression fixes and the remaining
    one fixes a divide error leading to a kernel panic. The majority of
    the regressions fixed here were introduced during the 3.12 cycle, one
    of them is from this cycle and one is older.

    Specifics:

    - VGA switcheroo was broken for some users as a result of the
    ACPI-based PCI hotplug (ACPIPHP) changes in 3.12, because some
    previously ignored hotplug events started to be handled. The fix
    causes them to be ignored again.

    - There are two more issues related to cpufreq's suspend/resume
    handling changes from the 3.12 cycle addressed by Viresh Kumar's
    fixes.

    - intel_pstate triggers a divide error in a timer function if the
    P-state information it needs is missing during initialization.
    This leads to kernel panics on nested KVM clients and is fixed by
    failing the initialization cleanly in those cases.

    - PCI initalization code changes during the 3.9 cycle uncovered BIOS
    issues related to ACPI wakeup notifications (some BIOSes send them
    for devices that aren't supposed to support ACPI wakeup). Work
    around them by installing an ACPI wakeup notify handler for all PCI
    devices with ACPI support.

    - The Calxeda cpuilde driver's probe function is tagged as __init,
    which is incorrect and causes a section mismatch to occur during
    build. Fix from Andre Przywara removes the __init tag from there.

    - During the 3.12 cycle ACPIPHP started to print warnings about
    missing _ADR for devices that legitimately don't have it. Fix from
    Toshi Kani makes it only print the warnings where they make sense"

    * tag 'pm+acpi-3.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPIPHP / radeon / nouveau: Fix VGA switcheroo problem related to hotplug
    intel_pstate: Fail initialization if P-state information is missing
    ARM/cpuidle: remove __init tag from Calxeda cpuidle probe function
    PCI / ACPI: Install wakeup notify handlers for all PCI devs with ACPI
    cpufreq: preserve user_policy across suspend/resume
    cpufreq: Clean up after a failing light-weight initialization
    ACPI / PCI / hotplug: Avoid warning when _ADR not present

    Linus Torvalds
     

03 Jan, 2014

14 commits

  • Pull kvm bugfixes from Marcelo Tosatti.

    * git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: nVMX: Unconditionally uninit the MMU on nested vmexit
    KVM: x86: Fix APIC map calculation after re-enabling

    Linus Torvalds
     
  • Merge patches from Andrew Morton:
    "Ten fixes"

    * emailed patches from Andrew Morton :
    epoll: do not take the nested ep->mtx on EPOLL_CTL_DEL
    sh: add EXPORT_SYMBOL(min_low_pfn) and EXPORT_SYMBOL(max_low_pfn) to sh_ksyms_32.c
    drivers/dma/ioat/dma.c: check DMA mapping error in ioat_dma_self_test()
    mm/memory-failure.c: transfer page count from head page to tail page after split thp
    MAINTAINERS: set up proper record for Xilinx Zynq
    mm: remove bogus warning in copy_huge_pmd()
    memcg: fix memcg_size() calculation
    mm: fix use-after-free in sys_remap_file_pages
    mm: munlock: fix deadlock in __munlock_pagevec()
    mm: munlock: fix a bug where THP tail page is encountered

    Linus Torvalds
     
  • The EPOLL_CTL_DEL path of epoll contains a classic, ab-ba deadlock.
    That is, epoll_ctl(a, EPOLL_CTL_DEL, b, x), will deadlock with
    epoll_ctl(b, EPOLL_CTL_DEL, a, x). The deadlock was introduced with
    commmit 67347fe4e632 ("epoll: do not take global 'epmutex' for simple
    topologies").

    The acquistion of the ep->mtx for the destination 'ep' was added such
    that a concurrent EPOLL_CTL_ADD operation would see the correct state of
    the ep (Specifically, the check for '!list_empty(&f.file->f_ep_links')

    However, by simply not acquiring the lock, we do not serialize behind
    the ep->mtx from the add path, and thus may perform a full path check
    when if we had waited a little longer it may not have been necessary.
    However, this is a transient state, and performing the full loop
    checking in this case is not harmful.

    The important point is that we wouldn't miss doing the full loop
    checking when required, since EPOLL_CTL_ADD always locks any 'ep's that
    its operating upon. The reason we don't need to do lock ordering in the
    add path, is that we are already are holding the global 'epmutex'
    whenever we do the double lock. Further, the original posting of this
    patch, which was tested for the intended performance gains, did not
    perform this additional locking.

    Signed-off-by: Jason Baron
    Cc: Nathan Zimmer
    Cc: Eric Wong
    Cc: Nelson Elhage
    Cc: Al Viro
    Cc: Davide Libenzi
    Cc: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jason Baron
     
  • Min_low_pfn and max_low_pfn were used in pfn_valid macro if defined
    CONFIG_FLATMEM. When the functions that use the pfn_valid is used in
    driver module, max_low_pfn and min_low_pfn is to undefined, and fail to
    build.

    ERROR: "min_low_pfn" [drivers/block/aoe/aoe.ko] undefined!
    ERROR: "max_low_pfn" [drivers/block/aoe/aoe.ko] undefined!
    make[2]: *** [__modpost] Error 1
    make[1]: *** [modules] Error 2

    This patch fix this problem.

    Signed-off-by: Nobuhiro Iwamatsu
    Cc: Kuninori Morimoto
    Cc: Paul Mundt
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nobuhiro Iwamatsu
     
  • Check DMA mapping return values in function ioat_dma_self_test() to get
    rid of following warning message.

    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 1203 at lib/dma-debug.c:937 check_unmap+0x4c0/0x9a0()
    ioatdma 0000:00:04.0: DMA-API: device driver failed to check map error[device address=0x000000085191b000] [size=2000 bytes] [mapped as single]
    Modules linked in: ioatdma(+) mac_hid wmi acpi_pad lp parport hidd_generic usbhid hid ixgbe isci dca libsas ahci ptp libahci scsi_transport_sas meegaraid_sas pps_core mdio
    CPU: 0 PID: 1203 Comm: systemd-udevd Not tainted 3.13.0-rc4+ #8
    Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRIVTIIN1.86B.0044.L09.1311181644 11/18/2013
    Call Trace:
    dump_stack+0x4d/0x66
    warn_slowpath_common+0x7d/0xa0
    warn_slowpath_fmt+0x4c/0x50
    check_unmap+0x4c0/0x9a0
    debug_dma_unmap_page+0x81/0x90
    ioat_dma_self_test+0x3d2/0x680 [ioatdma]
    ioat3_dma_self_test+0x12/0x30 [ioatdma]
    ioat_probe+0xf4/0x110 [ioatdma]
    ioat3_dma_probe+0x268/0x410 [ioatdma]
    ioat_pci_probe+0x122/0x1b0 [ioatdma]
    local_pci_probe+0x45/0xa0
    pci_device_probe+0xd9/0x130
    driver_probe_device+0x171/0x490
    __driver_attach+0x93/0xa0
    bus_for_each_dev+0x6b/0xb0
    driver_attach+0x1e/0x20
    bus_add_driver+0x1f8/0x2b0
    driver_register+0x81/0x110
    __pci_register_driver+0x60/0x70
    ioat_init_module+0x89/0x1000 [ioatdma]
    do_one_initcall+0xe2/0x250
    load_module+0x2313/0x2a00
    SyS_init_module+0xd9/0x130
    system_call_fastpath+0x1a/0x1f
    ---[ end trace 990c591681d27c31 ]---
    Mapped at:
    debug_dma_map_page+0xbe/0x180
    ioat_dma_self_test+0x1ab/0x680 [ioatdma]
    ioat3_dma_self_test+0x12/0x30 [ioatdma]
    ioat_probe+0xf4/0x110 [ioatdma]
    ioat3_dma_probe+0x268/0x410 [ioatdma]

    Signed-off-by: Jiang Liu
    Cc: Vinod Koul
    Cc: Dan Williams
    Cc: Bartlomiej Zolnierkiewicz
    Cc: Kyungmin Park
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Memory failures on thp tail pages cause kernel panic like below:

    mce: [Hardware Error]: Machine check events logged
    MCE exception done on CPU 7
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
    IP: [] dequeue_hwpoisoned_huge_page+0x131/0x1e0
    PGD bae42067 PUD ba47d067 PMD 0
    Oops: 0000 [#1] SMP
    ...
    CPU: 7 PID: 128 Comm: kworker/7:2 Tainted: G M O 3.13.0-rc4-131217-1558-00003-g83b7df08e462 #25
    ...
    Call Trace:
    me_huge_page+0x3e/0x50
    memory_failure+0x4bb/0xc20
    mce_process_work+0x3e/0x70
    process_one_work+0x171/0x420
    worker_thread+0x11b/0x3a0
    ? manage_workers.isra.25+0x2b0/0x2b0
    kthread+0xe4/0x100
    ? kthread_create_on_node+0x190/0x190
    ret_from_fork+0x7c/0xb0
    ? kthread_create_on_node+0x190/0x190
    ...
    RIP dequeue_hwpoisoned_huge_page+0x131/0x1e0
    CR2: 0000000000000058

    The reasoning of this problem is shown below:
    - when we have a memory error on a thp tail page, the memory error
    handler grabs a refcount of the head page to keep the thp under us.
    - Before unmapping the error page from processes, we split the thp,
    where page refcounts of both of head/tail pages don't change.
    - Then we call try_to_unmap() over the error page (which was a tail
    page before). We didn't pin the error page to handle the memory error,
    this error page is freed and removed from LRU list.
    - We never have the error page on LRU list, so the first page state
    check returns "unknown page," then we move to the second check
    with the saved page flag.
    - The saved page flag have PG_tail set, so the second page state check
    returns "hugepage."
    - We call me_huge_page() for freed error page, then we hit the above panic.

    The root cause is that we didn't move refcount from the head page to the
    tail page after split thp. So this patch suggests to do this.

    This panic was introduced by commit 524fca1e73 ("HWPOISON: fix
    misjudgement of page_action() for errors on mlocked pages"). Note that we
    did have the same refcount problem before this commit, but it was just
    ignored because we had only first page state check which returned "unknown
    page." The commit changed the refcount problem from "doesn't work" to
    "kernel panic."

    Signed-off-by: Naoya Horiguchi
    Reviewed-by: Wanpeng Li
    Cc: Andi Kleen
    Cc: [3.9+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Naoya Horiguchi
     
  • Setup correct zynq entry.
    - Add missing cadence_ttc_timer maintainership
    - Add zynq wildcard
    - Add xilinx wildcard

    Signed-off-by: Michal Simek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Simek
     
  • Sasha Levin reported the following warning being triggered

    WARNING: CPU: 28 PID: 35287 at mm/huge_memory.c:887 copy_huge_pmd+0x145/ 0x3a0()
    Call Trace:
    copy_huge_pmd+0x145/0x3a0
    copy_page_range+0x3f2/0x560
    dup_mmap+0x2c9/0x3d0
    dup_mm+0xad/0x150
    copy_process+0xa68/0x12e0
    do_fork+0x96/0x270
    SyS_clone+0x16/0x20
    stub_clone+0x69/0x90

    This warning was introduced by "mm: numa: Avoid unnecessary disruption
    of NUMA hinting during migration" for paranoia reasons but the warning
    is bogus. I was thinking of parallel races between NUMA hinting faults
    and forks but this warning would also be triggered by a parallel reclaim
    splitting a THP during a fork. Remote the bogus warning.

    Signed-off-by: Mel Gorman
    Reported-by: Sasha Levin
    Cc: Alex Thorlton
    Cc: Rik van Riel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • The mem_cgroup structure contains nr_node_ids pointers to
    mem_cgroup_per_node objects, not the objects themselves.

    Signed-off-by: Vladimir Davydov
    Acked-by: Michal Hocko
    Cc: Glauber Costa
    Cc: Johannes Weiner
    Cc: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • remap_file_pages calls mmap_region, which may merge the VMA with other
    existing VMAs, and free "vma". This can lead to a use-after-free bug.
    Avoid the bug by remembering vm_flags before calling mmap_region, and
    not trying to dereference vma later.

    Signed-off-by: Rik van Riel
    Reported-by: Dmitry Vyukov
    Cc: PaX Team
    Cc: Kees Cook
    Cc: Michel Lespinasse
    Cc: Cyrill Gorcunov
    Cc: Hugh Dickins
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rik van Riel
     
  • Commit 7225522bb429 ("mm: munlock: batch non-THP page isolation and
    munlock+putback using pagevec" introduced __munlock_pagevec() to speed
    up munlock by holding lru_lock over multiple isolated pages. Pages that
    fail to be isolated are put_page()d immediately, also within the lock.

    This can lead to deadlock when __munlock_pagevec() becomes the holder of
    the last page pin and put_page() leads to __page_cache_release() which
    also locks lru_lock. The deadlock has been observed by Sasha Levin
    using trinity.

    This patch avoids the deadlock by deferring put_page() operations until
    lru_lock is released. Another pagevec (which is also used by later
    phases of the function is reused to gather the pages for put_page()
    operation.

    Signed-off-by: Vlastimil Babka
    Reported-by: Sasha Levin
    Cc: Michel Lespinasse
    Cc: Andrea Arcangeli
    Cc: Rik van Riel
    Cc: Mel Gorman
    Cc: Hugh Dickins
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vlastimil Babka
     
  • Since commit ff6a6da60b89 ("mm: accelerate munlock() treatment of THP
    pages") munlock skips tail pages of a munlocked THP page. However, when
    the head page already has PageMlocked unset, it will not skip the tail
    pages.

    Commit 7225522bb429 ("mm: munlock: batch non-THP page isolation and
    munlock+putback using pagevec") has added a PageTransHuge() check which
    contains VM_BUG_ON(PageTail(page)). Sasha Levin found this triggered
    using trinity, on the first tail page of a THP page without PageMlocked
    flag.

    This patch fixes the issue by skipping tail pages also in the case when
    PageMlocked flag is unset. There is still a possibility of race with
    THP page split between clearing PageMlocked and determining how many
    pages to skip. The race might result in former tail pages not being
    skipped, which is however no longer a bug, as during the skip the
    PageTail flags are cleared.

    However this race also affects correctness of NR_MLOCK accounting, which
    is to be fixed in a separate patch.

    Signed-off-by: Vlastimil Babka
    Reported-by: Sasha Levin
    Cc: Michel Lespinasse
    Cc: Andrea Arcangeli
    Cc: Rik van Riel
    Cc: Mel Gorman
    Cc: Hugh Dickins
    Cc: Bob Liu
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vlastimil Babka
     
  • Pull GFS2 fixes from Steven Whitehouse:
    "Here is a set of small fixes for GFS2. There is a fix to drop
    s_umount which is copied in from the core vfs, two patches relate to a
    hard to hit "use after free" and memory leak. Two patches related to
    using DIO and buffered I/O on the same file to ensure correct
    operation in relation to glock state changes. The final patch adds an
    RCU read lock to ensure correct locking on an error path"

    * tag 'gfs2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes:
    GFS2: Fix unsafe dereference in dump_holder()
    GFS2: Wait for async DIO in glock state changes
    GFS2: Fix incorrect invalidation for DIO/buffered I/O
    GFS2: Fix slab memory leak in gfs2_bufdata
    GFS2: Fix use-after-free race when calling gfs2_remove_from_ail
    GFS2: don't hold s_umount over blkdev_put

    Linus Torvalds
     
  • Pull s390 fixes from Martin Schwidefsky:
    "Two small bug fixes and a follow-up to the CONFIG_NR_CPUS change.

    A kernel compiled with CONFIG_NR_CPUS=256 will waste quite a bit of
    memory for the per-cpu arrays. Under z/VM the maximum number of CPUs
    is 64, the code now limits the possible cpu mask to 64 if running
    under z/VM"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/pci: obtain function handle in hotplug notifier
    s390/3270: fix allocation of tty3270_screen structure
    s390/smp: improve setup of possible cpu mask

    Linus Torvalds
     

02 Jan, 2014

4 commits

  • Three reasons for doing this: 1. arch.walk_mmu points to arch.mmu anyway
    in case nested EPT wasn't in use. 2. this aligns VMX with SVM. But 3. is
    most important: nested_cpu_has_ept(vmcs12) queries the VMCS page, and if
    one guest VCPU manipulates the page of another VCPU in L2, we may be
    fooled to skip over the nested_ept_uninit_mmu_context, leaving mmu in
    nested state. That can crash the host later on if nested_ept_get_cr3 is
    invoked while L1 already left vmxon and nested.current_vmcs12 became
    NULL therefore.

    Cc: stable@kernel.org
    Signed-off-by: Jan Kiszka
    Signed-off-by: Marcelo Tosatti

    Jan Kiszka
     
  • GLOCK_BUG_ON() might call this function without RCU read lock. Make sure that
    RCU read lock is held when using task_struct returned from pid_task().

    Signed-off-by: Tetsuo Handa
    Signed-off-by: Steven Whitehouse

    Tetsuo Handa
     
  • Pull radeon drm fixes from Dave Airlie:
    "Just piping a bunch of fixes from pre-xmas from Alex for radeon, all
    either fix bad hw setup issues or regressions"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/radeon: Bump version for CIK DCE tiling fix
    drm/radeon: set correct number of banks for CIK chips in DCE
    drm/radeon: set correct pipe config for Hawaii in DCE
    drm/radeon: expose render backend mask to the userspace
    drm/radeon: fix render backend setup for SI and CIK
    drm/radeon: 0x9649 is SUMO2 not SUMO
    drm/radeon: fix UVD 256MB check

    Linus Torvalds
     
  • Pull crypto fix from Herbert Xu:
    "Fix a build error on ARM that was introduced in 3.13-rc1"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: ixp4xx - Fix kernel compile error

    Linus Torvalds
     

01 Jan, 2014

8 commits


31 Dec, 2013

11 commits

  • The changes in the ACPI-based PCI hotplug (ACPIPHP) subsystem made
    during the 3.12 development cycle uncovered a problem with VGA
    switcheroo that on some systems, when the device-specific method
    (ATPX in the radeon case, _DSM in the nouveau case) is used to turn
    off the discrete graphics, the BIOS generates ACPI hotplug events for
    that device and those events cause ACPIPHP to attempt to remove the
    device from the system (they are events for a device that was present
    previously and is not present any more, so that's what should be done
    according to the spec). Then, the system stops functioning correctly.

    Since the hotplug events in question were simply silently ignored
    previously, the least intrusive way to address that problem is to
    make ACPIPHP ignore them again. For this purpose, introduce a new
    ACPI device flag, no_hotplug, and modify ACPIPHP to ignore hotplug
    events for PCI devices whose ACPI companions have that flag set.
    Next, make the radeon and nouveau switcheroo detection code set the
    no_hotplug flag for the discrete graphics' ACPI companion.

    Fixes: bbd34fcdd1b2 (ACPI / hotplug / PCI: Register all devices under the given bridge)
    References: https://bugzilla.kernel.org/show_bug.cgi?id=61891
    References: https://bugzilla.kernel.org/show_bug.cgi?id=64891
    Reported-and-tested-by: Mike Lothian
    Reported-and-tested-by:
    Reported-and-tested-by: Joaquín Aramendía
    Cc: Alex Deucher
    Cc: Dave Airlie
    Cc: Takashi Iwai
    Signed-off-by: Rafael J. Wysocki
    Cc: 3.12+ # 3.12+

    Rafael J. Wysocki
     
  • If pstate.current_pstate is 0 after the initial
    intel_pstate_get_cpu_pstates(), this means that we were unable to
    obtain any useful P-state information and there is no reason to
    continue, so free memory and return an error in that case.

    This fixes the following divide error occuring in a nested KVM
    guest:

    Intel P-state driver initializing.
    Intel pstate controlling: cpu 0
    cpufreq: __cpufreq_add_dev: ->get() failed
    divide error: 0000 [#1] SMP
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.13.0-0.rc4.git5.1.fc21.x86_64 #1
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    task: ffff88001ea20000 ti: ffff88001e9bc000 task.ti: ffff88001e9bc000
    RIP: 0010:[] [] intel_pstate_timer_func+0x11d/0x2b0
    RSP: 0000:ffff88001ee03e18 EFLAGS: 00010246
    RAX: 0000000000000000 RBX: ffff88001a454348 RCX: 0000000000006100
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: ffff88001ee03e38 R08: 0000000000000000 R09: 0000000000000000
    R10: ffff88001ea20000 R11: 0000000000000000 R12: 00000c0a1ea20000
    R13: 1ea200001ea20000 R14: ffffffff815c5400 R15: ffff88001a454348
    FS: 0000000000000000(0000) GS:ffff88001ee00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 0000000000000000 CR3: 0000000001c0c000 CR4: 00000000000006f0
    Stack:
    fffffffb1a454390 ffffffff821a4500 ffff88001a454390 0000000000000100
    ffff88001ee03ea8 ffffffff81083e9a ffffffff81083e15 ffffffff82d5ed40
    ffffffff8258cc60 0000000000000000 ffffffff81ac39de 0000000000000000
    Call Trace:

    [] call_timer_fn+0x8a/0x310
    [] ? call_timer_fn+0x5/0x310
    [] ? pid_param_set+0x130/0x130
    [] run_timer_softirq+0x234/0x380
    [] __do_softirq+0x104/0x430
    [] irq_exit+0xcd/0xe0
    [] smp_apic_timer_interrupt+0x45/0x60
    [] apic_timer_interrupt+0x72/0x80

    [] ? vprintk_emit+0x1dd/0x5e0
    [] printk+0x67/0x69
    [] __cpufreq_add_dev.isra.13+0x883/0x8d0
    [] cpufreq_add_dev+0x10/0x20
    [] subsys_interface_register+0xb1/0xf0
    [] cpufreq_register_driver+0x9f/0x210
    [] intel_pstate_init+0x27d/0x3be
    [] ? mutex_unlock+0xe/0x10
    [] ? cpufreq_gov_dbs_init+0x12/0x12
    [] do_one_initcall+0xfa/0x1b0
    [] ? parse_args+0x225/0x3f0
    [] kernel_init_freeable+0x1fc/0x287
    [] ? do_early_param+0x88/0x88
    [] ? rest_init+0x150/0x150
    [] kernel_init+0xe/0x130
    [] ret_from_fork+0x7c/0xb0
    [] ? rest_init+0x150/0x150
    Code: c1 e0 05 48 63 bc 03 10 01 00 00 48 63 83 d0 00 00 00 48 63 d6 48 c1 e2 08 c1 e1 08 4c 63 c2 48 c1 e0 08 48 98 48 c1 e0 08 48 99 f7 f8 48 98 48 0f af f8 48 c1 ff 08 29 f9 89 ca c1 fa 1f 89
    RIP [] intel_pstate_timer_func+0x11d/0x2b0
    RSP
    ---[ end trace f166110ed22cc37a ]---
    Kernel panic - not syncing: Fatal exception in interrupt

    Reported-and-tested-by: Kashyap Chamarthy
    Cc: Josh Boyer
    Signed-off-by: Rafael J. Wysocki
    Cc: All applicable

    Rafael J. Wysocki
     
  • Pull devicetree fixes from Rob Herring:
    - Fix 2 regressions found on PPC
    - Allow NULL ptr in unflatten_and_copy_device_tree
    - Update my email address

    * tag 'dt-fixes-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    MAINTAINERS: Update Rob Herring's email address
    of/irq: Fix device_node refcount in of_irq_parse_raw()
    of/Kconfig: Spelling s/one/once/
    Revert "of/address: Handle #address-cells > 2 specially"
    of: Fix NULL dereference in unflatten_and_copy()

    Linus Torvalds
     
  • Update arch.apic_base before triggering recalculate_apic_map. Otherwise
    the recalculation will work against the previous state of the APIC and
    will fail to build the correct map when an APIC is hardware-enabled
    again.

    This fixes a regression of 1e08ec4a13.

    Cc: stable@vger.kernel.org
    Signed-off-by: Jan Kiszka
    Signed-off-by: Marcelo Tosatti

    Jan Kiszka
     
  • Pull powerpc fixes from Ben Herrenschmidt:
    "A bit more endian problems found during testing of 3.13 and a few
    other simple fixes and regressions fixes"

    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc: Fix alignment of secondary cpu spin vars
    powerpc: Align p_end
    powernv/eeh: Add buffer for P7IOC hub error data
    powernv/eeh: Fix possible buffer overrun in ioda_eeh_phb_diag()
    powerpc: Make 64-bit non-VMX __copy_tofrom_user bi-endian
    powerpc: Make unaligned accesses endian-safe for powerpc
    powerpc: Fix bad stack check in exception entry
    powerpc/512x: dts: disable MPC5125 usb module
    powerpc/512x: dts: remove misplaced IRQ spec from 'soc' node (5125)

    Linus Torvalds
     
  • Rob Herring
     
  • Pull networking fixes from David Miller:
    "Some holiday bug fixes for 3.13... There is still one bug I'd like to
    get fixed before 3.13-final.

    The vlan code erroneously assignes the header ops of the underlying
    real device to the VLAN device above it when the real device can
    hardware offload VLAN handling. That's completely bogus because
    header ops are tied to the device type, so they only expect to see a
    'dev' argument compatible with their ops.

    The fix is the have the VLAN code use a special set of header ops that
    does the pass-thru correctly, by calling the underlying real device's
    header ops but _also_ passing in the real device instead of the VLAN
    device.

    That fix is currently waiting some testing.

    Anyways, of note here:

    1) Fix bitmap edge case in radiotap, from Johannes Berg.

    2) Fix oops on driver unload in rtlwifi, from Larry Finger.

    3) Bonding doesn't do locking correctly during speed/duplex/link
    changes, from Ding Tianhong.

    4) Fix header parsing in GRE code, this bug has been around for a few
    releases. From Timo Teräs.

    5) SIT tunnel driver MTU check needs to take GSO into account, from
    Eric Dumazet.

    6) Minor info leak in inet_diag, from Daniel Borkmann.

    7) Info leak in YAM hamradio driver, from Salva Peiró.

    8) Fix route expiration state handling in ipv6 routing code, from Li
    RongQing.

    9) DCCP probe module does not check request_module()'s return value,
    from Wang Weidong.

    10) cpsw driver passes NULL device names to request_irq(), from
    Mugunthan V N.

    11) Prevent a NULL splat in RDS binding code, from Sasha Levin.

    12) Fix 4G overflow test in tg3 driver, from Nithin Sujir.

    13) Cure use after free in arc_emac and fec driver's software
    timestamp handling, from Eric Dumazet.

    14) SIT driver can fail to release the route when
    iptunnel_handle_offloads() throws an error. From Li RongQing.

    15) Several batman-adv fixes from Simon Wunderlich and Antonio
    Quartulli.

    16) Fix deadlock during TIPC socket release, from Ying Xue.

    17) Fix regression in ROSE protocol recvmsg() msg_name handling, from
    Florian Westphal.

    18) stmmac PTP support releases wrong spinlock, from Vince Bridgers"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (73 commits)
    stmmac: Fix incorrect spinlock release and PTP cap detection.
    phy: IRQ cannot be shared
    net: rose: restore old recvmsg behavior
    xen-netback: fix guest-receive-side array sizes
    fec: Do not assume that PHY reset is active low
    tipc: fix deadlock during socket release
    netfilter: nf_tables: fix wrong datatype in nft_validate_data_load()
    batman-adv: fix vlan header access
    batman-adv: clean nf state when removing protocol header
    batman-adv: fix alignment for batadv_tvlv_tt_change
    batman-adv: fix size of batadv_bla_claim_dst
    batman-adv: fix size of batadv_icmp_header
    batman-adv: fix header alignment by unrolling batadv_header
    batman-adv: fix alignment for batadv_coded_packet
    netfilter: nf_tables: fix oops when updating table with user chains
    netfilter: nf_tables: fix dumping with large number of sets
    ipv6: release dst properly in ipip6_tunnel_xmit
    netxen: Correct off-by-one errors in bounds checks
    net: Add some clarification to skb_tx_timestamp() comment.
    arc_emac: fix potential use after free
    ...

    Linus Torvalds
     
  • My Calxeda email address is going away.

    Signed-off-by: Rob Herring
    Signed-off-by: Rob Herring

    Rob Herring
     
  • Commit 2361613206e6, "of/irq: Refactor interrupt-map parsing" changed
    the refcount on the device_node causing an error in of_node_put():

    ERROR: Bad of_node_put() on /pci@800000020000000
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.13.0-rc3-dirty #2
    Call Trace:
    [c00000003e403500] [c0000000000144fc] .show_stack+0x7c/0x1f0 (unreliable)
    [c00000003e4035d0] [c00000000070f250] .dump_stack+0x88/0xb4
    [c00000003e403650] [c0000000005e8768] .of_node_release+0xd8/0xf0
    [c00000003e4036e0] [c0000000005eeafc] .of_irq_parse_one+0x10c/0x280
    [c00000003e4037a0] [c0000000005efd4c] .of_irq_parse_pci+0x3c/0x1d0
    [c00000003e403840] [c000000000038240] .pcibios_setup_device+0xa0/0x2e0
    [c00000003e403910] [c0000000000398f0] .pcibios_setup_bus_devices+0x60/0xd0
    [c00000003e403990] [c00000000003b3a4] .__of_scan_bus+0x1a4/0x2b0
    [c00000003e403a80] [c00000000003a62c] .pcibios_scan_phb+0x30c/0x410
    [c00000003e403b60] [c0000000009fe430] .pcibios_init+0x7c/0xd4

    This patch adjusts the refcount in the walk of the interrupt tree.
    When a match is found, there is no need to increase the refcount
    on 'out_irq->np' as 'newpar' is already holding a ref. The refcount
    balance between 'ipar' and 'newpar' is maintained in the skiplevel:
    goto label.

    This patch also removes the usage of the device_node variable 'old'
    which seems useless after the latest changes.

    Signed-off-by: Cédric Le Goater
    Signed-off-by: Rob Herring

    Cédric Le Goater
     
  • Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Rob Herring

    Geert Uytterhoeven
     
  • This reverts commit e38c0a1fbc5803cbacdaac0557c70ac8ca5152e7.

    Nikita Yushchenko reports:
    While trying to make freescale p2020ds and mpc8572ds boards working
    with mainline kernel, I faced that commit e38c0a1f (Handle

    Both these boards have uli1575 chip.
    Corresponding part in device tree is something like

    uli1575@0 {
    reg = ;
    #size-cells = ;
    #address-cells = ;
    ranges = ;
    isa@1e {
    ...

    I.e. it has #address-cells =

    With commit e38c0a1f reverted, devices under uli1575 are registered
    correctly, e.g. for rtc

    OF: ** translation for device /pcie@ffe09000/pcie@0/uli1575@0/isa@1e/rtc@70 **
    OF: bus is isa (na=2, ns=1) on /pcie@ffe09000/pcie@0/uli1575@0/isa@1e
    OF: translating address: 00000001 00000070
    OF: parent bus is default (na=3, ns=2) on /pcie@ffe09000/pcie@0/uli1575@0
    OF: walking ranges...
    OF: ISA map, cp=0, s=1000, da=70
    OF: parent translation for: 01000000 00000000 00000000
    OF: with offset: 70
    OF: one level translation: 00000000 00000000 00000070
    OF: parent bus is pci (na=3, ns=2) on /pcie@ffe09000/pcie@0
    OF: walking ranges...
    OF: default map, cp=a0000000, s=20000000, da=70
    OF: default map, cp=0, s=10000, da=70
    OF: parent translation for: 01000000 00000000 00000000
    OF: with offset: 70
    OF: one level translation: 01000000 00000000 00000070
    OF: parent bus is pci (na=3, ns=2) on /pcie@ffe09000
    OF: walking ranges...
    OF: PCI map, cp=0, s=10000, da=70
    OF: parent translation for: 01000000 00000000 00000000
    OF: with offset: 70
    OF: one level translation: 01000000 00000000 00000070
    OF: parent bus is default (na=2, ns=2) on /
    OF: walking ranges...
    OF: PCI map, cp=0, s=10000, da=70
    OF: parent translation for: 00000000 ffc10000
    OF: with offset: 70
    OF: one level translation: 00000000 ffc10070
    OF: reached root node

    With commit e38c0a1f in place, address translation fails:

    OF: ** translation for device /pcie@ffe09000/pcie@0/uli1575@0/isa@1e/rtc@70 **
    OF: bus is isa (na=2, ns=1) on /pcie@ffe09000/pcie@0/uli1575@0/isa@1e
    OF: translating address: 00000001 00000070
    OF: parent bus is default (na=3, ns=2) on /pcie@ffe09000/pcie@0/uli1575@0
    OF: walking ranges...
    OF: ISA map, cp=0, s=1000, da=70
    OF: parent translation for: 01000000 00000000 00000000
    OF: with offset: 70
    OF: one level translation: 00000000 00000000 00000070
    OF: parent bus is pci (na=3, ns=2) on /pcie@ffe09000/pcie@0
    OF: walking ranges...
    OF: default map, cp=a0000000, s=20000000, da=70
    OF: default map, cp=0, s=10000, da=70
    OF: not found !

    Thierry Reding confirmed this commit was not needed after all:
    "We ended up merging a different address representation for Tegra PCIe
    and I've confirmed that reverting this commit doesn't cause any obvious
    regressions. I think all other drivers in drivers/pci/host ended up
    copying what we did on Tegra, so I wouldn't expect any other breakage
    either."

    There doesn't appear to be a simple way to support both behaviours, so
    reverting this as nothing should be depending on the new behaviour.

    Cc: stable@vger.kernel.org # v3.7+
    Signed-off-by: Rob Herring

    Rob Herring