04 May, 2015

1 commit

  • Pull powerpc fixes from Michael Ellerman:
    - build fix for SMP=n in book3s_xics.c
    - fix for Daniel's pci_controller_ops on powernv.
    - revert the TM syscall abort patch for now.
    - CPU affinity fix from Nathan.
    - two EEH fixes from Gavin.
    - fix for CR corruption from Sam.
    - selftest build fix.

    * tag 'powerpc-4.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux:
    powerpc/powernv: Restore non-volatile CRs after nap
    powerpc/eeh: Delay probing EEH device during hotplug
    powerpc/eeh: Fix race condition in pcibios_set_pcie_reset_state()
    powerpc/pseries: Correct cpu affinity for dlpar added cpus
    selftests/powerpc: Fix the pmu install rule
    Revert "powerpc/tm: Abort syscalls in active transactions"
    powerpc/powernv: Fix early pci_controller_ops loading.
    powerpc/kvm: Fix SMP=n build error in book3s_xics.c

    Linus Torvalds
     

01 May, 2015

6 commits

  • Pull arm64 fixes from Will Deacon:
    "Not too much here, but we've addressed a couple of nasty issues in the
    dma-mapping code as well as adding the halfword and byte variants of
    load_acquire/store_release following on from the CSD locking bug that
    you fixed in the core.

    - fix perf devicetree warnings at probe time

    - fix memory leak in __dma_free()

    - ensure DMA buffers are always zeroed

    - show IRQ trigger in /proc/interrupts (for parity with ARM)

    - implement byte and halfword access for smp_{load_acquire,store_release}"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: perf: Fix the pmu node name in warning message
    arm64: perf: don't warn about missing interrupt-affinity property for PPIs
    arm64: add missing PAGE_ALIGN() to __dma_free()
    arm64: dma-mapping: always clear allocated buffers
    ARM64: Enable CONFIG_GENERIC_IRQ_SHOW_LEVEL
    arm64: add missing data types in smp_load_acquire/smp_store_release

    Linus Torvalds
     
  • Patches 7cba160ad "powernv/cpuidle: Redesign idle states management"
    and 77b54e9f2 "powernv/powerpc: Add winkle support for offline cpus"
    use non-volatile condition registers (cr2, cr3 and cr4) early in the system
    reset interrupt handler (system_reset_pSeries()) before it has been determined
    if state loss has occurred. If state loss has not occurred, control returns via
    the power7_wakeup_noloss() path which does not restore those condition
    registers, leaving them corrupted.

    Fix this by restoring the condition registers in the power7_wakeup_noloss()
    case.

    This is apparent when running a KVM guest on hardware that does not
    support winkle or sleep and the guest makes use of secondary threads. In
    practice this means Power7 machines, though some early unreleased Power8
    machines may also be susceptible.

    The secondary CPUs are taken off line before the guest is started and
    they call pnv_smp_cpu_kill_self(). This checks support for sleep
    states (in this case there is no support) and power7_nap() is called.

    When the CPU is woken, power7_nap() returns and because the CPU is
    still off line, the main while loop executes again. The sleep states
    support test is executed again, but because the tested values cannot
    have changed, the compiler has optimized the test away and instead we
    rely on the result of the first test, which has been left in cr3
    and/or cr4. With the result overwritten, the wrong branch is taken and
    power7_winkle() is called on a CPU that does not support it, leading
    to it stalling.

    Fixes: 7cba160ad789 ("powernv/cpuidle: Redesign idle states management")
    Fixes: 77b54e9f213f ("powernv/powerpc: Add winkle support for offline cpus")
    [mpe: Massage change log a bit more]
    Signed-off-by: Sam Bobroff
    Signed-off-by: Michael Ellerman

    Sam Bobroff
     
  • Commit 1c509148b ("powerpc/eeh: Do probe on pci_dn") probes EEH
    devices in early stage, which is reasonable to pSeries platform.
    However, it's wrong for PowerNV platform because the PE# isn't
    determined until the resources (IO and MMIO) are assigned to
    PE in hotplug case. So we have to delay probing EEH devices
    for PowerNV platform until the PE# is assigned.

    Fixes: ff57b454ddb9 ("powerpc/eeh: Do probe on pci_dn")
    Signed-off-by: Gavin Shan
    Signed-off-by: Michael Ellerman

    Gavin Shan
     
  • When asserting reset in pcibios_set_pcie_reset_state(), the PE
    is enforced to (hardware) frozen state in order to drop unexpected
    PCI transactions (except PCI config read/write) automatically by
    hardware during reset, which would cause recursive EEH error.
    However, the (software) frozen state EEH_PE_ISOLATED is missed.
    When users get 0xFF from PCI config or MMIO read, EEH_PE_ISOLATED
    is set in PE state retrival backend. Unfortunately, nobody (the
    reset handler or the EEH recovery functinality in host) will clear
    EEH_PE_ISOLATED when the PE has been passed through to guest.

    The patch sets and clears EEH_PE_ISOLATED properly during reset
    in function pcibios_set_pcie_reset_state() to fix the issue.

    Fixes: 28158cd ("Enhance pcibios_set_pcie_reset_state()")
    Reported-by: Carol L. Soto
    Signed-off-by: Gavin Shan
    Tested-by: Carol L. Soto
    Signed-off-by: Michael Ellerman

    Gavin Shan
     
  • The incorrect ordering of operations during cpu dlpar add results in invalid
    affinity for the cpu being added. The ibm,associativity property in the
    device tree is populated with all zeroes for the added cpu which results in
    invalid affinity mappings and all cpus appear to belong to node 0.

    This occurs because rtas configure-connector is called prior to making the
    rtas set-indicator calls. Phyp does not assign affinity information
    for a cpu until the rtas set-indicator calls are made to set the isolation
    and allocation state.

    Correct the order of operations to make the rtas set-indicator
    calls (done in dlpar_acquire_drc) before calling rtas configure-connector.

    Fixes: 1a8061c46c46 ("powerpc/pseries: Add kernel based CPU DLPAR handling")

    Signed-off-by: Nathan Fontenot
    Signed-off-by: Michael Ellerman

    Nathan Fontenot
     
  • Pull kvm changes from Paolo Bonzini:
    "Remove from guest code the handling of task migration during a pvclock
    read; instead use the correct protocol in KVM.

    This removes the need for task migration notifiers in core scheduler
    code"

    [ The scheduler people really hated the migration notifiers, so this was
    kind of required - Linus ]

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    x86: pvclock: Really remove the sched notifier for cross-cpu migrations
    kvm: x86: fix kvmclock update protocol

    Linus Torvalds
     

30 Apr, 2015

4 commits

  • With commit d5efd9cc9cf2 ("arm64: pmu: add support for interrupt-affinity
    property"), we print a warning when we find a PMU SPI with a missing
    missing interrupt-affinity property in a pmu node. Unfortunately, we
    pass the wrong (NULL) device node to of_node_full_name, resulting in
    unhelpful messages such as:

    hw perfevents: Failed to parse /interrupt-affinity[0]

    This patch fixes the name to that of the pmu node.

    Fixes: d5efd9cc9cf2 (arm64: pmu: add support for interrupt-affinity property)
    Acked-by: Mark Rutland
    Signed-off-by: Suzuki K. Poulose
    Signed-off-by: Will Deacon

    Suzuki K. Poulose
     
  • PPIs are affine by nature, so the interrupt-affinity property is not
    used and therefore we shouldn't print a warning in its absence.

    Reported-by: Maxime Ripard
    Reviewed-by: Maxime Ripard
    Signed-off-by: Will Deacon

    Will Deacon
     
  • This reverts commit feba40362b11341bee6d8ed58d54b896abbd9f84.

    Although the principle of this change is good, the implementation has a
    few issues.

    Firstly we can sometimes fail to abort a syscall because r12 may have
    been clobbered by C code if we went down the virtual CPU accounting
    path, or if syscall tracing was enabled.

    Secondly we have decided that it is safer to abort the syscall even
    earlier in the syscall entry path, so that we avoid the syscall tracing
    path when we are transactional.

    So that we have time to thoroughly test those changes we have decided to
    revert this for this merge window and will merge the fixed version in
    the next window.

    NB. Rather than reverting the selftest we just drop tm-syscall from
    TEST_PROGS so that it's not run by default.

    Fixes: feba40362b11 ("powerpc/tm: Abort syscalls in active transactions")
    Signed-off-by: Michael Ellerman

    Michael Ellerman
     
  • __dma_alloc() does a PAGE_ALIGN() on the passed in size argument before
    doing anything else. __dma_free() does not. And because it doesn't, it is
    possible to leak memory should size not be an integer multiple of PAGE_SIZE.

    The solution is to add a PAGE_ALIGN() to __dma_free() like is done in
    __dma_alloc().

    Additionally, this patch removes a redundant PAGE_ALIGN() from
    __dma_alloc_coherent(), since __dma_alloc_coherent() can only be called
    from __dma_alloc(), which already does a PAGE_ALIGN() before the call.

    Cc: stable@vger.kernel.org
    Acked-by: Catalin Marinas
    Signed-off-by: Dean Nelson
    Signed-off-by: Will Deacon

    Dean Nelson
     

29 Apr, 2015

4 commits

  • Load the PowerNV platform pci controller ops into pci controllers
    after all the operations are loaded into the platform ops struct, not
    before.

    Otherwise we aren't actually setting the ops properly which can break
    IO for some devices.

    Fixes: 65ebf4b63 ("powerpc/powernv: Move controller ops from ppc_md to controller_ops")
    Reported-by: Gavin Shan
    Reviewed-by: Gavin Shan
    Signed-off-by: Daniel Axtens
    Signed-off-by: Michael Ellerman

    Daniel Axtens
     
  • Commit 34cb7954c0aa "Convert ICS mutex lock to spin lock" added an
    include of asm/spinlock.h, which does not work in the SMP=n case.

    It should instead include linux/spinlock.h

    Fixes: 34cb7954c0aa ("KVM: PPC: Book3S HV: Convert ICS mutex lock to spin lock")
    Acked-by: Paul Mackerras
    Reviewed-by: Alexander Graf
    Signed-off-by: Michael Ellerman

    Michael Ellerman
     
  • Pull arch/tile bugfix from Chris Metcalf:
    "This just fixes a compiler warning from an old bug that only recently
    started generating a warning"

    * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    tile: properly use node_isset() on a nodemask_t

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "One additional new feature for 4.1, a new PRNG based on SHA-512 for
    the zcrypt driver.

    Two memory management related changes, the page table reallocation for
    KVM is removed, and with file ptes gone the encoding of page table
    entries is improved.

    And three bug fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/zcrypt: Introduce new SHA-512 based Pseudo Random Generator.
    s390/mm: change swap pte encoding and pgtable cleanup
    s390/mm: correct transfer of dirty & young bits in __pmd_to_pte
    s390/bpf: add dependency to z196 features
    s390/3215: free memory in error path
    s390/kvm: remove delayed reallocation of page tables for KVM
    kexec: allocate the kexec control page with KEXEC_CONTROL_MEMORY_GFP

    Linus Torvalds
     

28 Apr, 2015

1 commit


27 Apr, 2015

11 commits

  • This reverts commits 0a4e6be9ca17c54817cf814b4b5aa60478c6df27
    and 80f7fdb1c7f0f9266421f823964fd1962681f6ce.

    The task migration notifier was originally introduced in order to support
    the pvclock vsyscall with non-synchronized TSC, but KVM only supports it
    with synchronized TSC. Hence, on KVM the race condition is only needed
    due to a bad implementation on the host side, and even then it's so rare
    that it's mostly theoretical.

    As far as KVM is concerned it's possible to fix the host, avoiding the
    additional complexity in the vDSO and the (re)introduction of the task
    migration notifier.

    Xen, on the other hand, hasn't yet implemented vsyscall support at
    all, so we do not care about its plans for non-synchronized TSC.

    Reported-by: Peter Zijlstra
    Suggested-by: Marcelo Tosatti
    Signed-off-by: Paolo Bonzini

    Paolo Bonzini
     
  • The kvmclock spec says that the host will increment a version field to
    an odd number, then update stuff, then increment it to an even number.
    The host is buggy and doesn't do this, and the result is observable
    when one vcpu reads another vcpu's kvmclock data.

    There's no good way for a guest kernel to keep its vdso from reading
    a different vcpu's kvmclock data, but we don't need to care about
    changing VCPUs as long as we read a consistent data from kvmclock.
    (VCPU can change outside of this loop too, so it doesn't matter if we
    return a value not fit for this VCPU.)

    Based on a patch by Radim Krčmář.

    Reviewed-by: Radim Krčmář
    Acked-by: Marcelo Tosatti
    Signed-off-by: Paolo Bonzini

    Radim Krčmář
     
  • Buffers allocated by dma_alloc_coherent() are always zeroed on Alpha,
    ARM (32bit), MIPS, PowerPC, x86/x86_64 and probably other architectures.
    It turned out that some drivers rely on this 'feature'. Allocated buffer
    might be also exposed to userspace with dma_mmap() call, so clearing it
    is desired from security point of view to avoid exposing random memory
    to userspace. This patch unifies dma_alloc_coherent() behavior on ARM64
    architecture with other implementations by unconditionally zeroing
    allocated buffer.

    Cc: # v3.14+
    Signed-off-by: Marek Szyprowski
    Signed-off-by: Will Deacon

    Marek Szyprowski
     
  • Since several interrupt controllers including GIC support both edge and
    level triggered interrupts, it's useful to provide that information in
    /proc/interrupts even on ARM64 similar to ARM and PPC.

    This is based on Geert Uytterhoeven's commit 7c07005eea96 ("ARM: 8339/1:
    Enable CONFIG_GENERIC_IRQ_SHOW_LEVEL")

    Signed-off-by: Sudeep Holla
    Signed-off-by: Will Deacon

    Sudeep Holla
     
  • Commit 8053871d0f7f ("smp: Fix smp_call_function_single_async()
    locking") introduced a call to smp_load_acquire() with a u16 argument,
    but we only cared about u32 and u64 types in that function so far.
    This resulted in a compiler warning fortunately, pointing at an
    uninitialized use. Due to the implementation structure the compiler
    misses that bug in the smp_store_release(), though.
    Add the u16 and u8 variants using ldarh/stlrh and ldarb/stlrb,
    respectively. Together with the compiletime_assert_atomic_type() check
    this should cover all cases now.

    Acked-by: Will Deacon
    Signed-off-by: Andre Przywara
    Signed-off-by: Will Deacon

    Andre Przywara
     
  • AMD CPUs don't reinitialize the SS descriptor on SYSRET, so SYSRET with
    SS == 0 results in an invalid usermode state in which SS is apparently
    equal to __USER_DS but causes #SS if used.

    Work around the issue by setting SS to __KERNEL_DS __switch_to, thus
    ensuring that SYSRET never happens with SS set to NULL.

    This was exposed by a recent vDSO cleanup.

    Fixes: e7d6eefaaa44 x86/vdso32/syscall.S: Do not load __USER32_DS to %ss
    Signed-off-by: Andy Lutomirski
    Cc: Peter Anvin
    Cc: Borislav Petkov
    Cc: Denys Vlasenko
    Cc: Brian Gerst
    Signed-off-by: Linus Torvalds

    Andy Lutomirski
     
  • Pull fourth vfs update from Al Viro:
    "d_inode() annotations from David Howells (sat in for-next since before
    the beginning of merge window) + four assorted fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    RCU pathwalk breakage when running into a symlink overmounting something
    fix I_DIO_WAKEUP definition
    direct-io: only inc/dec inode->i_dio_count for file systems
    fs/9p: fix readdir()
    VFS: assorted d_backing_inode() annotations
    VFS: fs/inode.c helpers: d_inode() annotations
    VFS: fs/cachefiles: d_backing_inode() annotations
    VFS: fs library helpers: d_inode() annotations
    VFS: assorted weird filesystems: d_inode() annotations
    VFS: normal filesystems (and lustre): d_inode() annotations
    VFS: security/: d_inode() annotations
    VFS: security/: d_backing_inode() annotations
    VFS: net/: d_inode() annotations
    VFS: net/unix: d_backing_inode() annotations
    VFS: kernel/: d_inode() annotations
    VFS: audit: d_backing_inode() annotations
    VFS: Fix up some ->d_inode accesses in the chelsio driver
    VFS: Cachefiles should perform fs modifications on the top layer only
    VFS: AF_UNIX sockets should call mknod on the top layer only

    Linus Torvalds
     
  • Pull crypto fixes from Herbert Xu:
    "This push fixes a build problem with img-hash under non-standard
    configurations and a serious regression with sha512_ssse3 which can
    lead to boot failures"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: img-hash - CRYPTO_DEV_IMGTEC_HASH should depend on HAS_DMA
    crypto: x86/sha512_ssse3 - fixup for asm function prototype change

    Linus Torvalds
     
  • Pull arch/cris updates from Jesper Nilsson:
    "Some much needed love for the CRIS-port.

    There's a bunch of changes this time, giving the CRISv32 port a bit of
    modern makeover with device-tree, irq domain and gpiolib support, and
    more switchover to generic frameworks.

    Some small fixes and removal of the theoretical SMP support brings up
    the rear"

    * tag 'cris-for-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris:
    cris: fix integer overflow in ELF_ET_DYN_BASE
    CRISv32: use GENERIC_SCHED_CLOCK
    CRISv32: use MMIO clocksource
    CRISv32: use generic clockevents
    CRIS: use generic headers via Kbuild
    CRIS: use generic cmpxchg.h
    CRIS: use generic atomic.h
    CRIS: use generic atomic bitops
    CRISv10: remove redundant macros from system.h
    CRIS: remove SMP code
    CRISv32: don't enable irqs in INIT_THREAD
    CRISv32: handle multiple signals
    CRISv32: prevent bogus restarts on sigreturn
    CRISv32: don't attempt syscall restart on irq exit
    Add binding documentation for CRIS
    CRIS: add Axis 88 board device tree
    CRISv32: add device tree support
    CRISv32: add irq domains support
    CRIS: enable GPIOLIB

    Linus Torvalds
     
  • Pull powerpc fixes from Michael Ellerman:

    - fix for mm_dec_nr_pmds() from Scott.

    - fixes for oopses seen with KVM + THP from Aneesh.

    - build fixes from Aneesh & Shreyas.

    * tag 'powerpc-4.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux:
    powerpc/mm: Fix build error with CONFIG_PPC_TRANSACTIONAL_MEM disabled
    powerpc/kvm: Fix ppc64_defconfig + PPC_POWERNV=n build error
    powerpc/mm/thp: Return pte address if we find trans_splitting.
    powerpc/mm/thp: Make page table walk safe against thp split/collapse
    KVM: PPC: Remove page table walk helpers
    KVM: PPC: Use READ_ONCE when dereferencing pte_t pointer
    powerpc/hugetlb: Call mm_dec_nr_pmds() in hugetlb_free_pmd_range()

    Linus Torvalds
     
  • Pull second batch of KVM changes from Paolo Bonzini:
    "This mostly includes the PPC changes for 4.1, which this time cover
    Book3S HV only (debugging aids, minor performance improvements and
    some cleanups). But there are also bug fixes and small cleanups for
    ARM, x86 and s390.

    The task_migration_notifier revert and real fix is still pending
    review, but I'll send it as soon as possible after -rc1"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (29 commits)
    KVM: arm/arm64: check IRQ number on userland injection
    KVM: arm: irqfd: fix value returned by kvm_irq_map_gsi
    KVM: VMX: Preserve host CR4.MCE value while in guest mode.
    KVM: PPC: Book3S HV: Use msgsnd for signalling threads on POWER8
    KVM: PPC: Book3S HV: Translate kvmhv_commence_exit to C
    KVM: PPC: Book3S HV: Streamline guest entry and exit
    KVM: PPC: Book3S HV: Use bitmap of active threads rather than count
    KVM: PPC: Book3S HV: Use decrementer to wake napping threads
    KVM: PPC: Book3S HV: Don't wake thread with no vcpu on guest IPI
    KVM: PPC: Book3S HV: Get rid of vcore nap_count and n_woken
    KVM: PPC: Book3S HV: Move vcore preemption point up into kvmppc_run_vcpu
    KVM: PPC: Book3S HV: Minor cleanups
    KVM: PPC: Book3S HV: Simplify handling of VCPUs that need a VPA update
    KVM: PPC: Book3S HV: Accumulate timing information for real-mode code
    KVM: PPC: Book3S HV: Create debugfs file for each guest's HPT
    KVM: PPC: Book3S HV: Add ICP real mode counters
    KVM: PPC: Book3S HV: Move virtual mode ICP functions to real-mode
    KVM: PPC: Book3S HV: Convert ICS mutex lock to spin lock
    KVM: PPC: Book3S HV: Add guest->host real mode completion counters
    KVM: PPC: Book3S HV: Add helpers for lock/unlock hpte
    ...

    Linus Torvalds
     

25 Apr, 2015

1 commit

  • Pull slave-dmaengine updates from Vinod Koul:

    - new drivers for:
    - Ingenic JZ4780 controller
    - APM X-Gene controller
    - Freescale RaidEngine device
    - Renesas USB Controller

    - remove device_alloc_chan_resources dummy handlers

    - sh driver cleanups for peri peri and related emmc and asoc patches
    as well

    - fixes and enhancements spread over the drivers

    * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (59 commits)
    dmaengine: dw: don't prompt for DW_DMAC_CORE
    dmaengine: shdmac: avoid unused variable warnings
    dmaengine: fix platform_no_drv_owner.cocci warnings
    dmaengine: pch_dma: fix memory leak on failure path in pch_dma_probe()
    dmaengine: at_xdmac: unlock spin lock before return
    dmaengine: xgene: devm_ioremap() returns NULL on error
    dmaengine: xgene: buffer overflow in xgene_dma_init_channels()
    dmaengine: usb-dmac: Fix dereferencing freed memory 'desc'
    dmaengine: sa11x0: report slave capabilities to upper layers
    dmaengine: vdma: Fix compilation warnings
    dmaengine: fsl_raid: statify fsl_re_chan_probe
    dmaengine: Driver support for FSL RaidEngine device.
    dmaengine: xgene_dma_init_ring_mngr() can be static
    Documentation: dma: Add documentation for the APM X-Gene SoC DMA device DTS binding
    arm64: dts: Add APM X-Gene SoC DMA device and DMA clock DTS nodes
    dmaengine: Add support for APM X-Gene SoC DMA engine driver
    dmaengine: usb-dmac: Add Renesas USB DMA Controller (USB-DMAC) driver
    dmaengine: renesas,usb-dmac: Add device tree bindings documentation
    dmaengine: edma: fixed wrongly initialized data parameter to the edma callback
    dmaengine: ste_dma40: fix implicit conversion
    ...

    Linus Torvalds
     

24 Apr, 2015

12 commits

  • Pull second batch of devicetree updates from Rob Herring:
    "As Grant mentioned in the first devicetree pull request, here is the
    2nd batch of DT changes for 4.1. The main remaining item here is the
    endianness bindings and related 8250 driver support.

    - DT endianness specification bindings

    - big-endian 8250 serial support

    - DT overlay unittest updates

    - various DT doc updates

    - compile fixes for OF_IRQ=n"

    * tag 'devicetree-for-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    frv: add io{read,write}{16,32}be functions
    mn10300: add io{read,write}{16,32}be functions
    Documentation: DT bindings: add doc for Altera's SoCFPGA platform
    of: base: improve of_get_next_child() kernel-doc
    Doc: dt: arch_timer: discourage clock-frequency use
    of: unittest: overlay: Keep track of created overlays
    of/fdt: fix allocation size for device node path
    serial: of_serial: Support big-endian register accesses
    serial: 8250: Add support for big-endian MMIO accesses
    of: Document {little,big,native}-endian bindings
    of/fdt: Add endianness helper function for early init code
    of: Add helper function to check MMIO register endianness
    of/fdt: Remove "reg" data prints from early_init_dt_scan_memory
    of: add vendor prefix for Artesyn
    of: Add dummy of_irq_to_resource_table() for IRQ_OF=n
    of: OF_IRQ should depend on IRQ_DOMAIN

    Linus Torvalds
     
  • Pull initial ACPI support for arm64 from Will Deacon:
    "This series introduces preliminary ACPI 5.1 support to the arm64
    kernel using the "hardware reduced" profile. We don't support any
    peripherals yet, so it's fairly limited in scope:

    - MEMORY init (UEFI)

    - ACPI discovery (RSDP via UEFI)

    - CPU init (FADT)

    - GIC init (MADT)

    - SMP boot (MADT + PSCI)

    - ACPI Kconfig options (dependent on EXPERT)

    ACPI for arm64 has been in development for a while now and hardware
    has been available that can boot with either FDT or ACPI tables. This
    has been made possible by both changes to the ACPI spec to cater for
    ARM-based machines (known as "hardware-reduced" in ACPI parlance) but
    also a Linaro-driven effort to get this supported on top of the Linux
    kernel. This pull request is the result of that work.

    These changes allow us to initialise the CPUs, interrupt controller,
    and timers via ACPI tables, with memory information and cmdline coming
    from EFI. We don't support a hybrid ACPI/FDT scheme. Of course,
    there is still plenty of work to do (a serial console would be nice!)
    but I expect that to happen on a per-driver basis after this core
    series has been merged.

    Anyway, the diff stat here is fairly horrible, but splitting this up
    and merging it via all the different subsystems would have been
    extremely painful. Instead, we've got all the relevant Acks in place
    and I've not seen anything other than trivial (Kconfig) conflicts in
    -next (for completeness, I've included my resolution below). Nearly
    half of the insertions fall under Documentation/.

    So, we'll see how this goes. Right now, it all depends on EXPERT and
    I fully expect people to use FDT by default for the immediate future"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (31 commits)
    ARM64 / ACPI: make acpi_map_gic_cpu_interface() as void function
    ARM64 / ACPI: Ignore the return error value of acpi_map_gic_cpu_interface()
    ARM64 / ACPI: fix usage of acpi_map_gic_cpu_interface
    ARM64: kernel: acpi: honour acpi=force command line parameter
    ARM64: kernel: acpi: refactor ACPI tables init and checks
    ARM64: kernel: psci: let ACPI probe PSCI version
    ARM64: kernel: psci: factor out probe function
    ACPI: move arm64 GSI IRQ model to generic GSI IRQ layer
    ARM64 / ACPI: Don't unflatten device tree if acpi=force is passed
    ARM64 / ACPI: additions of ACPI documentation for arm64
    Documentation: ACPI for ARM64
    ARM64 / ACPI: Enable ARM64 in Kconfig
    XEN / ACPI: Make XEN ACPI depend on X86
    ARM64 / ACPI: Select ACPI_REDUCED_HARDWARE_ONLY if ACPI is enabled on ARM64
    clocksource / arch_timer: Parse GTDT to initialize arch timer
    irqchip: Add GICv2 specific ACPI boot support
    ARM64 / ACPI: Introduce ACPI_IRQ_MODEL_GIC and register device's gsi
    ACPI / processor: Make it possible to get CPU hardware ID via GICC
    ACPI / processor: Introduce phys_cpuid_t for CPU hardware ID
    ARM64 / ACPI: Parse MADT for SMP initialization
    ...

    Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "A few fixes for the recently merged development updates:

    - the update to convert a code branch in the procinfo structure
    forgot to update the nommu code.

    - VDSO only supported for V7 CPUs and later.

    - VDSO build creates files which should be ignored by git but are not.

    - ensure that make arch/arm/vdso/ doesn't build if it isn't enabled"

    * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: 8344/1: VDSO: honor CONFIG_VDSO in Makefile
    ARM: 8343/1: VDSO: add build artifacts to .gitignore
    ARM: Fix nommu booting
    ARM: 8342/1: VDSO: depend on CPU_V7

    Linus Torvalds
     
  • Pull arch/nios2 updates from Ley Foon Tan:

    - update cache management code

    - rework trap handler with new define trap #.

    - fix on check header warning.

    * tag 'nios2-v4.1-rc1' of git://git.rocketboards.org/linux-socfpga-next:
    nios2: rework cache
    nios2: Add types.h header required for __u32 type
    nios2: rework trap handler
    nios2: remove end address checking for initda

    Linus Torvalds
     
  • …realmz6/blackfin-linux

    Pull blackfin updates from Steven Miao.

    * tag 'blackfin-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/realmz6/blackfin-linux:
    eth: bf609 eth clock: add pclk clock for stmmac driver probe
    blackfin: Wire up missing syscalls
    arch: blackfin: kernel: kgdb: Remove unused function
    dma: fix build error after update to v3.19
    blackfin: io: define __raw_readx/writex with bfin_readx/writex
    bf609: add resources for lcd nl8048
    pm: sometimes wake up from suspend to RAM would fail
    debug-mmrs: Eliminate all traces of the USB_PHY_TEST MMR
    bf609: remove softswitch i2c configuration from adv7842 and adv7511 platform data
    bf609: add platform data for soft switch devices on the video extenders
    bf609: enable soft switch gpio driver by default
    bf609: add gpio soft switch platform data for mcp23017 i2c devices
    bf609: use new SND_BF6XX_PCM to choose audio pcm driver
    bug[220] kgdb: change the smp cross core function entry
    arch: blackfin: kernel: setup.c: Cleaning up missing null-terminate in conjunction with strncpy
    blackfin: defconfigs: cleanup unused CONFIG_MTD_CHAR, add MTD_SPI_NOR for BF537-STAMP

    Linus Torvalds
     
  • Pull Metag architecture updates from James Hogan:
    "Just the one change for v4.1-rc1. A minor cleanup of copy_thread()"

    * tag 'metag-for-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
    metag: copy_thread(): rename 'arg' argument to 'kthread_arg'

    Linus Torvalds
     
  • Pull ARC updates from Vineet Gupta:

    - perf fixes/improvements

    - misc cleanups

    * tag 'arc-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: perf: don't add code for impossible case
    ARC: perf: Rename DT binding to not confuse with power mgmt
    ARC: perf: add user space attribution in callchains
    ARC: perf: Add kernel callchain support
    ARC: perf: support cache hit/miss ratio
    ARC: perf: Add some comments/debug stuff
    ARC: perf: make @arc_pmu static global
    ARC: mem init spring cleaning - No functional changes
    ARC: Fix RTT boot printing
    ARC: fold __builtin_constant_p() into test_bit()
    ARC: rename unhandled exception handler
    ARC: cosmetic: Remove unused ECR bitfield masks
    ARC: Fix WRITE_BCR
    ARC: [nsimosci] Update defconfig
    arc: copy_thread(): rename 'arg' argument to 'kthread_arg'

    Linus Torvalds
     
  • Commit cae2a173fe94 ("x86: clean up/fix 'copy_in_user()' tail zeroing")
    fixed the failure case tail zeroing of one special case of the x86-64
    generic user-copy routine, namely when used for the user-to-user case
    ("copy_in_user()").

    But in the process it broke an even more unusual case: using the user
    copy routine for kernel-to-kernel copying.

    Now, normally kernel-kernel copies are obviously done using memcpy(),
    but we have a couple of special cases when we use the user-copy
    functions. One is when we pass a kernel buffer to a regular user-buffer
    routine, using set_fs(KERNEL_DS). That's a "normal" case, and continued
    to work fine, because it never takes any faults (with the possible
    exception of a silent and successful vmalloc fault).

    But Jan Beulich pointed out another, very unusual, special case: when we
    use the user-copy routines not because it's a path that expects a user
    pointer, but for a couple of ftrace/kgdb cases that want to do a kernel
    copy, but do so using "unsafe" buffers, and use the user-copy routine to
    gracefully handle faults. IOW, for probe_kernel_write().

    And that broke for the case of a faulting kernel destination, because we
    saw the kernel destination and wanted to try to clear the tail of the
    buffer. Which doesn't work, since that's what faults.

    This only triggers for things like kgdb and ftrace users (eg trying
    setting a breakpoint on read-only memory), but it's definitely a bug.
    The fix is to not compare against the kernel address start (TASK_SIZE),
    but instead use the same limits "access_ok()" uses.

    Reported-and-tested-by: Jan Beulich
    Cc: stable@vger.kernel.org # 4.0
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Patch e68410ebf626 ("crypto: x86/sha512_ssse3 - move SHA-384/512
    SSSE3 implementation to base layer") changed the prototypes of the
    core asm SHA-512 implementations so that they are compatible with
    the prototype used by the base layer.

    However, in one instance, the register that was used for passing the
    input buffer was reused as a scratch register later on in the code,
    and since the input buffer param changed places with the digest param
    -which needs to be written back before the function returns- this
    resulted in the scratch register to be dereferenced in a memory write
    operation, causing a GPF.

    Fix this by changing the scratch register to use the same register as
    the input buffer param again.

    Fixes: e68410ebf626 ("crypto: x86/sha512_ssse3 - move SHA-384/512 SSSE3 implementation to base layer")
    Reported-By: Bobby Powers
    Tested-By: Bobby Powers
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu

    Ard Biesheuvel
     
  • - flush dcache before flush instruction cache
    - remork update_mmu_cache and flush_dcache_page
    - add shmparam.h

    Signed-off-by: Ley Foon Tan

    Ley Foon Tan
     
  • Reported by the header checker (CONFIG_HEADERS_CHECK=y):

    CHECK usr/include/asm/ (31 files)
    ./usr/include/asm/ptrace.h:77: found __[us]{8,16,32,64} type without #include

    Signed-off-by: Ezequiel Garcia
    Acked-by: Ley Foon Tan

    Ezequiel Garcia
     
  • Signed-off-by: Steven Miao

    Steven Miao