commit 1d2acf22c2539c568e0a4bd63bf464e10acd8070
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Dec 5 11:20:47 2017 +0100

    Linux 3.18.86

commit 9742589ef2dd482eb218bf6068eec3bc2fae75da
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Thu Nov 23 21:41:57 2017 +0200

    drm/i915: Prevent zero length "index" write
    
    commit 56350fb8978bbf4aafe08f21234e161dd128b417 upstream.
    
    The hardware always writes one or two bytes in the index portion of
    an indexed transfer. Make sure the message we send as the index
    doesn't have a zero length.
    
    Cc: Daniel Kurtz <djkurtz@chromium.org>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Sean Paul <seanpaul@chromium.org>
    Fixes: 56f9eac05489 ("drm/i915/intel_i2c: use INDEX cycles for i2c read transactions")
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171123194157.25367-3-ville.syrjala@linux.intel.com
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    (cherry picked from commit bb9e0d4bca50f429152e74a459160b41f3d60fb2)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b858baba6773bfdfbd3fd419a3dfa4eacdc6f107
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Thu Nov 23 21:41:56 2017 +0200

    drm/i915: Don't try indexed reads to alternate slave addresses
    
    commit ae5c631e605a452a5a0e73205a92810c01ed954b upstream.
    
    We can only specify the one slave address to indexed reads/writes.
    Make sure the messages we check are destined to the same slave
    address before deciding to do an indexed transfer.
    
    Cc: Daniel Kurtz <djkurtz@chromium.org>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Sean Paul <seanpaul@chromium.org>
    Fixes: 56f9eac05489 ("drm/i915/intel_i2c: use INDEX cycles for i2c read transactions")
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171123194157.25367-2-ville.syrjala@linux.intel.com
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    (cherry picked from commit c4deb62d7821672265b87952bcd1c808f3bf3e8f)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ea40d143494705b074688a4330b7085f06d3942
Author: NeilBrown <neilb@suse.com>
Date:   Fri Aug 25 17:34:41 2017 +1000

    NFS: revalidate "." etc correctly on "open".
    
    commit b688741cb06695312f18b730653d6611e1bad28d upstream.
    
    For correct close-to-open semantics, NFS must validate
    the change attribute of a directory (or file) on open.
    
    Since commit ecf3d1f1aa74 ("vfs: kill FS_REVAL_DOT by adding a
    d_weak_revalidate dentry op"), open() of "." or a path ending ".." is
    not revalidated reliably (except when that direct is a mount point).
    
    Prior to that commit, "." was revalidated using nfs_lookup_revalidate()
    which checks the LOOKUP_OPEN flag and forces revalidation if the flag is
    set.
    Since that commit, nfs_weak_revalidate() is used for NFSv3 (which
    ignores the flags) and nothing is used for NFSv4.
    
    This is fixed by using nfs_lookup_verify_inode() in
    nfs_weak_revalidate().  This does the revalidation exactly when needed.
    Also, add a definition of .d_weak_revalidate for NFSv4.
    
    The incorrect behavior is easily demonstrated by running "echo *" in
    some non-mountpoint NFS directory while watching network traffic.
    Without this patch, "echo *" sometimes doesn't produce any traffic.
    With the patch it always does.
    
    Fixes: ecf3d1f1aa74 ("vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op")
    cc: stable@vger.kernel.org (3.9+)
    Signed-off-by: NeilBrown <neilb@suse.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72427ea588e3eaf0170f87c0ad4b8a568979771d
Author: Jonathan Liu <net147@gmail.com>
Date:   Mon Aug 7 21:55:45 2017 +1000

    drm/panel: simple: Add missing panel_simple_unprepare() calls
    
    commit f3621a8eb59a913612c8e6e37d81f16b649f8b6c upstream.
    
    During panel removal or system shutdown panel_simple_disable() is called
    which disables the panel backlight but the panel is still powered due to
    missing calls to panel_simple_unprepare().
    
    Fixes: d02fd93e2cd8 ("drm/panel: simple - Disable panel on shutdown")
    Signed-off-by: Jonathan Liu <net147@gmail.com>
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170807115545.27747-1-net147@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 165a3c7d786e16dc4a84403b73d18dac9ea97f7d
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Fri Nov 24 07:47:50 2017 +0100

    eeprom: at24: check at24_read/write arguments
    
    commit d9bcd462daf34aebb8de9ad7f76de0198bb5a0f0 upstream.
    
    So far we completely rely on the caller to provide valid arguments.
    To be on the safe side perform an own sanity check.
    
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 092b0115002b27fdbea3026bd18a6481fe67a50d
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Fri Nov 10 10:49:38 2017 +0100

    KVM: x86: inject exceptions produced by x86_decode_insn
    
    commit 6ea6e84309ca7e0e850b3083e6b09344ee15c290 upstream.
    
    Sometimes, a processor might execute an instruction while another
    processor is updating the page tables for that instruction's code page,
    but before the TLB shootdown completes.  The interesting case happens
    if the page is in the TLB.
    
    In general, the processor will succeed in executing the instruction and
    nothing bad happens.  However, what if the instruction is an MMIO access?
    If *that* happens, KVM invokes the emulator, and the emulator gets the
    updated page tables.  If the update side had marked the code page as non
    present, the page table walk then will fail and so will x86_decode_insn.
    
    Unfortunately, even though kvm_fetch_guest_virt is correctly returning
    X86EMUL_PROPAGATE_FAULT, x86_decode_insn's caller treats the failure as
    a fatal error if the instruction cannot simply be reexecuted (as is the
    case for MMIO).  And this in fact happened sometimes when rebooting
    Windows 2012r2 guests.  Just checking ctxt->have_exception and injecting
    the exception if true is enough to fix the case.
    
    Thanks to Eduardo Habkost for helping in the debugging of this issue.
    
    Reported-by: Yanan Fu <yfu@redhat.com>
    Cc: Eduardo Habkost <ehabkost@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ccabc053d5b8f88573cd6ea7e1d7e4d701b15971
Author: Liran Alon <liran.alon@oracle.com>
Date:   Sun Nov 5 16:56:32 2017 +0200

    KVM: x86: Exit to user-mode on #UD intercept when emulator requires
    
    commit 61cb57c9ed631c95b54f8e9090c89d18b3695b3c upstream.
    
    Instruction emulation after trapping a #UD exception can result in an
    MMIO access, for example when emulating a MOVBE on a processor that
    doesn't support the instruction.  In this case, the #UD vmexit handler
    must exit to user mode, but there wasn't any code to do so.  Add it for
    both VMX and SVM.
    
    Signed-off-by: Liran Alon <liran.alon@oracle.com>
    Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
    Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Reviewed-by: Wanpeng Li <wanpeng.li@hotmail.com>
    Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab1f0096ab28231bb0822b3f603cf5d2c9e43bcf
Author: Josef Bacik <jbacik@fb.com>
Date:   Fri Nov 17 14:50:46 2017 -0500

    btrfs: clear space cache inode generation always
    
    commit 8e138e0d92c6c9d3d481674fb14e3439b495be37 upstream.
    
    We discovered a box that had double allocations, and suspected the space
    cache may be to blame.  While auditing the write out path I noticed that
    if we've already setup the space cache we will just carry on.  This
    means that any error we hit after cache_save_setup before we go to
    actually write the cache out we won't reset the inode generation, so
    whatever was already written will be considered correct, except it'll be
    stale.  Fix this by _always_ resetting the generation on the block group
    inode, this way we only ever have valid or invalid cache.
    
    With this patch I was no longer able to reproduce cache corruption with
    dm-log-writes and my bpf error injection tool.
    
    Signed-off-by: Josef Bacik <jbacik@fb.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d5ec57c35ac4eeee9b18fb31a953281e63672c0f
Author: chenjie <chenjie6@huawei.com>
Date:   Wed Nov 29 16:10:54 2017 -0800

    mm/madvise.c: fix madvise() infinite loop under special circumstances
    
    commit 6ea8d958a2c95a1d514015d4e29ba21a8c0a1a91 upstream.
    
    MADVISE_WILLNEED has always been a noop for DAX (formerly XIP) mappings.
    Unfortunately madvise_willneed() doesn't communicate this information
    properly to the generic madvise syscall implementation.  The calling
    convention is quite subtle there.  madvise_vma() is supposed to either
    return an error or update &prev otherwise the main loop will never
    advance to the next vma and it will keep looping for ever without a way
    to get out of the kernel.
    
    It seems this has been broken since introduction.  Nobody has noticed
    because nobody seems to be using MADVISE_WILLNEED on these DAX mappings.
    
    [mhocko@suse.com: rewrite changelog]
    Link: http://lkml.kernel.org/r/20171127115318.911-1-guoxuenan@huawei.com
    Fixes: fe77ba6f4f97 ("[PATCH] xip: madvice/fadvice: execute in place")
    Signed-off-by: chenjie <chenjie6@huawei.com>
    Signed-off-by: guoxuenan <guoxuenan@huawei.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: zhangyi (F) <yi.zhang@huawei.com>
    Cc: Miao Xie <miaoxie@huawei.com>
    Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
    Cc: Shaohua Li <shli@fb.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Carsten Otte <cotte@de.ibm.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8b37803c5fc0e2c3cbf9f03ce7bd5f376beebe2f
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Mon Nov 27 06:21:25 2017 +0300

    mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d()
    
    commit a8f97366452ed491d13cf1e44241bc0b5740b1f0 upstream.
    
    Currently, we unconditionally make page table dirty in touch_pmd().
    It may result in false-positive can_follow_write_pmd().
    
    We may avoid the situation, if we would only make the page table entry
    dirty if caller asks for write access -- FOLL_WRITE.
    
    The patch also changes touch_pud() in the same way.
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [Salvatore Bonaccorso: backport for 3.16:
     - Adjust context
     - Drop specific part for PUD-sized transparent hugepages. Support
       for PUD-sized transparent hugepages was added in v4.11-rc1
    ]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8586e18413441d265f0ff536378d6ef358d18853
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Thu Oct 19 20:51:10 2017 +0800

    ipsec: Fix aborted xfrm policy dump crash
    
    commit 1137b5e2529a8f5ca8ee709288ecba3e68044df2 upstream.
    
    An independent security researcher, Mohamed Ghannam, has reported
    this vulnerability to Beyond Security's SecuriTeam Secure Disclosure
    program.
    
    The xfrm_dump_policy_done function expects xfrm_dump_policy to
    have been called at least once or it will crash.  This can be
    triggered if a dump fails because the target socket's receive
    buffer is full.
    
    This patch fixes it by using the cb->start mechanism to ensure that
    the initialisation is always done regardless of the buffer situation.
    
    Fixes: 12a169e7d8f4 ("ipsec: Put dumpers on the dump list")
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 142afbc6b2f33832f332ce5b561aa817edfff0b4
Author: Tom Herbert <tom@herbertland.com>
Date:   Tue Dec 15 15:41:37 2015 -0800

    netlink: add a start callback for starting a netlink dump
    
    commit fc9e50f5a5a4e1fa9ba2756f745a13e693cf6a06 upstream.
    
    The start callback allows the caller to set up a context for the
    dump callbacks. Presumably, the context can then be destroyed in
    the done callback.
    
    Signed-off-by: Tom Herbert <tom@herbertland.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>