commit 762167f98c6aa8d47c801f8b6ac20bf30d786a4b
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon Jun 29 12:25:50 2015 -0700

    Linux 3.14.46

commit 29bab152e5d14d59479b29e7a0e02999aa84cb62
Author: Will Deacon <will.deacon@arm.com>
Date:   Tue Aug 26 15:13:24 2014 +0100

    KVM: vgic: return int instead of bool when checking I/O ranges
    
    commit 1fa451bcc67fa921a04c5fac8dbcde7844d54512 upstream.
    
    vgic_ioaddr_overlap claims to return a bool, but in reality it returns
    an int. Shut sparse up by fixing the type signature.
    
    Cc: Christoffer Dall <christoffer.dall@linaro.org>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f967dfcedb7d33d953860cf337451ed5ea484e6e
Author: Will Deacon <will.deacon@arm.com>
Date:   Tue Aug 26 15:13:22 2014 +0100

    KVM: ARM/arm64: avoid returning negative error code as bool
    
    commit 18d457661fb9fa69352822ab98d39331c3d0e571 upstream.
    
    is_valid_cache returns true if the specified cache is valid.
    Unfortunately, if the parameter passed it out of range, we return
    -ENOENT, which ends up as true leading to potential hilarity.
    
    This patch returns false on the failure path instead.
    
    Cc: Christoffer Dall <christoffer.dall@linaro.org>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ac413349b7968c30a3986cc39ce14cc84a4bc05c
Author: Will Deacon <will.deacon@arm.com>
Date:   Tue Aug 26 15:13:21 2014 +0100

    KVM: ARM/arm64: fix broken __percpu annotation
    
    commit 4000be423cb01a8d09de878bb8184511c49d4238 upstream.
    
    Running sparse results in a bunch of noisy address space mismatches
    thanks to the broken __percpu annotation on kvm_get_running_vcpus.
    
    This function returns a pcpu pointer to a pointer, not a pointer to a
    pcpu pointer. This patch fixes the annotation, which kills the warnings
    from sparse.
    
    Cc: Christoffer Dall <christoffer.dall@linaro.org>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3593b221a8fe066e43e2b37b0c7e155ad9e267c7
Author: Will Deacon <will.deacon@arm.com>
Date:   Tue Aug 26 15:13:20 2014 +0100

    KVM: ARM/arm64: fix non-const declaration of function returning const
    
    commit 6951e48bff0b55d2a8e825a953fc1f8e3a34bf1c upstream.
    
    Sparse kicks up about a type mismatch for kvm_target_cpu:
    
    arch/arm64/kvm/guest.c:271:25: error: symbol 'kvm_target_cpu' redeclared with different type (originally declared at ./arch/arm64/include/asm/kvm_host.h:45) - different modifiers
    
    so fix this by adding the missing const attribute to the function
    declaration.
    
    Cc: Christoffer Dall <christoffer.dall@linaro.org>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d57d14cfeba4b05810daca84c22f019072f5b495
Author: Victor Kamensky <victor.kamensky@linaro.org>
Date:   Thu Jun 12 09:30:09 2014 -0700

    ARM64: KVM: store kvm_vcpu_fault_info est_el2 as word
    
    commit ba083d20d8cfa9e999043cd89c4ebc964ccf8927 upstream.
    
    esr_el2 field of struct kvm_vcpu_fault_info has u32 type.
    It should be stored as word. Current code works in LE case
    because existing puts least significant word of x1 into
    esr_el2, and it puts most significant work of x1 into next
    field, which accidentally is OK because it is updated again
    by next instruction. But existing code breaks in BE case.
    
    Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
    Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
    Acked-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03f600a84336d6291405048b088cb1fce55a973d
Author: Li Liu <john.liuli@huawei.com>
Date:   Tue Jul 1 18:01:50 2014 +0800

    ARM: virt: fix wrong HSCTLR.EE bit setting
    
    commit af92394efc8be73edd2301fc15f9b57fd430cd18 upstream.
    
    HSCTLR.EE is defined as bit[25] referring to arm manual
    DDI0606C.b(p1590).
    
    Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Li Liu <john.liuli@huawei.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d7c60b83bc602c6e4f5abc7a1b8e52a8928783c5
Author: Alex Bennée <alex.bennee@linaro.org>
Date:   Tue Jul 1 16:53:13 2014 +0100

    arm64: KVM: export demux regids as KVM_REG_ARM64
    
    commit efd48ceacea78e4d4656aa0a6bf4c5b92ed22130 upstream.
    
    I suspect this is a -ECUTPASTE fault from the initial implementation. If
    we don't declare the register ID to be KVM_REG_ARM64 the KVM_GET_ONE_REG
    implementation kvm_arm_get_reg() returns -EINVAL and hilarity ensues.
    
    The kvm/api.txt document describes all arm64 registers as starting with
    0x60xx... (i.e KVM_REG_ARM64).
    
    Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
    Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
    Acked-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e16bb584be4a6134fe9eb476d358a0aa2fbb5626
Author: Kim Phillips <kim.phillips@linaro.org>
Date:   Thu Jun 26 01:45:51 2014 +0100

    ARM: KVM: user_mem_abort: support stage 2 MMIO page mapping
    
    commit b88657674d39fc2127d62d0de9ca142e166443c8 upstream.
    
    A userspace process can map device MMIO memory via VFIO or /dev/mem,
    e.g., for platform device passthrough support in QEMU.
    
    During early development, we found the PAGE_S2 memory type being used
    for MMIO mappings.  This patch corrects that by using the more strongly
    ordered memory type for device MMIO mappings: PAGE_S2_DEVICE.
    
    Signed-off-by: Kim Phillips <kim.phillips@linaro.org>
    Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0aa06a1a546ecada733a2596df60e0665d8ab778
Author: Eric Auger <eric.auger@linaro.org>
Date:   Fri Jun 6 11:10:23 2014 +0200

    ARM: KVM: Unmap IPA on memslot delete/move
    
    commit df6ce24f2ee485c4f9a5cb610063a5eb60da8267 upstream.
    
    Currently when a KVM region is deleted or moved after
    KVM_SET_USER_MEMORY_REGION ioctl, the corresponding
    intermediate physical memory is not unmapped.
    
    This patch corrects this and unmaps the region's IPA range
    in kvm_arch_commit_memory_region using unmap_stage2_range.
    
    Signed-off-by: Eric Auger <eric.auger@linaro.org>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 19a2d45ac657ab9bee3e252a84d875a41ec49142
Author: Christoffer Dall <christoffer.dall@linaro.org>
Date:   Fri May 9 23:31:31 2014 +0200

    arm/arm64: KVM: Fix and refactor unmap_range
    
    commit 4f853a714bf16338ff5261128e6c7ae2569e9505 upstream.
    
    unmap_range() was utterly broken, to quote Marc, and broke in all sorts
    of situations.  It was also quite complicated to follow and didn't
    follow the usual scheme of having a separate iterating function for each
    level of page tables.
    
    Address this by refactoring the code and introduce a pgd_clear()
    function.
    
    Reviewed-by: Jungseok Lee <jays.lee@samsung.com>
    Reviewed-by: Mario Smarduch <m.smarduch@samsung.com>
    Acked-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e42ec4ae3b532218a9166a7bcc11455e35dda5fd
Author: James Smart <james.smart@emulex.com>
Date:   Wed May 7 17:16:46 2014 -0400

    lpfc: Add iotag memory barrier
    
    commit 27f344eb15dd0da80ebec80c7245e8c85043f841 upstream.
    
    Add a memory barrier to ensure the valid bit is read before
    any of the cqe payload is read. This fixes an issue seen
    on Power where the cqe payload was getting loaded before
    the valid bit. When this occurred, we saw an iotag out of
    range error when a command completed, but since the iotag
    looked invalid the command didn't get completed to scsi core.
    Later we hit the command timeout, attempted to abort the command,
    then waited for the aborted command to get returned. Since the
    adapter already returned the command, we timeout waiting,
    and end up escalating EEH all the way to host reset. This
    patch fixes this issue.
    
    Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
    Signed-off-by: James Smart <james.smart@emulex.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b17faf3d5fa6a727c40613bdf24d73b2a59df27
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Tue Jun 16 22:11:06 2015 +0100

    pipe: iovec: Fix memory corruption when retrying atomic copy as non-atomic
    
    pipe_iov_copy_{from,to}_user() may be tried twice with the same iovec,
    the first time atomically and the second time not.  The second attempt
    needs to continue from the iovec position, pipe buffer offset and
    remaining length where the first attempt failed, but currently the
    pipe buffer offset and remaining length are reset.  This will corrupt
    the piped data (possibly also leading to an information leak between
    processes) and may also corrupt kernel memory.
    
    This was fixed upstream by commits f0d1bec9d58d ("new helper:
    copy_page_from_iter()") and 637b58c2887e ("switch pipe_read() to
    copy_page_to_iter()"), but those aren't suitable for stable.  This fix
    for older kernel versions was made by Seth Jennings for RHEL and I
    have extracted it from their update.
    
    CVE-2015-1805
    
    References: https://bugzilla.redhat.com/show_bug.cgi?id=1202855
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92fd3f49f2e3d58f0d6dc8dfbca5057f8b0ffbc8
Author: Dmitry Tunin <hanipouspilot@gmail.com>
Date:   Sat Jun 6 20:29:25 2015 +0300

    ath3k: add support of 13d3:3474 AR3012 device
    
    commit 0d0cef6183aec0fb6d0c9f00a09ff51ee086bbe2 upstream.
    
    BugLink: https://bugs.launchpad.net/bugs/1427680
    
    This device requires new firmware files
     AthrBT_0x11020100.dfu and ramps_0x11020100_40.dfu added to
    /lib/firmware/ar3k/ that are not included in linux-firmware yet.
    
    T: Bus=01 Lev=01 Prnt=01 Port=04 Cnt=01 Dev#= 4 Spd=12 MxCh= 0
    D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
    P: Vendor=13d3 ProdID=3474 Rev=00.01
    C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    
    Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 483fc6d964930311e3cc11e1ecf7a8489768b68c
Author: Dmitry Tunin <hanipouspilot@gmail.com>
Date:   Sat Jun 6 20:25:40 2015 +0300

    ath3k: Add support of 0489:e076 AR3012 device
    
    commit 692c062e7c282164fd7cda68077f79dafd176eaf upstream.
    
    BugLink: https://bugs.launchpad.net/bugs/1462614
    
    This device requires new firmware files
     AthrBT_0x11020100.dfu and ramps_0x11020100_40.dfu added to
    /lib/firmware/ar3k/ that are not included in linux-firmware yet.
    
    T: Bus=03 Lev=01 Prnt=01 Port=09 Cnt=06 Dev#= 7 Spd=12 MxCh= 0
    D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
    P: Vendor=0489 ProdID=e076 Rev= 0.01
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
    E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
    E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
    E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
    I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
    E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
    I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
    E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
    I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
    E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
    I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
    E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
    I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
    E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
    
    Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13c31244132d81b5c00ee4d58ce03034136b8e48
Author: Adam Jackson <ajax@redhat.com>
Date:   Mon Jun 15 16:16:15 2015 -0400

    drm/mgag200: Reject non-character-cell-aligned mode widths
    
    commit 25161084b1c1b0c29948f6f77266a35f302196b7 upstream.
    
    Turns out 1366x768 does not in fact work on this hardware.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7710f0edc47ebe6b92d0176dd2e9ace53400a63
Author: Steven Rostedt <rostedt@goodmis.org>
Date:   Mon Jun 15 17:50:25 2015 -0400

    tracing: Have filter check for balanced ops
    
    commit 2cf30dc180cea808077f003c5116388183e54f9e upstream.
    
    When the following filter is used it causes a warning to trigger:
    
     # cd /sys/kernel/debug/tracing
     # echo "((dev==1)blocks==2)" > events/ext4/ext4_truncate_exit/filter
    -bash: echo: write error: Invalid argument
     # cat events/ext4/ext4_truncate_exit/filter
    ((dev==1)blocks==2)
    ^
    parse_error: No error
    
     ------------[ cut here ]------------
     WARNING: CPU: 2 PID: 1223 at kernel/trace/trace_events_filter.c:1640 replace_preds+0x3c5/0x990()
     Modules linked in: bnep lockd grace bluetooth  ...
     CPU: 3 PID: 1223 Comm: bash Tainted: G        W       4.1.0-rc3-test+ #450
     Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v02.05 05/07/2012
      0000000000000668 ffff8800c106bc98 ffffffff816ed4f9 ffff88011ead0cf0
      0000000000000000 ffff8800c106bcd8 ffffffff8107fb07 ffffffff8136b46c
      ffff8800c7d81d48 ffff8800d4c2bc00 ffff8800d4d4f920 00000000ffffffea
     Call Trace:
      [<ffffffff816ed4f9>] dump_stack+0x4c/0x6e
      [<ffffffff8107fb07>] warn_slowpath_common+0x97/0xe0
      [<ffffffff8136b46c>] ? _kstrtoull+0x2c/0x80
      [<ffffffff8107fb6a>] warn_slowpath_null+0x1a/0x20
      [<ffffffff81159065>] replace_preds+0x3c5/0x990
      [<ffffffff811596b2>] create_filter+0x82/0xb0
      [<ffffffff81159944>] apply_event_filter+0xd4/0x180
      [<ffffffff81152bbf>] event_filter_write+0x8f/0x120
      [<ffffffff811db2a8>] __vfs_write+0x28/0xe0
      [<ffffffff811dda43>] ? __sb_start_write+0x53/0xf0
      [<ffffffff812e51e0>] ? security_file_permission+0x30/0xc0
      [<ffffffff811dc408>] vfs_write+0xb8/0x1b0
      [<ffffffff811dc72f>] SyS_write+0x4f/0xb0
      [<ffffffff816f5217>] system_call_fastpath+0x12/0x6a
     ---[ end trace e11028bd95818dcd ]---
    
    Worse yet, reading the error message (the filter again) it says that
    there was no error, when there clearly was. The issue is that the
    code that checks the input does not check for balanced ops. That is,
    having an op between a closed parenthesis and the next token.
    
    This would only cause a warning, and fail out before doing any real
    harm, but it should still not caues a warning, and the error reported
    should work:
    
     # cd /sys/kernel/debug/tracing
     # echo "((dev==1)blocks==2)" > events/ext4/ext4_truncate_exit/filter
    -bash: echo: write error: Invalid argument
     # cat events/ext4/ext4_truncate_exit/filter
    ((dev==1)blocks==2)
    ^
    parse_error: Meaningless filter expression
    
    And give no kernel warning.
    
    Link: http://lkml.kernel.org/r/20150615175025.7e809215@gandalf.local.home
    
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Reported-by: Vince Weaver <vincent.weaver@maine.edu>
    Tested-by: Vince Weaver <vincent.weaver@maine.edu>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    [ luis: backported to 3.16:
      - unconditionally decrement cnt as the OP_NOT logic was introduced only
        by e12c09cf3087 ("tracing: Add NOT to filtering logic") ]
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f78a4015ad03e92f09f990972bfc01b3eed5da90
Author: Steve Cornelius <steve.cornelius@freescale.com>
Date:   Mon Jun 15 16:52:59 2015 -0700

    crypto: caam - fix RNG buffer cache alignment
    
    commit 412c98c1bef65fe7589f1300e93735d96130307c upstream.
    
    The hwrng output buffers (2) are cast inside of a a struct (caam_rng_ctx)
    allocated in one DMA-tagged region. While the kernel's heap allocator
    should place the overall struct on a cacheline aligned boundary, the 2
    buffers contained within may not necessarily align. Consenquently, the ends
    of unaligned buffers may not fully flush, and if so, stale data will be left
    behind, resulting in small repeating patterns.
    
    This fix aligns the buffers inside the struct.
    
    Note that not all of the data inside caam_rng_ctx necessarily needs to be
    DMA-tagged, only the buffers themselves require this. However, a fix would
    incur the expense of error-handling bloat in the case of allocation failure.
    
    Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com>
    Signed-off-by: Victoria Milhoan <vicki.milhoan@freescale.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>