commit 915b8f498b1a2dacc4f81dc949e310915c7374f2
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Apr 24 09:29:29 2018 +0200

    Linux 3.18.106

commit 04b35f0c99544d9f6fe3e4738b1e15941338c939
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Wed Apr 4 23:42:18 2018 +0300

    fanotify: fix logic of events on child
    
    commit 54a307ba8d3cd00a3902337ffaae28f436eeb1a4 upstream.
    
    When event on child inodes are sent to the parent inode mark and
    parent inode mark was not marked with FAN_EVENT_ON_CHILD, the event
    will not be delivered to the listener process. However, if the same
    process also has a mount mark, the event to the parent inode will be
    delivered regadless of the mount mark mask.
    
    This behavior is incorrect in the case where the mount mark mask does
    not contain the specific event type. For example, the process adds
    a mark on a directory with mask FAN_MODIFY (without FAN_EVENT_ON_CHILD)
    and a mount mark with mask FAN_CLOSE_NOWRITE (without FAN_ONDIR).
    
    A modify event on a file inside that directory (and inside that mount)
    should not create a FAN_MODIFY event, because neither of the marks
    requested to get that event on the file.
    
    Fixes: 1968f5eed54c ("fanotify: use both marks when possible")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    [natechancellor: Fix small conflict due to lack of 3cd5eca8d7a2f]
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit daf60c66be35e3682cacbd837d931d564f352858
Author: Ian Kent <raven@themaw.net>
Date:   Fri Apr 20 14:55:59 2018 -0700

    autofs: mount point create should honour passed in mode
    
    commit 1e6306652ba18723015d1b4967fe9de55f042499 upstream.
    
    The autofs file system mkdir inode operation blindly sets the created
    directory mode to S_IFDIR | 0555, ingoring the passed in mode, which can
    cause selinux dac_override denials.
    
    But the function also checks if the caller is the daemon (as no-one else
    should be able to do anything here) so there's no point in not honouring
    the passed in mode, allowing the daemon to set appropriate mode when
    required.
    
    Link: http://lkml.kernel.org/r/152361593601.8051.14014139124905996173.stgit@pluto.themaw.net
    Signed-off-by: Ian Kent <raven@themaw.net>
    Cc: <stable@vger.kernel.org>
    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 c29b983a5f27234cee94cf1e992f0cb055bf9408
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Apr 19 22:03:08 2018 -0400

    Don't leak MNT_INTERNAL away from internal mounts
    
    commit 16a34adb9392b2fe4195267475ab5b472e55292c upstream.
    
    We want it only for the stuff created by SB_KERNMOUNT mounts, *not* for
    their copies.  As it is, creating a deep stack of bindings of /proc/*/ns/*
    somewhere in a new namespace and exiting yields a stack overflow.
    
    Cc: stable@kernel.org
    Reported-by: Alexander Aring <aring@mojatatu.com>
    Bisected-by: Kirill Tkhai <ktkhai@virtuozzo.com>
    Tested-by: Kirill Tkhai <ktkhai@virtuozzo.com>
    Tested-by: Alexander Aring <aring@mojatatu.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d5975c5bbc6e04c95b7b62a8544dc37bded80827
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Tue Apr 3 01:15:46 2018 -0400

    rpc_pipefs: fix double-dput()
    
    commit 4a3877c4cedd95543f8726b0a98743ed8db0c0fb upstream.
    
    if we ever hit rpc_gssd_dummy_depopulate() dentry passed to
    it has refcount equal to 1.  __rpc_rmpipe() drops it and
    dput() done after that hits an already freed dentry.
    
    Cc: stable@kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d44291735c573c645d2fba54a8eb80916e2f2c0e
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Mon Apr 2 23:50:31 2018 -0400

    hypfs_kill_super(): deal with failed allocations
    
    commit a24cd490739586a7d2da3549a1844e1d7c4f4fc4 upstream.
    
    hypfs_fill_super() might fail to allocate sbi; hypfs_kill_super()
    should not oops on that.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e05f940f55a73ff835a0b6ee7d4dfbeaf9a7375
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Mon Apr 2 23:56:44 2018 -0400

    jffs2_kill_sb(): deal with failed allocations
    
    commit c66b23c2840446a82c389e4cb1a12eb2a71fa2e4 upstream.
    
    jffs2_fill_super() might fail to allocate jffs2_sb_info;
    jffs2_kill_sb() must survive that.
    
    Cc: stable@kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eaf2bca68881d2d99289d5cfb18d04de55cc92ac
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Mon Apr 16 23:25:19 2018 +1000

    powerpc/lib: Fix off-by-one in alternate feature patching
    
    commit b8858581febb050688e276b956796bc4a78299ed upstream.
    
    When we patch an alternate feature section, we have to adjust any
    relative branches that branch out of the alternate section.
    
    But currently we have a bug if we have a branch that points to past
    the last instruction of the alternate section, eg:
    
      FTR_SECTION_ELSE
      1:     b       2f
             or      6,6,6
      2:
      ALT_FTR_SECTION_END(...)
             nop
    
    This will result in a relative branch at 1 with a target that equals
    the end of the alternate section.
    
    That branch does not need adjusting when it's moved to the non-else
    location. Currently we do adjust it, resulting in a branch that goes
    off into the link-time location of the else section, which is junk.
    
    The fix is to not patch branches that have a target == end of the
    alternate section.
    
    Fixes: d20fe50a7b3c ("KVM: PPC: Book3S HV: Branch inside feature section")
    Fixes: 9b1a735de64c ("powerpc: Add logic to patch alternative feature sections")
    Cc: stable@vger.kernel.org # v2.6.27+
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6bbb8018b1d074af56713649c2dfa08fc4cd2d2a
Author: Matt Redfearn <matt.redfearn@mips.com>
Date:   Tue Apr 17 16:40:00 2018 +0100

    MIPS: memset.S: Fix clobber of v1 in last_fixup
    
    commit c96eebf07692e53bf4dd5987510d8b550e793598 upstream.
    
    The label .Llast_fixup\@ is jumped to on page fault within the final
    byte set loop of memset (on < MIPSR6 architectures). For some reason, in
    this fault handler, the v1 register is randomly set to a2 & STORMASK.
    This clobbers v1 for the calling function. This can be observed with the
    following test code:
    
    static int __init __attribute__((optimize("O0"))) test_clear_user(void)
    {
      register int t asm("v1");
      char *test;
      int j, k;
    
      pr_info("\n\n\nTesting clear_user\n");
      test = vmalloc(PAGE_SIZE);
    
      for (j = 256; j < 512; j++) {
        t = 0xa5a5a5a5;
        if ((k = clear_user(test + PAGE_SIZE - 256, j)) != j - 256) {
            pr_err("clear_user (%px %d) returned %d\n", test + PAGE_SIZE - 256, j, k);
        }
        if (t != 0xa5a5a5a5) {
           pr_err("v1 was clobbered to 0x%x!\n", t);
        }
      }
    
      return 0;
    }
    late_initcall(test_clear_user);
    
    Which demonstrates that v1 is indeed clobbered (MIPS64):
    
    Testing clear_user
    v1 was clobbered to 0x1!
    v1 was clobbered to 0x2!
    v1 was clobbered to 0x3!
    v1 was clobbered to 0x4!
    v1 was clobbered to 0x5!
    v1 was clobbered to 0x6!
    v1 was clobbered to 0x7!
    
    Since the number of bytes that could not be set is already contained in
    a2, the andi placing a value in v1 is not necessary and actively
    harmful in clobbering v1.
    
    Reported-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/19109/
    Signed-off-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e518b1ea3a4b161878a6ed1b4088beb91dee06f9
Author: Matt Redfearn <matt.redfearn@mips.com>
Date:   Tue Apr 17 15:52:21 2018 +0100

    MIPS: memset.S: Fix return of __clear_user from Lpartial_fixup
    
    commit daf70d89f80c6e1772233da9e020114b1254e7e0 upstream.
    
    The __clear_user function is defined to return the number of bytes that
    could not be cleared. From the underlying memset / bzero implementation
    this means setting register a2 to that number on return. Currently if a
    page fault is triggered within the memset_partial block, the value
    loaded into a2 on return is meaningless.
    
    The label .Lpartial_fixup\@ is jumped to on page fault. In order to work
    out how many bytes failed to copy, the exception handler should find how
    many bytes left in the partial block (andi a2, STORMASK), add that to
    the partial block end address (a2), and subtract the faulting address to
    get the remainder. Currently it incorrectly subtracts the partial block
    start address (t1), which has additionally been clobbered to generate a
    jump target in memset_partial. Fix this by adding the block end address
    instead.
    
    This issue was found with the following test code:
          int j, k;
          for (j = 0; j < 512; j++) {
            if ((k = clear_user(NULL, j)) != j) {
               pr_err("clear_user (NULL %d) returned %d\n", j, k);
            }
          }
    Which now passes on Creator Ci40 (MIPS32) and Cavium Octeon II (MIPS64).
    
    Suggested-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/19108/
    Signed-off-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db4e16215c0a1d1a3c0b44c36e2902435d1523f0
Author: Matt Redfearn <matt.redfearn@mips.com>
Date:   Thu Mar 29 10:28:23 2018 +0100

    MIPS: memset.S: EVA & fault support for small_memset
    
    commit 8a8158c85e1e774a44fbe81106fa41138580dfd1 upstream.
    
    The MIPS kernel memset / bzero implementation includes a small_memset
    branch which is used when the region to be set is smaller than a long (4
    bytes on 32bit, 8 bytes on 64bit). The current small_memset
    implementation uses a simple store byte loop to write the destination.
    There are 2 issues with this implementation:
    
    1. When EVA mode is active, user and kernel address spaces may overlap.
    Currently the use of the sb instruction means kernel mode addressing is
    always used and an intended write to userspace may actually overwrite
    some critical kernel data.
    
    2. If the write triggers a page fault, for example by calling
    __clear_user(NULL, 2), instead of gracefully handling the fault, an OOPS
    is triggered.
    
    Fix these issues by replacing the sb instruction with the EX() macro,
    which will emit EVA compatible instuctions as required. Additionally
    implement a fault fixup for small_memset which sets a2 to the number of
    bytes that could not be cleared (as defined by __clear_user).
    
    Reported-by: Chuanhua Lei <chuanhua.lei@intel.com>
    Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/18975/
    Signed-off-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29a095a08a1e3ac192411240fdb2fd4673264435
Author: Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
Date:   Fri Apr 6 01:09:36 2018 +0200

    HID: hidraw: Fix crash on HIDIOCGFEATURE with a destroyed device
    
    commit a955358d54695e4ad9f7d6489a7ac4d69a8fc711 upstream.
    
    Doing `ioctl(HIDIOCGFEATURE)` in a tight loop on a hidraw device
    and then disconnecting the device, or unloading the driver, can
    cause a NULL pointer dereference.
    
    When a hidraw device is destroyed it sets 0 to `dev->exist`.
    Most functions check 'dev->exist' before doing its work, but
    `hidraw_get_report()` was missing that check.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd8c5937a7b3d903d6ec1ace829fcfaa978f099b
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Apr 19 18:16:15 2018 +0200

    ALSA: rawmidi: Fix missing input substream checks in compat ioctls
    
    commit 8a56ef4f3ffba9ebf4967b61ef600b0a7ba10f11 upstream.
    
    Some rawmidi compat ioctls lack of the input substream checks
    (although they do check only for rfile->output).  This many eventually
    lead to an Oops as NULL substream is passed to the rawmidi core
    functions.
    
    Fix it by adding the proper checks before each function call.
    
    The bug was spotted by syzkaller.
    
    Reported-by: syzbot+f7a0348affc3b67bc617@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f5ded53d953138865c1c8ffa01aed74a476f540d
Author: Paul Parsons <lost.distance@yahoo.com>
Date:   Sat Apr 2 12:32:30 2016 +0100

    drm/radeon: Fix PCIe lane width calculation
    
    commit 85e290d92b4b794d0c758c53007eb4248d385386 upstream.
    
    Two years ago I tried an AMD Radeon E8860 embedded GPU with the drm driver.
    The dmesg output included driver warnings about an invalid PCIe lane width.
    Tracking the problem back led to si_set_pcie_lane_width_in_smc().
    The calculation of the lane widths via ATOM_PPLIB_PCIE_LINK_WIDTH_MASK and
    ATOM_PPLIB_PCIE_LINK_WIDTH_SHIFT macros did not increment the resulting
    value, per the comment in pptable.h ("lanes - 1"), and per usage elsewhere.
    Applying the increment silenced the warnings.
    The code has not changed since, so either my analysis was incorrect or the
    bug has gone unnoticed. Hence submitting this as an RFC.
    
    Acked-by: Christian König <christian.koenig@amd.com>
    Acked-by: Chunming Zhou <david1.zhou@amd.com>
    Signed-off-by: Paul Parsons <lost.distance@yahoo.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 628597956599f0f6766e0b6cfe22aa8dcff6cf5a
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Thu Mar 29 22:10:35 2018 -0400

    ext4: don't allow r/w mounts if metadata blocks overlap the superblock
    
    commit 18db4b4e6fc31eda838dd1c1296d67dbcb3dc957 upstream.
    
    If some metadata block, such as an allocation bitmap, overlaps the
    superblock, it's very likely that if the file system is mounted
    read/write, the results will not be pretty.  So disallow r/w mounts
    for file systems corrupted in this particular way.
    
    Backport notes:
    3.18.y is missing bc98a42c1f7d ("VFS: Convert sb->s_flags & MS_RDONLY to sb_rdonly(sb)")
    and e462ec50cb5f ("VFS: Differentiate mount flags (MS_*) from internal superblock flags")
    so we simply use the sb MS_RDONLY check from pre bc98a42c1f7d in place of the sb_rdonly
    function used in the upstream variant of the patch.
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Harsh Shandilya <harsh@prjkt.io>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf1b17715e9117c1c22c7a24e38f27a92eb98413
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Thu Mar 29 21:56:09 2018 -0400

    ext4: fail ext4_iget for root directory if unallocated
    
    commit 8e4b5eae5decd9dfe5a4ee369c22028f90ab4c44 upstream.
    
    If the root directory has an i_links_count of zero, then when the file
    system is mounted, then when ext4_fill_super() notices the problem and
    tries to call iput() the root directory in the error return path,
    ext4_evict_inode() will try to free the inode on disk, before all of
    the file system structures are set up, and this will result in an OOPS
    caused by a NULL pointer dereference.
    
    This issue has been assigned CVE-2018-1092.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=199179
    https://bugzilla.redhat.com/show_bug.cgi?id=1560777
    
    Reported-by: Wen Xu <wen.xu@gatech.edu>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    [harsh@prjkt.io: s/EFSCORRUPTED/EUCLEAN/ fs/ext4/inode.c]
    Signed-off-by: Harsh Shandilya <harsh@prjkt.io>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9c4ad4d4c12f178671ebb2b2f7e84aab32d0972
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sat Apr 7 11:48:58 2018 +0200

    ALSA: pcm: Fix endless loop for XRUN recovery in OSS emulation
    
    commit e15dc99dbb9cf99f6432e8e3c0b3a8f7a3403a86 upstream.
    
    The commit 02a5d6925cd3 ("ALSA: pcm: Avoid potential races between OSS
    ioctls and read/write") split the PCM preparation code to a locked
    version, and it added a sanity check of runtime->oss.prepare flag
    along with the change.  This leaded to an endless loop when the stream
    gets XRUN: namely, snd_pcm_oss_write3() and co call
    snd_pcm_oss_prepare() without setting runtime->oss.prepare flag and
    the loop continues until the PCM state reaches to another one.
    
    As the function is supposed to execute the preparation
    unconditionally, drop the invalid state check there.
    
    The bug was triggered by syzkaller.
    
    Fixes: 02a5d6925cd3 ("ALSA: pcm: Avoid potential races between OSS ioctls and read/write")
    Reported-by: syzbot+150189c103427d31a053@syzkaller.appspotmail.com
    Reported-by: syzbot+7e3f31a52646f939c052@syzkaller.appspotmail.com
    Reported-by: syzbot+4f2016cf5185da7759dc@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45ee7eb686073d883a16ceade8da36cb94f34c80
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Mar 27 14:32:23 2018 +0200

    ALSA: pcm: Fix mutex unbalance in OSS emulation ioctls
    
    commit f6d297df4dd47ef949540e4a201230d0c5308325 upstream.
    
    The previous fix 40cab6e88cb0 ("ALSA: pcm: Return -EBUSY for OSS
    ioctls changing busy streams") introduced some mutex unbalance; the
    check of runtime->oss.rw_ref was inserted in a wrong place after the
    mutex lock.
    
    This patch fixes the inconsistency by rewriting with the helper
    functions to lock/unlock parameters with the stream check.
    
    Fixes: 40cab6e88cb0 ("ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a653caa0ca1bb87bb60efb371eaec0fa2a5b3676
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Mar 23 08:03:26 2018 +0100

    ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams
    
    commit 40cab6e88cb0b6c56d3f30b7491a20e803f948f6 upstream.
    
    OSS PCM stream management isn't modal but it allows ioctls issued at
    any time for changing the parameters.  In the previous hardening
    patch ("ALSA: pcm: Avoid potential races between OSS ioctls and
    read/write"), we covered these races and prevent the corruption by
    protecting the concurrent accesses via params_lock mutex.  However,
    this means that some ioctls that try to change the stream parameter
    (e.g. channels or format) would be blocked until the read/write
    finishes, and it may take really long.
    
    Basically changing the parameter while reading/writing is an invalid
    operation, hence it's even more user-friendly from the API POV if it
    returns -EBUSY in such a situation.
    
    This patch adds such checks in the relevant ioctls with the addition
    of read/write access refcount.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a20304a59636dde34670b17c01ded4465f4620f9
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Mar 22 18:10:14 2018 +0100

    ALSA: pcm: Avoid potential races between OSS ioctls and read/write
    
    commit 02a5d6925cd34c3b774bdb8eefb057c40a30e870 upstream.
    
    Although we apply the params_lock mutex to the whole read and write
    operations as well as snd_pcm_oss_change_params(), we may still face
    some races.
    
    First off, the params_lock is taken inside the read and write loop.
    This is intentional for avoiding the too long locking, but it allows
    the in-between parameter change, which might lead to invalid
    pointers.  We check the readiness of the stream and set up via
    snd_pcm_oss_make_ready() at the beginning of read and write, but it's
    called only once, by assuming that it remains ready in the rest.
    
    Second, many ioctls that may change the actual parameters
    (i.e. setting runtime->oss.params=1) aren't protected, hence they can
    be processed in a half-baked state.
    
    This patch is an attempt to plug these holes.  The stream readiness
    check is moved inside the read/write inner loop, so that the stream is
    always set up in a proper state before further processing.  Also, each
    ioctl that may change the parameter is wrapped with the params_lock
    for avoiding the races.
    
    The issues were triggered by syzkaller in a few different scenarios,
    particularly the one below appearing as GPF in loopback_pos_update.
    
    Reported-by: syzbot+c4227aec125487ec3efa@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 422cc8083759b4a1a5e5f4c4a27246a7d9aa67fd
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Jan 9 08:51:02 2018 +0100

    ALSA: pcm: Use ERESTARTSYS instead of EINTR in OSS emulation
    
    commit c64ed5dd9feba193c76eb460b451225ac2a0d87b upstream.
    
    Fix the last standing EINTR in the whole subsystem.  Use more correct
    ERESTARTSYS for pending signals.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad93d1325f53c6103fc323d913cf6ebcb57db3d3
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Sat Dec 19 15:23:13 2015 +0100

    ALSA: oss: consolidate kmalloc/memset 0 call to kzalloc
    
    commit 46325371b230cc66c743925c930a17e7d0b8211e upstream.
    
    This is an API consolidation only. The use of kmalloc + memset to 0
    is equivalent to kzalloc.
    
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 19188135555a52cc1481722259aaed5e09a68c7c
Author: Igor Pylypiv <igor.pylypiv@gmail.com>
Date:   Tue Mar 6 23:47:25 2018 -0800

    watchdog: f71808e_wdt: Fix WD_EN register read
    
    commit 977f6f68331f94bb72ad84ee96b7b87ce737d89d upstream.
    
    F71808FG_FLAG_WD_EN defines bit position, not a bitmask
    
    Signed-off-by: Igor Pylypiv <igor.pylypiv@gmail.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7559e149d6726cfeb3e872016d08ea183e0f7691
Author: Mikhail Lappo <mikhail.lappo@esrlabs.com>
Date:   Fri Feb 2 16:17:46 2018 -0200

    thermal: imx: Fix race condition in imx_thermal_probe()
    
    commit cf1ba1d73a33944d8c1a75370a35434bf146b8a7 upstream.
    
    When device boots with T > T_trip_1 and requests interrupt,
    the race condition takes place. The interrupt comes before
    THERMAL_DEVICE_ENABLED is set. This leads to an attempt to
    reading sensor value from irq and disabling the sensor, based on
    the data->mode field, which expected to be THERMAL_DEVICE_ENABLED,
    but still stays as THERMAL_DEVICE_DISABLED. Afher this issue
    sensor is never re-enabled, as the driver state is wrong.
    
    Fix this problem by setting the 'data' members prior to
    requesting the interrupts.
    
    Fixes: 37713a1e8e4c ("thermal: imx: implement thermal alarm interrupt handling")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Mikhail Lappo <mikhail.lappo@esrlabs.com>
    Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
    Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
    Acked-by: Dong Aisheng <aisheng.dong@nxp.com>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3201e7ec1ce2f91ae08f64e7b447fbfbaa508ee6
Author: Richard Genoud <richard.genoud@gmail.com>
Date:   Tue Mar 13 16:27:02 2018 +0100

    clk: mvebu: armada-38x: add support for missing clocks
    
    commit 6a4a4595804548e173f0763a0e7274a3521c59a9 upstream.
    
    Clearfog boards can come with a CPU clocked at 1600MHz (commercial)
    or 1333MHz (industrial).
    
    They have also some dip-switches to select a different clock (666, 800,
    1066, 1200).
    
    The funny thing is that the recovery button is on the MPP34 fq selector.
    So, when booting an industrial board with this button down, the frequency
    666MHz is selected (and the kernel didn't boot).
    
    This patch add all the missing clocks.
    
    The only mode I didn't test is 2GHz (uboot found 4294MHz instead :/ ).
    
    Fixes: 0e85aeced4d6 ("clk: mvebu: add clock support for Armada 380/385")
    Cc: <stable@vger.kernel.org> # 3.16.x: 9593f4f56cf5: clk: mvebu: armada-38x: add support for 1866MHz variants
    Cc: <stable@vger.kernel.org> # 3.16.x
    
    Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
    Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f9b08f46c62088fa3f9acda44e0f9756b68ea97d
Author: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Date:   Wed May 24 16:58:52 2017 +0200

    clk: mvebu: armada-38x: add support for 1866MHz variants
    
    commit 9593f4f56cf5d1c443f66660a0c7f01de38f979d upstream.
    
    The Linksys WRT3200ACM CPU is clocked at 1866MHz. Add 1866MHz to the
    list of supported CPU frequencies. Also update multiplier and divisor
    for the l2clk and ddrclk.
    
    Noticed by the following warning:
    [    0.000000] Selected CPU frequency (16) unsupported
    
    Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
    Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d2242de71efdad14a341e43b23969467c39068e
Author: Alex Smith <alex.smith@imgtec.com>
Date:   Wed Mar 28 18:00:43 2018 -0300

    mmc: jz4740: Fix race condition in IRQ mask update
    
    commit a04f0017c22453613d5f423326b190c61e3b4f98 upstream.
    
    A spinlock is held while updating the internal copy of the IRQ mask,
    but not while writing it to the actual IMASK register. After the lock
    is released, an IRQ can occur before the IMASK register is written.
    If handling this IRQ causes the mask to be changed, when the handler
    returns back to the middle of the first mask update, a stale value
    will be written to the mask register.
    
    If this causes an IRQ to become unmasked that cannot have its status
    cleared by writing a 1 to it in the IREG register, e.g. the SDIO IRQ,
    then we can end up stuck with the same IRQ repeatedly being fired but
    not handled. Normally the MMC IRQ handler attempts to clear any
    unexpected IRQs by writing IREG, but for those that cannot be cleared
    in this way then the IRQ will just repeatedly fire.
    
    This was resulting in lockups after a while of using Wi-Fi on the
    CI20 (GitHub issue #19).
    
    Resolve by holding the spinlock until after the IMASK register has
    been updated.
    
    Cc: stable@vger.kernel.org
    Link: https://github.com/MIPS/CI20_linux/issues/19
    Fixes: 61bfbdb85687 ("MMC: Add support for the controller on JZ4740 SoCs.")
    Tested-by: Mathieu Malaterre <malat@debian.org>
    Signed-off-by: Alex Smith <alex.smith@imgtec.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 374b5cb5ed75c6a65a0c7450384a2f47a7c0f0f1
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Mon Feb 19 12:22:53 2018 -0500

    jbd2: if the journal is aborted then don't allow update of the log tail
    
    commit 85e0c4e89c1b864e763c4e3bb15d0b6d501ad5d9 upstream.
    
    This updates the jbd2 superblock unnecessarily, and on an abort we
    shouldn't truncate the log.
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b4d09fec3780bce6ea3e382c08b44c8f7c76fa22
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Feb 25 18:21:33 2017 -0400

    random: use a tighter cap in credit_entropy_bits_safe()
    
    commit 9f886f4d1d292442b2f22a0a33321eae821bde40 upstream.
    
    This fixes a harmless UBSAN where root could potentially end up
    causing an overflow while bumping the entropy_total field (which is
    ignored once the entropy pool has been initialized, and this generally
    is completed during the boot sequence).
    
    This is marginal for the stable kernel series, but it's a really
    trivial patch, and it fixes UBSAN warning that might cause security
    folks to get overly excited for no reason.
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reported-by: Chen Feng <puck.chen@hisilicon.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0522f31a20e742bb544df2e559e8e93312f718d
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Tue Dec 19 12:44:56 2017 +0300

    thunderbolt: Resume control channel after hibernation image is created
    
    commit f2a659f7d8d5da803836583aa16df06bdf324252 upstream.
    
    The driver misses implementation of PM hook that undoes what
    ->freeze_noirq() does after the hibernation image is created. This means
    the control channel is not resumed properly and the Thunderbolt bus
    becomes useless in later stages of hibernation (when the image is stored
    or if the operation fails).
    
    Fix this by pointing ->thaw_noirq to driver nhi_resume_noirq(). This
    makes sure the control channel is resumed properly.
    
    Fixes: 23dd5bb49d98 ("thunderbolt: Add suspend/hibernate support")
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 78af862b2b606e951e7da84698a3f699460d1de8
Author: James Kelly <jamespeterkelly@gmail.com>
Date:   Mon Mar 19 21:29:50 2018 +1100

    ASoC: ssm2602: Replace reg_default_raw with reg_default
    
    commit a01df75ce737951ad13a08d101306e88c3f57cb2 upstream.
    
    SSM2602 driver is broken on recent kernels (at least
    since 4.9). User space applications such as amixer or
    alsamixer get EIO when attempting to access codec
    controls via the relevant IOCTLs.
    
    Root cause of these failures is the regcache_hw_init
    function in drivers/base/regmap/regcache.c, which
    prevents regmap cache initalization from the
    reg_defaults_raw element of the regmap_config structure
    when registers are write only. It also disables the
    regmap cache entirely when all registers are write only
    or volatile as is the case for the SSM2602 driver.
    
    Using the reg_defaults element of the regmap_config
    structure rather than the reg_defaults_raw element to
    initalize the regmap cache avoids the logic in the
    regcache_hw_init function entirely. It also makes this
    driver consistent with other ASoC codec drivers, as
    this driver was the ONLY codec driver that used the
    reg_defaults_raw element to initalize the cache.
    
    Tested on Digilent Zybo Z7 development board which has
    a SSM2603 codec chip connected to a Xilinx Zynq SoC.
    
    Signed-off-by: James Kelly <jamespeterkelly@gmail.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a3b6e7d25dcd77eb13ff3cec14416f968196824
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Tue Apr 10 21:49:33 2018 +1000

    powerpc/powernv: Fix OPAL NVRAM driver OPAL_BUSY loops
    
    commit 3b8070335f751aac9f1526ae2e012e6f5b8b0f21 upstream.
    
    The OPAL NVRAM driver does not sleep in case it gets OPAL_BUSY or
    OPAL_BUSY_EVENT from firmware, which causes large scheduling
    latencies, and various lockup errors to trigger (again, BMC reboot
    can cause it).
    
    Fix this by converting it to the standard form OPAL_BUSY loop that
    sleeps.
    
    Fixes: 628daa8d5abf ("powerpc/powernv: Add RTC and NVRAM support plus RTAS fallbacks")
    Depends-on: 34dd25de9fe3 ("powerpc/powernv: define a standard delay for OPAL_BUSY type retry loops")
    Cc: stable@vger.kernel.org # v3.2+
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30a3acbc62a8685963d2792e3d1701ec0c54786a
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Tue Apr 10 21:49:31 2018 +1000

    powerpc/powernv: define a standard delay for OPAL_BUSY type retry loops
    
    commit 34dd25de9fe3f60bfdb31b473bf04b28262d0896 upstream.
    
    This is the start of an effort to tidy up and standardise all the
    delays. Existing loops have a range of delay/sleep periods from 1ms
    to 20ms, and some have no delay. They all loop forever except rtc,
    which times out after 10 retries, and that uses 10ms delays. So use
    10ms as our standard delay. The OPAL maintainer agrees 10ms is a
    reasonable starting point.
    
    The idea is to use the same recipe everywhere, once this is proven to
    work then it will be documented as an OPAL API standard. Then both
    firmware and OS can agree, and if a particular call needs something
    else, then that can be documented with reasoning.
    
    This is not the end-all of this effort, it's just a relatively easy
    change that fixes some existing high latency delays. There should be
    provision for standardising timeouts and/or interruptible loops where
    possible, so non-fatal firmware errors don't cause hangs.
    
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Nathan Chancellor <natechancellor@gmail.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f46c991587015b788acc6eeed374c04ffad869a0
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Thu Mar 22 20:41:46 2018 +1000

    powerpc/64: Fix smp_wmb barrier definition use use lwsync consistently
    
    commit 0bfdf598900fd62869659f360d3387ed80eb71cf upstream.
    
    asm/barrier.h is not always included after asm/synch.h, which meant
    it was missing __SUBARCH_HAS_LWSYNC, so in some files smp_wmb() would
    be eieio when it should be lwsync. kernel/time/hrtimer.c is one case.
    
    __SUBARCH_HAS_LWSYNC is only used in one place, so just fold it in
    to where it's used. Previously with my small simulator config, 377
    instances of eieio in the tree. After this patch there are 55.
    
    Fixes: 46d075be585e ("powerpc: Optimise smp_wmb")
    Cc: stable@vger.kernel.org # v2.6.29+
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 515bf6232da6c86143d8eda8b945573075f44b78
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Tue Mar 27 01:02:33 2018 +1000

    powerpc/powernv: Handle unknown OPAL errors in opal_nvram_write()
    
    commit 741de617661794246f84a21a02fc5e327bffc9ad upstream.
    
    opal_nvram_write currently just assumes success if it encounters an
    error other than OPAL_BUSY or OPAL_BUSY_EVENT. Have it return -EIO
    on other errors instead.
    
    Fixes: 628daa8d5abf ("powerpc/powernv: Add RTC and NVRAM support plus RTAS fallbacks")
    Cc: stable@vger.kernel.org # v3.2+
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
    Acked-by: Stewart Smith <stewart@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46f9006e246074f7c2fdda61f7e9826484006fb2
Author: Aaron Ma <aaron.ma@canonical.com>
Date:   Mon Jan 8 10:41:40 2018 +0800

    HID: i2c-hid: fix size check and type usage
    
    commit ac75a041048b8c1f7418e27621ca5efda8571043 upstream.
    
    When convert char array with signed int, if the inbuf[x] is negative then
    upper bits will be set to 1. Fix this by using u8 instead of char.
    
    ret_size has to be at least 3, hid_input_report use it after minus 2 bytes.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d0e3d32b59780725de33b6e96a3d17e0859523c3
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Mon Mar 19 13:07:35 2018 -0700

    usb: dwc3: pci: Properly cleanup resource
    
    commit cabdf83dadfb3d83eec31e0f0638a92dbd716435 upstream.
    
    Platform device is allocated before adding resources. Make sure to
    properly cleanup on error case.
    
    Cc: <stable@vger.kernel.org>
    Fixes: f1c7e7108109 ("usb: dwc3: convert to pcim_enable_device()")
    Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb62f3d235e39a3a2513d5d372066e88abfffd90
Author: Zhengjun Xing <zhengjun.xing@linux.intel.com>
Date:   Wed Mar 21 13:29:42 2018 +0800

    USB:fix USB3 devices behind USB3 hubs not resuming at hibernate thaw
    
    commit 64627388b50158fd24d6ad88132525b95a5ef573 upstream.
    
    USB3 hubs don't support global suspend.
    
    USB3 specification 10.10, Enhanced SuperSpeed hubs only support selective
    suspend and resume, they do not support global suspend/resume where the
    hub downstream facing ports states are not affected.
    
    When system enters hibernation it first enters freeze process where only
    the root hub enters suspend, usb_port_suspend() is not called for other
    devices, and suspend status flags are not set for them. Other devices are
    expected to suspend globally. Some external USB3 hubs will suspend the
    downstream facing port at global suspend. These devices won't be resumed
    at thaw as the suspend status flag is not set.
    
    A USB3 removable hard disk connected through a USB3 hub that won't resume
    at thaw will fail to synchronize SCSI cache, return “cmd cmplt err -71”
    error, and needs a 60 seconds timeout which causing system hang for 60s
    before the USB host reset the port for the USB3 removable hard disk to
    recover.
    
    Fix this by always calling usb_port_suspend() during freeze for USB3
    devices.
    
    Signed-off-by: Zhengjun Xing <zhengjun.xing@linux.intel.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d97424ac65f22e68ac834c2f89a089a6ea367488
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Mon Feb 12 13:55:23 2018 +0300

    ACPI / hotplug / PCI: Check presence of slot itself in get_slot_status()
    
    commit 13d3047c81505cc0fb9bdae7810676e70523c8bf upstream.
    
    Mike Lothian reported that plugging in a USB-C device does not work
    properly in his Dell Alienware system.  This system has an Intel Alpine
    Ridge Thunderbolt controller providing USB-C functionality.  In these
    systems the USB controller (xHCI) is hotplugged whenever a device is
    connected to the port using ACPI-based hotplug.
    
    The ACPI description of the root port in question is as follows:
    
      Device (RP01)
      {
          Name (_ADR, 0x001C0000)
    
          Device (PXSX)
          {
              Name (_ADR, 0x02)
    
              Method (_RMV, 0, NotSerialized)
              {
                  // ...
              }
          }
    
    Here _ADR 0x02 means device 0, function 2 on the bus under root port (RP01)
    but that seems to be incorrect because device 0 is the upstream port of the
    Alpine Ridge PCIe switch and it has no functions other than 0 (the bridge
    itself).  When we get ACPI Notify() to the root port resulting from
    connecting a USB-C device, Linux tries to read PCI_VENDOR_ID from device 0,
    function 2 which of course always returns 0xffffffff because there is no
    such function and we never find the device.
    
    In Windows this works fine.
    
    Now, since we get ACPI Notify() to the root port and not to the PXSX device
    we should actually start our scan from there as well and not from the
    non-existent PXSX device.  Fix this by checking presence of the slot itself
    (function 0) if we fail to do that otherwise.
    
    While there use pci_bus_read_dev_vendor_id() in get_slot_status(), which is
    the recommended way to read Device and Vendor IDs of devices on PCI buses.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=198557
    Reported-by: Mike Lothian <mike@fireburn.co.uk>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 456374e60fd3d6a26db78693be82e40648940b3e
Author: Jason Andryuk <jandryuk@gmail.com>
Date:   Wed Feb 28 07:23:23 2018 -0500

    xen-netfront: Fix hang on device removal
    
    commit c2d2e6738a209f0f9dffa2dc8e7292fc45360d61 upstream.
    
    A toolstack may delete the vif frontend and backend xenstore entries
    while xen-netfront is in the removal code path.  In that case, the
    checks for xenbus_read_driver_state would return XenbusStateUnknown, and
    xennet_remove would hang indefinitely.  This hang prevents system
    shutdown.
    
    xennet_remove must be able to handle XenbusStateUnknown, and
    netback_changed must also wake up the wake_queue for that state as well.
    
    Fixes: 5b5971df3bc2 ("xen-netfront: remove warning when unloading module")
    
    Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
    Cc: Eduardo Otubo <otubo@redhat.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0e3def03b68b68147834bfe83677ff6c558bd5a
Author: Nicolas Ferre <nicolas.ferre@microchip.com>
Date:   Tue Mar 13 16:20:05 2018 +0100

    ARM: dts: at91: at91sam9g25: fix mux-mask pinctrl property
    
    commit e8fd0adf105e132fd84545997bbef3d5edc2c9c1 upstream.
    
    There are only 19 PIOB pins having primary names PB0-PB18. Not all of them
    have a 'C' function. So the pinctrl property mask ends up being the same as the
    other SoC of the at91sam9x5 series.
    
    Reported-by: Marek Sieranski <marek.sieranski@microchip.com>
    Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Cc: <stable@vger.kernel.org> # v3.8+
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1daf93b8c0b776b486efe72606b1ba5e1cef6c7e
Author: Heinrich Schuchardt <xypron.glpk@gmx.de>
Date:   Thu Mar 29 10:48:28 2018 -0500

    usb: musb: gadget: misplaced out of bounds check
    
    commit af6f8529098aeb0e56a68671b450cf74e7a64fcd upstream.
    
    musb->endpoints[] has array size MUSB_C_NUM_EPS.
    We must check array bounds before accessing the array and not afterwards.
    
    Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b586f698448ed73502bacec5cb9189144024c8b5
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Apr 13 15:35:13 2018 -0700

    resource: fix integer overflow at reallocation
    
    commit 60bb83b81169820c691fbfa33a6a4aef32aa4b0b upstream.
    
    We've got a bug report indicating a kernel panic at booting on an x86-32
    system, and it turned out to be the invalid PCI resource assigned after
    reallocation.  __find_resource() first aligns the resource start address
    and resets the end address with start+size-1 accordingly, then checks
    whether it's contained.  Here the end address may overflow the integer,
    although resource_contains() still returns true because the function
    validates only start and end address.  So this ends up with returning an
    invalid resource (start > end).
    
    There was already an attempt to cover such a problem in the commit
    47ea91b4052d ("Resource: fix wrong resource window calculation"), but
    this case is an overseen one.
    
    This patch adds the validity check of the newly calculated resource for
    avoiding the integer overflow problem.
    
    Bugzilla: http://bugzilla.opensuse.org/show_bug.cgi?id=1086739
    Link: http://lkml.kernel.org/r/s5hpo37d5l8.wl-tiwai@suse.de
    Fixes: 23c570a67448 ("resource: ability to resize an allocated resource")
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Reported-by: Michael Henders <hendersm@shaw.ca>
    Tested-by: Michael Henders <hendersm@shaw.ca>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Ram Pai <linuxram@us.ibm.com>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: <stable@vger.kernel.org>
    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 8b85ff3d8074943482dd54f295cda4f1e31077c1
Author: Andrew Morton <akpm@linux-foundation.org>
Date:   Tue Apr 10 16:34:41 2018 -0700

    fs/reiserfs/journal.c: add missing resierfs_warning() arg
    
    commit 9ad553abe66f8be3f4755e9fa0a6ba137ce76341 upstream.
    
    One use of the reiserfs_warning() macro in journal_init_dev() is missing
    a parameter, causing the following warning:
    
      REISERFS warning (device loop0): journal_init_dev: Cannot open '%s': %i journal_init_dev:
    
    This also causes a WARN_ONCE() warning in the vsprintf code, and then a
    panic if panic_on_warn is set.
    
      Please remove unsupported %/ in format string
      WARNING: CPU: 1 PID: 4480 at lib/vsprintf.c:2138 format_decode+0x77f/0x830 lib/vsprintf.c:2138
      Kernel panic - not syncing: panic_on_warn set ...
    
    Just add another string argument to the macro invocation.
    
    Addresses https://syzkaller.appspot.com/bug?id=0627d4551fdc39bf1ef5d82cd9eef587047f7718
    
    Link: http://lkml.kernel.org/r/d678ebe1-6f54-8090-df4c-b9affad62293@infradead.org
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: <syzbot+6bd77b88c1977c03f584@syzkaller.appspotmail.com>
    Tested-by: Randy Dunlap <rdunlap@infradead.org>
    Acked-by: Jeff Mahoney <jeffm@suse.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Jan Kara <jack@suse.com>
    Cc: <stable@vger.kernel.org>
    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 5aae810c2c40b7d590e9b4467f01a2dbf14897f2
Author: Richard Weinberger <richard@nod.at>
Date:   Sat Mar 3 11:45:54 2018 +0100

    ubi: Reject MLC NAND
    
    commit b5094b7f135be34630e3ea8a98fa215715d0f29d upstream.
    
    While UBI and UBIFS seem to work at first sight with MLC NAND, you will
    most likely lose all your data upon a power-cut or due to read/write
    disturb.
    In order to protect users from bad surprises, refuse to attach to MLC
    NAND.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Acked-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Acked-by: Artem Bityutskiy <dedekind1@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c9fcf71e31092eff1d2e28ce0e96e918fbab573
Author: Romain Izard <romain.izard.pro@gmail.com>
Date:   Mon Jan 29 11:18:20 2018 +0100

    ubi: Fix error for write access
    
    commit 78a8dfbabbece22bee58ac4cb26cab10e7a19c5d upstream.
    
    When opening a device with write access, ubiblock_open returns an error
    code. Currently, this error code is -EPERM, but this is not the right
    value.
    
    The open function for other block devices returns -EROFS when opening
    read-only devices with FMODE_WRITE set. When used with dm-verity, the
    veritysetup userspace tool is expecting EROFS, and refuses to use the
    ubiblock device.
    
    Use -EROFS for ubiblock as well. As a result, veritysetup accepts the
    ubiblock device as valid.
    
    Cc: stable@vger.kernel.org
    Fixes: 9d54c8a33eec (UBI: R/O block driver on top of UBI volumes)
    Signed-off-by: Romain Izard <romain.izard.pro@gmail.com>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aee5ff83967e9925c966e595bd3c13d3dff2c515
Author: Richard Weinberger <richard@nod.at>
Date:   Wed Jan 17 19:12:42 2018 +0100

    ubifs: Check ubifs_wbuf_sync() return code
    
    commit aac17948a7ce01fb60b9ee6cf902967a47b3ce26 upstream.
    
    If ubifs_wbuf_sync() fails we must not write a master node with the
    dirty marker cleared.
    Otherwise it is possible that in case of an IO error while syncing we
    mark the filesystem as clean and UBIFS refuses to recover upon next
    mount.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 1e51764a3c2a ("UBIFS: add new flash file system")
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 51509ce03e0bfbb7f03ed0b5fdce45708a437af6
Author: Tejaswi Tanikella <tejaswit@codeaurora.org>
Date:   Wed Apr 11 16:34:47 2018 +0530

    slip: Check if rstate is initialized before uncompressing
    
    
    [ Upstream commit 3f01ddb962dc506916c243f9524e8bef97119b77 ]
    
    On receiving a packet the state index points to the rstate which must be
    used to fill up IP and TCP headers. But if the state index points to a
    rstate which is unitialized, i.e. filled with zeros, it gets stuck in an
    infinite loop inside ip_fast_csum trying to compute the ip checsum of a
    header with zero length.
    
    89.666953:   <2> [<ffffff9dd3e94d38>] slhc_uncompress+0x464/0x468
    89.666965:   <2> [<ffffff9dd3e87d88>] ppp_receive_nonmp_frame+0x3b4/0x65c
    89.666978:   <2> [<ffffff9dd3e89dd4>] ppp_receive_frame+0x64/0x7e0
    89.666991:   <2> [<ffffff9dd3e8a708>] ppp_input+0x104/0x198
    89.667005:   <2> [<ffffff9dd3e93868>] pppopns_recv_core+0x238/0x370
    89.667027:   <2> [<ffffff9dd4428fc8>] __sk_receive_skb+0xdc/0x250
    89.667040:   <2> [<ffffff9dd3e939e4>] pppopns_recv+0x44/0x60
    89.667053:   <2> [<ffffff9dd4426848>] __sock_queue_rcv_skb+0x16c/0x24c
    89.667065:   <2> [<ffffff9dd4426954>] sock_queue_rcv_skb+0x2c/0x38
    89.667085:   <2> [<ffffff9dd44f7358>] raw_rcv+0x124/0x154
    89.667098:   <2> [<ffffff9dd44f7568>] raw_local_deliver+0x1e0/0x22c
    89.667117:   <2> [<ffffff9dd44c8ba0>] ip_local_deliver_finish+0x70/0x24c
    89.667131:   <2> [<ffffff9dd44c92f4>] ip_local_deliver+0x100/0x10c
    
    ./scripts/faddr2line vmlinux slhc_uncompress+0x464/0x468 output:
     ip_fast_csum at arch/arm64/include/asm/checksum.h:40
     (inlined by) slhc_uncompress at drivers/net/slip/slhc.c:615
    
    Adding a variable to indicate if the current rstate is initialized. If
    such a packet arrives, move to toss state.
    
    Signed-off-by: Tejaswi Tanikella <tejaswit@codeaurora.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e859bf5a8b5bded23c8d35e7b25468ec3ccc32b
Author: Vasily Gorbik <gor@linux.ibm.com>
Date:   Tue Apr 3 16:02:15 2018 +0200

    s390/ipl: ensure loadparm valid flag is set
    
    commit 15deb080a6087b73089139569558965750e69d67 upstream.
    
    When loadparm is set in reipl parm block, the kernel should also set
    DIAG308_FLAGS_LP_VALID flag.
    
    This fixes loadparm ignoring during z/VM fcp -> ccw reipl and kvm direct
    boot -> ccw reipl.
    
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c205d6bffcae48fe1d325e82b80400f31ba352ab
Author: Julian Wiedmann <jwi@linux.vnet.ibm.com>
Date:   Wed Mar 7 14:01:01 2018 +0100

    s390/qdio: don't merge ERROR output buffers
    
    commit 0cf1e05157b9e5530dcc3ca9fec9bf617fc93375 upstream.
    
    On an Output queue, both EMPTY and PENDING buffer states imply that the
    buffer is ready for completion-processing by the upper-layer drivers.
    
    So for a non-QEBSM Output queue, get_buf_states() merges mixed
    batches of PENDING and EMPTY buffers into one large batch of EMPTY
    buffers. The upper-layer driver (ie. qeth) later distuingishes PENDING
    from EMPTY by inspecting the slsb_state for
    QDIO_OUTBUF_STATE_FLAG_PENDING.
    
    But the merge logic in get_buf_states() contains a bug that causes us to
    erronously also merge ERROR buffers into such a batch of EMPTY buffers
    (ERROR is 0xaf, EMPTY is 0xa1; so ERROR & EMPTY == EMPTY).
    Effectively, most outbound ERROR buffers are currently discarded
    silently and processed as if they had succeeded.
    
    Note that this affects _all_ non-QEBSM device types, not just IQD with CQ.
    
    Fix it by explicitly spelling out the exact conditions for merging.
    
    For extracting the "get initial state" part out of the loop, this relies
    on the fact that get_buf_states() is never called with a count of 0. The
    QEBSM path already strictly requires this, and the two callers with
    variable 'count' make sure of it.
    
    Fixes: 104ea556ee7f ("qdio: support asynchronous delivery of storage blocks")
    Cc: <stable@vger.kernel.org> #v3.2+
    Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
    Reviewed-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
    Reviewed-by: Benjamin Block <bblock@linux.vnet.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9f07828597e4162a8055c52e263146ae68b22af
Author: Julian Wiedmann <jwi@linux.vnet.ibm.com>
Date:   Mon Mar 5 09:39:38 2018 +0100

    s390/qdio: don't retry EQBS after CCQ 96
    
    commit dae55b6fef58530c13df074bcc182c096609339e upstream.
    
    Immediate retry of EQBS after CCQ 96 means that we potentially misreport
    the state of buffers inspected during the first EQBS call.
    
    This occurs when
    1. the first EQBS finds all inspected buffers still in the initial state
       set by the driver (ie INPUT EMPTY or OUTPUT PRIMED),
    2. the EQBS terminates early with CCQ 96, and
    3. by the time that the second EQBS comes around, the state of those
       previously inspected buffers has changed.
    
    If the state reported by the second EQBS is 'driver-owned', all we know
    is that the previous buffers are driver-owned now as well. But we can't
    tell if they all have the same state. So for instance
    - the second EQBS reports OUTPUT EMPTY, but any number of the previous
      buffers could be OUTPUT ERROR by now,
    - the second EQBS reports OUTPUT ERROR, but any number of the previous
      buffers could be OUTPUT EMPTY by now.
    
    Effectively, this can result in both over- and underreporting of errors.
    
    If the state reported by the second EQBS is 'HW-owned', that doesn't
    guarantee that the previous buffers have not been switched to
    driver-owned in the mean time. So for instance
    - the second EQBS reports INPUT EMPTY, but any number of the previous
      buffers could be INPUT PRIMED (or INPUT ERROR) by now.
    
    This would result in failure to process pending work on the queue. If
    it's the final check before yielding initiative, this can cause
    a (temporary) queue stall due to IRQ avoidance.
    
    Fixes: 25f269f17316 ("[S390] qdio: EQBS retry after CCQ 96")
    Cc: <stable@vger.kernel.org> #v3.2+
    Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
    Reviewed-by: Benjamin Block <bblock@linux.vnet.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f8a1c5b50ff9e0351ca5b739c5327c623a27ad7b
Author: Helge Deller <deller@gmx.de>
Date:   Sun Mar 25 23:53:22 2018 +0200

    parisc: Fix out of array access in match_pci_device()
    
    commit 615b2665fd20c327b631ff1e79426775de748094 upstream.
    
    As found by the ubsan checker, the value of the 'index' variable can be
    out of range for the bc[] array:
    
    UBSAN: Undefined behaviour in arch/parisc/kernel/drivers.c:655:21
    index 6 is out of range for type 'char [6]'
    Backtrace:
     [<104fa850>] __ubsan_handle_out_of_bounds+0x68/0x80
     [<1019d83c>] check_parent+0xc0/0x170
     [<1019d91c>] descend_children+0x30/0x6c
     [<1059e164>] device_for_each_child+0x60/0x98
     [<1019cd54>] parse_tree_node+0x40/0x54
     [<1019d86c>] check_parent+0xf0/0x170
     [<1019d91c>] descend_children+0x30/0x6c
     [<1059e164>] device_for_each_child+0x60/0x98
     [<1019d938>] descend_children+0x4c/0x6c
     [<1059e164>] device_for_each_child+0x60/0x98
     [<1019cd54>] parse_tree_node+0x40/0x54
     [<1019cffc>] hwpath_to_device+0xa4/0xc4
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0647dbf68b6d7b9e0a19bcb96dace7c9d3bd5393
Author: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Date:   Wed Mar 28 13:59:22 2018 -0400

    media: v4l2-compat-ioctl32: don't oops on overlay
    
    commit 85ea29f19eab56ec16ec6b92bc67305998706afa upstream.
    
    At put_v4l2_window32(), it tries to access kp->clips. However,
    kp points to an userspace pointer. So, it should be obtained
    via get_user(), otherwise it can OOPS:
    
     vivid-000: ==================  END STATUS  ==================
     BUG: unable to handle kernel paging request at 00000000fffb18e0
     IP: [<ffffffffc05468d9>] __put_v4l2_format32+0x169/0x220 [videodev]
     PGD 3f5776067 PUD 3f576f067 PMD 3f5769067 PTE 800000042548f067
     Oops: 0001 [#1] SMP
     Modules linked in: vivid videobuf2_vmalloc videobuf2_memops v4l2_dv_timings videobuf2_core v4l2_common videodev media xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack tun bridge stp llc ebtable_filter ebtables ip6table_filter ip6_tables bluetooth rfkill binfmt_misc snd_hda_codec_hdmi i915 snd_hda_intel snd_hda_controller snd_hda_codec intel_rapl x86_pkg_temp_thermal snd_hwdep intel_powerclamp snd_pcm coretemp snd_seq_midi kvm_intel kvm snd_seq_midi_event snd_rawmidi i2c_algo_bit drm_kms_helper snd_seq drm crct10dif_pclmul e1000e snd_seq_device crc32_pclmul snd_timer ghash_clmulni_intel snd mei_me mei ptp pps_core soundcore lpc_ich video crc32c_intel [last unloaded: media]
     CPU: 2 PID: 28332 Comm: v4l2-compliance Not tainted 3.18.102+ #107
     Hardware name:                  /NUC5i7RYB, BIOS RYBDWi35.86A.0364.2017.0511.0949 05/11/2017
     task: ffff8804293f8000 ti: ffff8803f5640000 task.ti: ffff8803f5640000
     RIP: 0010:[<ffffffffc05468d9>]  [<ffffffffc05468d9>] __put_v4l2_format32+0x169/0x220 [videodev]
     RSP: 0018:ffff8803f5643e28  EFLAGS: 00010246
     RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00000000fffb1ab4
     RDX: 00000000fffb1a68 RSI: 00000000fffb18d8 RDI: 00000000fffb1aa8
     RBP: ffff8803f5643e48 R08: 0000000000000001 R09: ffff8803f54b0378
     R10: 0000000000000000 R11: 0000000000000168 R12: 00000000fffb18c0
     R13: 00000000fffb1a94 R14: 00000000fffb18c8 R15: 0000000000000000
     FS:  0000000000000000(0000) GS:ffff880456d00000(0063) knlGS:00000000f7100980
     CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
     CR2: 00000000fffb18e0 CR3: 00000003f552b000 CR4: 00000000003407e0
     Stack:
      00000000fffb1a94 00000000c0cc5640 0000000000000056 ffff8804274f3600
      ffff8803f5643ed0 ffffffffc0547e16 0000000000000003 ffff8803f5643eb0
      ffffffff81301460 ffff88009db44b01 ffff880441942520 ffff8800c0d05640
     Call Trace:
      [<ffffffffc0547e16>] v4l2_compat_ioctl32+0x12d6/0x1b1d [videodev]
      [<ffffffff81301460>] ? file_has_perm+0x70/0xc0
      [<ffffffff81252a2c>] compat_SyS_ioctl+0xec/0x1200
      [<ffffffff8173241a>] sysenter_dispatch+0x7/0x21
     Code: 00 00 48 8b 80 48 c0 ff ff 48 83 e8 38 49 39 c6 0f 87 2b ff ff ff 49 8d 45 1c e8 a3 ce e3 c0 85 c0 0f 85 1a ff ff ff 41 8d 40 ff <4d> 8b 64 24 20 41 89 d5 48 8d 44 40 03 4d 8d 34 c4 eb 15 0f 1f
     RIP  [<ffffffffc05468d9>] __put_v4l2_format32+0x169/0x220 [videodev]
     RSP <ffff8803f5643e28>
     CR2: 00000000fffb18e0
    
    Tested with vivid driver on Kernel v3.18.102.
    
    Same bug happens upstream too:
    
     BUG: KASAN: user-memory-access in __put_v4l2_format32+0x98/0x4d0 [videodev]
     Read of size 8 at addr 00000000ffe48400 by task v4l2-compliance/8713
    
     CPU: 0 PID: 8713 Comm: v4l2-compliance Not tainted 4.16.0-rc4+ #108
     Hardware name:  /NUC5i7RYB, BIOS RYBDWi35.86A.0364.2017.0511.0949 05/11/2017
     Call Trace:
      dump_stack+0x5c/0x7c
      kasan_report+0x164/0x380
      ? __put_v4l2_format32+0x98/0x4d0 [videodev]
      __put_v4l2_format32+0x98/0x4d0 [videodev]
      v4l2_compat_ioctl32+0x1aec/0x27a0 [videodev]
      ? __fsnotify_inode_delete+0x20/0x20
      ? __put_v4l2_format32+0x4d0/0x4d0 [videodev]
      compat_SyS_ioctl+0x646/0x14d0
      ? do_ioctl+0x30/0x30
      do_fast_syscall_32+0x191/0x3f4
      entry_SYSENTER_compat+0x6b/0x7a
     ==================================================================
     Disabling lock debugging due to kernel taint
     BUG: unable to handle kernel paging request at 00000000ffe48400
     IP: __put_v4l2_format32+0x98/0x4d0 [videodev]
     PGD 3a22fb067 P4D 3a22fb067 PUD 39b6f0067 PMD 39b6f1067 PTE 80000003256af067
     Oops: 0001 [#1] SMP KASAN
     Modules linked in: vivid videobuf2_vmalloc videobuf2_dma_contig videobuf2_memops v4l2_tpg v4l2_dv_timings videobuf2_v4l2 videobuf2_common v4l2_common videodev xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack libcrc32c tun bridge stp llc ebtable_filter ebtables ip6table_filter ip6_tables bluetooth rfkill ecdh_generic binfmt_misc snd_hda_codec_hdmi intel_rapl x86_pkg_temp_thermal intel_powerclamp i915 coretemp snd_hda_intel snd_hda_codec kvm_intel snd_hwdep snd_hda_core kvm snd_pcm irqbypass crct10dif_pclmul crc32_pclmul snd_seq_midi ghash_clmulni_intel snd_seq_midi_event i2c_algo_bit intel_cstate snd_rawmidi intel_uncore snd_seq drm_kms_helper e1000e snd_seq_device snd_timer intel_rapl_perf
      drm ptp snd mei_me mei lpc_ich pps_core soundcore video crc32c_intel
     CPU: 0 PID: 8713 Comm: v4l2-compliance Tainted: G    B            4.16.0-rc4+ #108
     Hardware name:  /NUC5i7RYB, BIOS RYBDWi35.86A.0364.2017.0511.0949 05/11/2017
     RIP: 0010:__put_v4l2_format32+0x98/0x4d0 [videodev]
     RSP: 0018:ffff8803b9be7d30 EFLAGS: 00010282
     RAX: 0000000000000000 RBX: ffff8803ac983e80 RCX: ffffffff8cd929f2
     RDX: 1ffffffff1d0a149 RSI: 0000000000000297 RDI: 0000000000000297
     RBP: 00000000ffe485c0 R08: fffffbfff1cf5123 R09: ffffffff8e7a8948
     R10: 0000000000000001 R11: fffffbfff1cf5122 R12: 00000000ffe483e0
     R13: 00000000ffe485c4 R14: ffff8803ac985918 R15: 00000000ffe483e8
     FS:  0000000000000000(0000) GS:ffff880407400000(0063) knlGS:00000000f7a46980
     CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
     CR2: 00000000ffe48400 CR3: 00000003a83f2003 CR4: 00000000003606f0
     Call Trace:
      v4l2_compat_ioctl32+0x1aec/0x27a0 [videodev]
      ? __fsnotify_inode_delete+0x20/0x20
      ? __put_v4l2_format32+0x4d0/0x4d0 [videodev]
      compat_SyS_ioctl+0x646/0x14d0
      ? do_ioctl+0x30/0x30
      do_fast_syscall_32+0x191/0x3f4
      entry_SYSENTER_compat+0x6b/0x7a
     Code: 4c 89 f7 4d 8d 7c 24 08 e8 e6 a4 69 cb 48 8b 83 98 1a 00 00 48 83 e8 10 49 39 c7 0f 87 9d 01 00 00 49 8d 7c 24 20 e8 c8 a4 69 cb <4d> 8b 74 24 20 4c 89 ef 4c 89 fe ba 10 00 00 00 e8 23 d9 08 cc
     RIP: __put_v4l2_format32+0x98/0x4d0 [videodev] RSP: ffff8803b9be7d30
     CR2: 00000000ffe48400
    
    cc: stable@vger.kernel.org
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Reviewed-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>