commit 0c946219398a3108a9fe8dbc5096586bdcc797d6
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Feb 16 20:14:46 2018 +0100

    Linux 3.18.95

commit e8cccd3ddb6b809032cb5177a1acd76ae3fa2636
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Aug 1 05:02:38 2017 -0500

    mn10300/misalignment: Use SIGSEGV SEGV_MAPERR to report a failed user copy
    
    commit 6ac1dc736b323011a55ecd1fc5897c24c4f77cbd upstream.
    
    Setting si_code to 0 is the same a setting si_code to SI_USER which is definitely
    not correct.  With si_code set to SI_USER si_pid and si_uid will be copied to
    userspace instead of si_addr.  Which is very wrong.
    
    So fix this by using a sensible si_code (SEGV_MAPERR) for this failure.
    
    Fixes: b920de1b77b7 ("mn10300: add the MN10300/AM33 architecture to the kernel")
    Cc: David Howells <dhowells@redhat.com>
    Cc: Masakazu Urade <urade.masakazu@jp.panasonic.com>
    Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a0e3ffb0a1445a756cc91cd9f03b1ac3abd2e32
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Jan 19 10:06:03 2018 +0100

    ACPI: sbshc: remove raw pointer from printk() message
    
    commit 43cdd1b716b26f6af16da4e145b6578f98798bf6 upstream.
    
    There's no need to be printing a raw kernel pointer to the kernel log at
    every boot.  So just remove it, and change the whole message to use the
    correct dev_info() call at the same time.
    
    Reported-by: Wang Qize <wang_qize@venustech.com.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16f14ebe6131856ba4aec9c1dcb00fdb991d0c38
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date:   Tue Jan 2 11:39:47 2018 -0800

    pktcdvd: Fix pkt_setup_dev() error path
    
    commit 5a0ec388ef0f6e33841aeb810d7fa23f049ec4cd upstream.
    
    Commit 523e1d399ce0 ("block: make gendisk hold a reference to its queue")
    modified add_disk() and disk_release() but did not update any of the
    error paths that trigger a put_disk() call after disk->queue has been
    assigned. That introduced the following behavior in the pktcdvd driver
    if pkt_new_dev() fails:
    
    Kernel BUG at 00000000e98fd882 [verbose debug info unavailable]
    
    Since disk_release() calls blk_put_queue() anyway if disk->queue != NULL,
    fix this by removing the blk_cleanup_queue() call from the pkt_setup_dev()
    error path.
    
    Fixes: commit 523e1d399ce0 ("block: make gendisk hold a reference to its queue")
    Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e715f11f9ea7cc76f5970786d4f35d325335089f
Author: James Hogan <jhogan@kernel.org>
Date:   Mon Nov 13 16:12:06 2017 +0000

    EDAC, octeon: Fix an uninitialized variable warning
    
    commit 544e92581a2ac44607d7cc602c6b54d18656f56d upstream.
    
    Fix an uninitialized variable warning in the Octeon EDAC driver, as seen
    in MIPS cavium_octeon_defconfig builds since v4.14 with Codescape GNU
    Tools 2016.05-03:
    
      drivers/edac/octeon_edac-lmc.c In function ‘octeon_lmc_edac_poll_o2’:
      drivers/edac/octeon_edac-lmc.c:87:24: warning: ‘((long unsigned int*)&int_reg)[1]’ may \
        be used uninitialized in this function [-Wmaybe-uninitialized]
        if (int_reg.s.sec_err || int_reg.s.ded_err) {
                            ^
    Iinitialise the whole int_reg variable to zero before the conditional
    assignments in the error injection case.
    
    Signed-off-by: James Hogan <jhogan@kernel.org>
    Acked-by: David Daney <david.daney@cavium.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: linux-mips@linux-mips.org
    Fixes: 1bc021e81565 ("EDAC: Octeon: Add error injection support")
    Link: http://lkml.kernel.org/r/20171113161206.20990-1-james.hogan@mips.com
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e7bf9002a8249d108d702f9a60948065071e348
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Fri Jan 5 14:27:58 2018 -0800

    xtensa: fix futex_atomic_cmpxchg_inatomic
    
    commit ca47480921587ae30417dd234a9f79af188e3666 upstream.
    
    Return 0 if the operation was successful, not the userspace memory
    value. Check that userspace value equals passed oldval, not itself.
    Don't update *uval if the value wasn't read from userspace memory.
    
    This fixes process hang due to infinite loop in futex_lock_pi.
    It also fixes a bunch of glibc tests nptl/tst-mutexpi*.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6f03ae6cbb483f69cb9077521a3db9b756e6185
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Jan 2 13:59:54 2018 -0500

    alpha: fix reboot on Avanti platform
    
    commit 55fc633c41a08ce9244ff5f528f420b16b1e04d6 upstream.
    
    We need to define NEED_SRM_SAVE_RESTORE on the Avanti, otherwise we get
    machine check exception when attempting to reboot the machine.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6eb7b54c6ec50636a564928770a825d78f6c789b
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Jan 2 14:01:34 2018 -0500

    alpha: fix crash if pthread_create races with signal delivery
    
    commit 21ffceda1c8b3807615c40d440d7815e0c85d366 upstream.
    
    On alpha, a process will crash if it attempts to start a thread and a
    signal is delivered at the same time. The crash can be reproduced with
    this program: https://cygwin.com/ml/cygwin/2014-11/msg00473.html
    
    The reason for the crash is this:
    * we call the clone syscall
    * we go to the function copy_process
    * copy process calls copy_thread_tls, it is a wrapper around copy_thread
    * copy_thread sets the tls pointer: childti->pcb.unique = regs->r20
    * copy_thread sets regs->r20 to zero
    * we go back to copy_process
    * copy process checks "if (signal_pending(current))" and returns
      -ERESTARTNOINTR
    * the clone syscall is restarted, but this time, regs->r20 is zero, so
      the new thread is created with zero tls pointer
    * the new thread crashes in start_thread when attempting to access tls
    
    The comment in the code says that setting the register r20 is some
    compatibility with OSF/1. But OSF/1 doesn't use the CLONE_SETTLS flag, so
    we don't have to zero r20 if CLONE_SETTLS is set. This patch fixes the bug
    by zeroing regs->r20 only if CLONE_SETTLS is not set.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99a62e157e3d44fed2ee7f2a0604391c9ecdf501
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Mon Jul 24 17:30:30 2017 -0500

    signal/sh: Ensure si_signo is initialized in do_divide_error
    
    commit 0e88bb002a9b2ee8cc3cc9478ce2dc126f849696 upstream.
    
    Set si_signo.
    
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Rich Felker <dalias@libc.org>
    Cc: Paul Mundt <lethal@linux-sh.org>
    Cc: linux-sh@vger.kernel.org
    Fixes: 0983b31849bb ("sh: Wire up division and address error exceptions on SH-2A.")
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a64cc59f32dd16d1ff88eb3c109fc17b1a44f65
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Tue Aug 1 04:16:47 2017 -0500

    signal/openrisc: Fix do_unaligned_access to send the proper signal
    
    commit 500d58300571b6602341b041f97c082a461ef994 upstream.
    
    While reviewing the signal sending on openrisc the do_unaligned_access
    function stood out because it is obviously wrong.  A comment about an
    si_code set above when actually si_code is never set.  Leading to a
    random si_code being sent to userspace in the event of an unaligned
    access.
    
    Looking further SIGBUS BUS_ADRALN is the proper pair of signal and
    si_code to send for an unaligned access. That is what other
    architectures do and what is required by posix.
    
    Given that do_unaligned_access is broken in a way that no one can be
    relying on it on openrisc fix the code to just do the right thing.
    
    Fixes: 769a8a96229e ("OpenRISC: Traps")
    Cc: Jonas Bonn <jonas@southpole.se>
    Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
    Cc: Stafford Horne <shorne@gmail.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: openrisc@lists.librecores.org
    Acked-by: Stafford Horne <shorne@gmail.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd59ee6cbf47d48f4e0685acc8799bdb61abd04f
Author: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Date:   Tue Feb 6 15:37:55 2018 -0800

    kernel/async.c: revert "async: simplify lowest_in_progress()"
    
    commit 4f7e988e63e336827f4150de48163bed05d653bd upstream.
    
    This reverts commit 92266d6ef60c ("async: simplify lowest_in_progress()")
    which was simply wrong: In the case where domain is NULL, we now use the
    wrong offsetof() in the list_first_entry macro, so we don't actually
    fetch the ->cookie value, but rather the eight bytes located
    sizeof(struct list_head) further into the struct async_entry.
    
    On 64 bit, that's the data member, while on 32 bit, that's a u64 built
    from func and data in some order.
    
    I think the bug happens to be harmless in practice: It obviously only
    affects callers which pass a NULL domain, and AFAICT the only such
    caller is
    
      async_synchronize_full() ->
      async_synchronize_full_domain(NULL) ->
      async_synchronize_cookie_domain(ASYNC_COOKIE_MAX, NULL)
    
    and the ASYNC_COOKIE_MAX means that in practice we end up waiting for
    the async_global_pending list to be empty - but it would break if
    somebody happened to pass (void*)-1 as the data element to
    async_schedule, and of course also if somebody ever does a
    async_synchronize_cookie_domain(, NULL) with a "finite" cookie value.
    
    Maybe the "harmless in practice" means this isn't -stable material.  But
    I'm not completely confident my quick git grep'ing is enough, and there
    might be affected code in one of the earlier kernels that has since been
    removed, so I'll leave the decision to the stable guys.
    
    Link: http://lkml.kernel.org/r/20171128104938.3921-1-linux@rasmusvillemoes.dk
    Fixes: 92266d6ef60c "async: simplify lowest_in_progress()"
    Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Acked-by: Tejun Heo <tj@kernel.org>
    Cc: Arjan van de Ven <arjan@linux.intel.com>
    Cc: Adam Wallis <awallis@codeaurora.org>
    Cc: Lai Jiangshan <laijs@cn.fujitsu.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 f874d19f2cbef34a4858cfd946d5072e57a6121e
Author: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Date:   Wed Jan 24 06:01:57 2018 -0500

    media: cxusb, dib0700: ignore XC2028_I2C_FLUSH
    
    commit 9893b905e743ded332575ca04486bd586c0772f7 upstream.
    
    The XC2028_I2C_FLUSH only needs to be implemented on a few
    devices. Others can safely ignore it.
    
    That prevents filling the dmesg with lots of messages like:
    
            dib0700: stk7700ph_xc3028_callback: unknown command 2, arg 0
    
    Fixes: 4d37ece757a8 ("[media] tuner/xc2028: Add I2C flush callback")
    Reported-by: Enrico Mioso <mrkiko.rs@gmail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd2ebfa2de94cc688f5031ca61608272b3c62f14
Author: Horia Geantă <horia.geanta@nxp.com>
Date:   Mon Feb 5 11:15:52 2018 +0200

    crypto: caam - fix endless loop when DECO acquire fails
    
    commit 225ece3e7dad4cfc44cca38ce7a3a80f255ea8f1 upstream.
    
    In case DECO0 cannot be acquired - i.e. run_descriptor_deco0() fails
    with -ENODEV, caam_probe() enters an endless loop:
    
    run_descriptor_deco0
            ret -ENODEV
            -> instantiate_rng
                    -ENODEV, overwritten by -EAGAIN
                    ret -EAGAIN
                    -> caam_probe
                            -EAGAIN results in endless loop
    
    It turns out the error path in instantiate_rng() is incorrect,
    the checks are done in the wrong order.
    
    Fixes: 1005bccd7a4a6 ("crypto: caam - enable instantiation of all RNG4 state handles")
    Reported-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
    Suggested-by: Auer Lukas <lukas.auer@aisec.fraunhofer.de>
    Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6278069e9f93b02c48e6e424e484b48d8b7abb17
Author: Eric Biggers <ebiggers@google.com>
Date:   Wed Jan 3 11:16:23 2018 -0800

    crypto: cryptd - pass through absence of ->setkey()
    
    commit 841a3ff329713f796a63356fef6e2f72e4a3f6a3 upstream.
    
    When the cryptd template is used to wrap an unkeyed hash algorithm,
    don't install a ->setkey() method to the cryptd instance.  This change
    is necessary for cryptd to keep working with unkeyed hash algorithms
    once we start enforcing that ->setkey() is called when present.
    
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e52f5a43c4abc304f108a25549bfa5a79626e83
Author: Eric Biggers <ebiggers@google.com>
Date:   Wed Jan 3 11:16:22 2018 -0800

    crypto: hash - introduce crypto_hash_alg_has_setkey()
    
    commit cd6ed77ad5d223dc6299fb58f62e0f5267f7e2ba upstream.
    
    Templates that use an shash spawn can use crypto_shash_alg_has_setkey()
    to determine whether the underlying algorithm requires a key or not.
    But there was no corresponding function for ahash spawns.  Add it.
    
    Note that the new function actually has to support both shash and ahash
    algorithms, since the ahash API can be used with either.
    
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b72648a13f1b6a793779b4f31d54510156c168e
Author: Ivan Vecera <ivecera@redhat.com>
Date:   Fri Jan 19 09:18:54 2018 +0100

    kernfs: fix regression in kernfs_fop_write caused by wrong type
    
    commit ba87977a49913129962af8ac35b0e13e0fa4382d upstream.
    
    Commit b7ce40cff0b9 ("kernfs: cache atomic_write_len in
    kernfs_open_file") changes type of local variable 'len' from ssize_t
    to size_t. This change caused that the *ppos value is updated also
    when the previous write callback failed.
    
    Mentioned snippet:
    ...
    len = ops->write(...); <- return value can be negative
    ...
    if (len > 0)           <- true here in this case
            *ppos += len;
    ...
    
    Fixes: b7ce40cff0b9 ("kernfs: cache atomic_write_len in kernfs_open_file")
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Ivan Vecera <ivecera@redhat.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 103fa74ffa5247439cbdae65c8aaec8e62ef3a05
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Tue Jan 16 10:08:00 2018 -0500

    NFS: commit direct writes even if they fail partially
    
    commit 1b8d97b0a837beaf48a8449955b52c650a7114b4 upstream.
    
    If some of the WRITE calls making up an O_DIRECT write syscall fail,
    we neglect to commit, even if some of the WRITEs succeed.
    
    We also depend on the commit code to free the reference count on the
    nfs_page taken in the "if (request_commit)" case at the end of
    nfs_direct_write_completion().  The problem was originally noticed
    because ENOSPC's encountered partway through a write would result in a
    closed file being sillyrenamed when it should have been unlinked.
    
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c8ebc7dd51be8d1ecc34ce43277ec7a6c0405a05
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Mon Dec 18 14:39:13 2017 -0500

    NFS: Add a cond_resched() to nfs_commit_release_pages()
    
    commit 7f1bda447c9bd48b415acedba6b830f61591601f upstream.
    
    The commit list can get very large, and so we need a cond_resched()
    in nfs_commit_release_pages() in order to ensure we don't hog the CPU
    for excessive periods of time.
    
    Reported-by: Mike Galbraith <efault@gmx.de>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0dcc0912d39465102ffc5cd44ce6ac8d2d5c8933
Author: Miquel Raynal <miquel.raynal@free-electrons.com>
Date:   Fri Jan 12 10:13:36 2018 +0100

    mtd: nand: Fix nand_do_read_oob() return value
    
    commit 87e89ce8d0d14f573c068c61bec2117751fb5103 upstream.
    
    Starting from commit 041e4575f034 ("mtd: nand: handle ECC errors in
    OOB"), nand_do_read_oob() (from the NAND core) did return 0 or a
    negative error, and the MTD layer expected it.
    
    However, the trend for the NAND layer is now to return an error or a
    positive number of bitflips. Deciding which status to return to the user
    belongs to the MTD layer.
    
    Commit e47f68587b82 ("mtd: check for max_bitflips in mtd_read_oob()")
    brought this logic to the mtd_read_oob() function while the return value
    coming from nand_do_read_oob() (called by the ->_read_oob() hook) was
    left unchanged.
    
    Fixes: e47f68587b82 ("mtd: check for max_bitflips in mtd_read_oob()")
    Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6cd23a0e51dd2580bfdbb005ad1edeeaf9192d00
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Tue Sep 26 17:10:21 2017 -0400

    media: dvb-usb-v2: lmedm04: move ts2020 attach to dm04_lme2510_tuner
    
    commit 7bf7a7116ed313c601307f7e585419369926ab05 upstream.
    
    When the tuner was split from m88rs2000 the attach function is in wrong
    place.
    
    Move to dm04_lme2510_tuner to trap errors on failure and removing
    a call to lme_coldreset.
    
    Prevents driver starting up without any tuner connected.
    
    Fixes to trap for ts2020 fail.
    LME2510(C): FE Found M88RS2000
    ts2020: probe of 0-0060 failed with error -11
    ...
    LME2510(C): TUN Found RS2000 tuner
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] PREEMPT SMP KASAN
    
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
    Tested-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Cc: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84882420c73f959fdbad90e538a6d1644c6703dc
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Tue Sep 26 17:10:20 2017 -0400

    media: dvb-usb-v2: lmedm04: Improve logic checking of warm start
    
    commit 3d932ee27e852e4904647f15b64dedca51187ad7 upstream.
    
    Warm start has no check as whether a genuine device has
    connected and proceeds to next execution path.
    
    Check device should read 0x47 at offset of 2 on USB descriptor read
    and it is the amount requested of 6 bytes.
    
    Fix for
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access as
    
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Cc: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d2baa5e59786136454e3baf3cb7c9d606ab8d508
Author: Mohamed Ghannam <simo.ghannam@gmail.com>
Date:   Tue Dec 5 20:58:35 2017 +0000

    dccp: CVE-2017-8824: use-after-free in DCCP code
    
    commit 69c64866ce072dea1d1e59a0d61e0f66c0dffb76 upstream.
    
    Whenever the sock object is in DCCP_CLOSED state,
    dccp_disconnect() must free dccps_hc_tx_ccid and
    dccps_hc_rx_ccid and set to NULL.
    
    Signed-off-by: Mohamed Ghannam <simo.ghannam@gmail.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c6afe2ab06b0992b4826c015e1523bc114c41d10
Author: Shuah Khan <shuahkh@osg.samsung.com>
Date:   Mon Dec 18 17:24:22 2017 -0700

    usbip: vhci: stop printing kernel pointer addresses in messages
    
    commit 8272d099d05f7ab2776cf56a2ab9f9443be18907 upstream.
    
    Remove and/or change debug, info. and error messages to not print
    kernel pointer addresses.
    
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f52839830f99b2937854ec70e6bd41587fb73971
Author: Shuah Khan <shuahkh@osg.samsung.com>
Date:   Mon Dec 18 17:23:37 2017 -0700

    usbip: stub: stop printing kernel pointer addresses in messages
    
    commit 248a22044366f588d46754c54dfe29ffe4f8b4df upstream.
    
    Remove and/or change debug, info. and error messages to not print
    kernel pointer addresses.
    
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0dcd7547c4d16587511c0415d1adab1437ecbc1f
Author: Shuah Khan <shuahkh@osg.samsung.com>
Date:   Fri Dec 15 10:50:09 2017 -0700

    usbip: prevent leaking socket pointer address in messages
    
    commit 90120d15f4c397272aaf41077960a157fc4212bf upstream.
    
    usbip driver is leaking socket pointer address in messages. Remove
    the messages that aren't useful and print sockfd in the ones that
    are useful for debugging.
    
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a7db857299d6e98abf6fa0b6986b83abb7f1d4cb
Author: Yuyang Du <yuyang.du@intel.com>
Date:   Thu Jun 8 13:04:10 2017 +0800

    usbip: vhci-hcd: Add USB3 SuperSpeed support
    
    commit 1c9de5bf428612458427943b724bea51abde520a upstream.
    
    This patch adds a USB3 HCD to an existing USB2 HCD and provides
    the support of SuperSpeed, in case the device can only be enumerated
    with SuperSpeed.
    
    The bulk of the added code in usb3_bos_desc and hub_control to support
    SuperSpeed is borrowed from the commit 1cd8fd2887e162ad ("usb: gadget:
    dummy_hcd: add SuperSpeed support").
    
    With this patch, each vhci will have VHCI_HC_PORTS HighSpeed ports
    and VHCI_HC_PORTS SuperSpeed ports.
    
    Suggested-by: Krzysztof Opasiak <k.opasiak@samsung.com>
    Signed-off-by: Yuyang Du <yuyang.du@intel.com>
    Acked-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ea2031f4d16771c47c97c99fb47c71f346a6dbe
Author: Andrew Goodbody <andrew.goodbody@cambrionix.com>
Date:   Tue Feb 2 17:36:39 2016 +0000

    usb: usbip: Fix possible deadlocks reported by lockdep
    
    commit 21619792d1eca7e772ca190ba68588e57f29595b upstream.
    
    Change spin_lock calls to spin_lock_irqsave to prevent
    attmpted recursive lock taking in interrupt context.
    
    This patch fixes Bug 109351
      https://bugzilla.kernel.org/show_bug.cgi?id=109351
    
    Signed-off-by: Andrew Goodbody <andrew.goodbody@cambrionix.com>
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b490123f4996ccd4461cb82bcb69dd8a0364d5f
Author: Jonathan Dieter <jdieter@lesbg.com>
Date:   Mon Feb 27 10:31:03 2017 +0200

    usbip: Fix potential format overflow in userspace tools
    
    commit e5dfa3f902b9a642ae8c6997d57d7c41e384a90b upstream.
    
    The usbip userspace tools call sprintf()/snprintf() and don't check for
    the return value which can lead the paths to overflow, truncating the
    final file in the path.
    
    More urgently, GCC 7 now warns that these aren't checked with
    -Wformat-overflow, and with -Werror enabled in configure.ac, that makes
    these tools unbuildable.
    
    This patch fixes these problems by replacing sprintf() with snprintf() in
    one place and adding checks for the return value of snprintf().
    
    Reviewed-by: Peter Senna Tschudin <peter.senna@gmail.com>
    Signed-off-by: Jonathan Dieter <jdieter@lesbg.com>
    Acked-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 67ad0235bacc1af72dad6eac6c5ac1a072b905f7
Author: Shuah Khan <shuahkh@osg.samsung.com>
Date:   Thu Dec 7 14:16:49 2017 -0700

    usbip: prevent vhci_hcd driver from leaking a socket pointer address
    
    commit 2f2d0088eb93db5c649d2a5e34a3800a8a935fc5 upstream.
    
    When a client has a USB device attached over IP, the vhci_hcd driver is
    locally leaking a socket pointer address via the
    
    /sys/devices/platform/vhci_hcd/status file (world-readable) and in debug
    output when "usbip --debug port" is run.
    
    Fix it to not leak. The socket pointer address is not used at the moment
    and it was made visible as a convenient way to find IP address from socket
    pointer address by looking up /proc/net/{tcp,tcp6}.
    
    As this opens a security hole, the fix replaces socket pointer address with
    sockfd.
    
    Reported-by: Secunia Research <vuln@secunia.com>
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eebf31529012289ec20fea84e4e6fd188176be13
Author: Shuah Khan <shuahkh@osg.samsung.com>
Date:   Thu Dec 7 14:16:48 2017 -0700

    usbip: fix stub_rx: harden CMD_SUBMIT path to handle malicious input
    
    commit c6688ef9f29762e65bce325ef4acd6c675806366 upstream.
    
    Harden CMD_SUBMIT path to handle malicious input that could trigger
    large memory allocations. Add checks to validate transfer_buffer_length
    and number_of_packets to protect against bad input requesting for
    unbounded memory allocations. Validate early in get_pipe() and return
    failure.
    
    Reported-by: Secunia Research <vuln@secunia.com>
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 385e124b45fe46960de2fd280fc5a99d3e7706dc
Author: Shuah Khan <shuahkh@osg.samsung.com>
Date:   Thu Dec 7 14:16:47 2017 -0700

    usbip: fix stub_rx: get_pipe() to validate endpoint number
    
    commit 635f545a7e8be7596b9b2b6a43cab6bbd5a88e43 upstream.
    
    get_pipe() routine doesn't validate the input endpoint number
    and uses to reference ep_in and ep_out arrays. Invalid endpoint
    number can trigger BUG(). Range check the epnum and returning
    error instead of calling BUG().
    
    Change caller stub_recv_cmd_submit() to handle the get_pipe()
    error return.
    
    Reported-by: Secunia Research <vuln@secunia.com>
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28ef9653c18539f8123dd668ad3b28289ec0514a
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Fri Dec 15 10:32:03 2017 +0100

    posix-timer: Properly check sigevent->sigev_notify
    
    commit cef31d9af908243421258f1df35a4a644604efbe upstream.
    
    timer_create() specifies via sigevent->sigev_notify the signal delivery for
    the new timer. The valid modes are SIGEV_NONE, SIGEV_SIGNAL, SIGEV_THREAD
    and (SIGEV_SIGNAL | SIGEV_THREAD_ID).
    
    The sanity check in good_sigevent() is only checking the valid combination
    for the SIGEV_THREAD_ID bit, i.e. SIGEV_SIGNAL, but if SIGEV_THREAD_ID is
    not set it accepts any random value.
    
    This has no real effects on the posix timer and signal delivery code, but
    it affects show_timer() which handles the output of /proc/$PID/timers. That
    function uses a string array to pretty print sigev_notify. The access to
    that array has no bound checks, so random sigev_notify cause access beyond
    the array bounds.
    
    Add proper checks for the valid notify modes and remove the SIGEV_THREAD_ID
    masking from various code pathes as SIGEV_NONE can never be set in
    combination with SIGEV_THREAD_ID.
    
    Reported-by: Eric Biggers <ebiggers3@gmail.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Reported-by: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9fdfac74246eeab058283035f393fc2a1bf44b78
Author: Aurelien Aptel <aaptel@suse.com>
Date:   Thu Jan 25 15:59:39 2018 +0100

    CIFS: zero sensitive data when freeing
    
    commit 97f4b7276b829a8927ac903a119bef2f963ccc58 upstream.
    
    also replaces memset()+kfree() by kzfree().
    
    Signed-off-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 833692a735399fc52942efc1ba3e46fd6d026f72
Author: Daniel N Pettersson <danielnp@axis.com>
Date:   Thu Jan 11 16:00:12 2018 +0100

    cifs: Fix autonegotiate security settings mismatch
    
    commit 9aca7e454415f7878b28524e76bebe1170911a88 upstream.
    
    Autonegotiation gives a security settings mismatch error if the SMB
    server selects an SMBv3 dialect that isn't SMB3.02. The exact error is
    "protocol revalidation - security settings mismatch".
    This can be tested using Samba v4.2 or by setting the global Samba
    setting max protocol = SMB3_00.
    
    The check that fails in smb3_validate_negotiate is the dialect
    verification of the negotiate info response. This is because it tries
    to verify against the protocol_id in the global smbdefault_values. The
    protocol_id in smbdefault_values is SMB3.02.
    In SMB2_negotiate the protocol_id in smbdefault_values isn't updated,
    it is global so it probably shouldn't be, but server->dialect is.
    
    This patch changes the check in smb3_validate_negotiate to use
    server->dialect instead of server->vals->protocol_id. The patch works
    with autonegotiate and when using a specific version in the vers mount
    option.
    
    Signed-off-by: Daniel N Pettersson <danielnp@axis.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23dd6b8717fb32fd68be8ab6cd76743e298e4100
Author: Matthew Wilcox <mawilcox@microsoft.com>
Date:   Fri Dec 15 12:48:32 2017 -0800

    cifs: Fix missing put_xid in cifs_file_strict_mmap
    
    commit f04a703c3d613845ae3141bfaf223489de8ab3eb upstream.
    
    If cifs_zap_mapping() returned an error, we would return without putting
    the xid that we got earlier.  Restructure cifs_file_strict_mmap() and
    cifs_file_mmap() to be more similar to each other and have a single
    point of return that always puts the xid.
    
    Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 796ab952d504dc938bbc331fa648a21ae96f6817
Author: Wang Han <wanghan1995315@gmail.com>
Date:   Fri Feb 2 23:06:51 2018 +0800

    ipv4: Map neigh lookup keys in __ipv4_neigh_lookup_noref()
    
    Commit 6c16fa957e84 is an incorrect backport as we map the keys in
    struct __ipv4_neigh_lookup(), but the correct place to add the
    code is struct __ipv4_neigh_lookup_noref(), compared to upstream.
    
    Fix it by moving the code, or fewer cases will be covered as
    __ipv4_neigh_lookup_noref() will be called unconditionally from
    __ipv4_neigh_lookup(), and it can be called from other places
    such as ip_output.c.
    
    Fixes: 6c16fa957e84 (ipv4: Make neigh lookup keys for loopback/point-to-point devices be INADDR_ANY)
    Signed-off-by: Wang Han <wanghan1995315@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99a223bcec506dbd8de7aa3c16995b71d3ca7bb6
Author: Eric Biggers <ebiggers@google.com>
Date:   Thu Jun 8 14:48:18 2017 +0100

    KEYS: encrypted: fix buffer overread in valid_master_desc()
    
    commit 794b4bc292f5d31739d89c0202c54e7dc9bc3add upstream.
    
    With the 'encrypted' key type it was possible for userspace to provide a
    data blob ending with a master key description shorter than expected,
    e.g. 'keyctl add encrypted desc "new x" @s'.  When validating such a
    master key description, validate_master_desc() could read beyond the end
    of the buffer.  Fix this by using strncmp() instead of memcmp().  [Also
    clean up the code to deduplicate some logic.]
    
    Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Jin Qian <jinqian@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b50c4e9e71a89a3b573eaee82669d50578ca74e
Author: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Date:   Wed Nov 25 13:09:43 2015 +0900

    ARM: exynos_defconfig: Enable NFSv4 client
    
    commit 1c1fb9b0c89a2506e556114c813a606bc1508d49 upstream.
    
    NFS client is already enabled (NFS_FS) and by default it enables clients
    for version 2 and 3. Enable explicitly the version 4 client to utilize
    the newer protocol.
    
    The NFS client is especially useful for testing kernel in automated
    environments (network boot with network file system).
    
    Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
    Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 60a86dc311258a3f10451884654397446ef931ad
Author: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Date:   Fri Mar 27 01:50:16 2015 +0900

    ARM: exynos_defconfig: Enable options to mount a rootfs via NFS
    
    commit 19f79ccf6d77409cd138bce8db206cdac7fd5ea7 upstream.
    
    This patch enables the options to mount a rootfs over NFS and also
    support for automatic configuration of IP addresses during boot as
    needed by NFS.
    
    Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
    Signed-off-by: Kukjin Kim <kgene@kernel.org>
    Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
    Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e25c5a37fcde7688ddfd5454328cde2ddf70fb57
Author: Li RongQing <lirongqing@baidu.com>
Date:   Fri Jan 26 16:40:41 2018 +0800

    tcp: release sk_frag.page in tcp_disconnect
    
    
    [ Upstream commit 9b42d55a66d388e4dd5550107df051a9637564fc ]
    
    socket can be disconnected and gets transformed back to a listening
    socket, if sk_frag.page is not released, which will be cloned into
    a new socket by sk_clone_lock, but the reference count of this page
    is increased, lead to a use after free or double free issue
    
    Signed-off-by: Li RongQing <lirongqing@baidu.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d8e72014eca79abcf9424be37023dae97141093
Author: Chunhao Lin <hau@realtek.com>
Date:   Wed Jan 31 01:32:36 2018 +0800

    r8169: fix RTL8168EP take too long to complete driver initialization.
    
    
    [ Upstream commit 086ca23d03c0d2f4088f472386778d293e15c5f6 ]
    
    Driver check the wrong register bit in rtl_ocp_tx_cond() that keep driver
    waiting until timeout.
    
    Fix this by waiting for the right register bit.
    
    Signed-off-by: Chunhao Lin <hau@realtek.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cafbcd523a70712ed3215f5a549d8938d00c3b7e
Author: Junxiao Bi <junxiao.bi@oracle.com>
Date:   Mon Jan 29 17:53:42 2018 +0800

    qlcnic: fix deadlock bug
    
    
    [ Upstream commit 233ac3891607f501f08879134d623b303838f478 ]
    
    The following soft lockup was caught. This is a deadlock caused by
    recusive locking.
    
    Process kworker/u40:1:28016 was holding spin lock "mbx->queue_lock" in
    qlcnic_83xx_mailbox_worker(), while a softirq came in and ask the same spin
    lock in qlcnic_83xx_enqueue_mbx_cmd(). This lock should be hold by disable
    bh..
    
    [161846.962125] NMI watchdog: BUG: soft lockup - CPU#1 stuck for 22s! [kworker/u40:1:28016]
    [161846.962367] Modules linked in: tun ocfs2 xen_netback xen_blkback xen_gntalloc xen_gntdev xen_evtchn xenfs xen_privcmd autofs4 ocfs2_dlmfs ocfs2_stack_o2cb ocfs2_dlm ocfs2_nodemanager ocfs2_stackglue configfs bnx2fc fcoe libfcoe libfc sunrpc 8021q mrp garp bridge stp llc bonding dm_round_robin dm_multipath iTCO_wdt iTCO_vendor_support pcspkr sb_edac edac_core i2c_i801 shpchp lpc_ich mfd_core ioatdma ipmi_devintf ipmi_si ipmi_msghandler sg ext4 jbd2 mbcache2 sr_mod cdrom sd_mod igb i2c_algo_bit i2c_core ahci libahci megaraid_sas ixgbe dca ptp pps_core vxlan udp_tunnel ip6_udp_tunnel qla2xxx scsi_transport_fc qlcnic crc32c_intel be2iscsi bnx2i cnic uio cxgb4i cxgb4 cxgb3i libcxgbi ipv6 cxgb3 mdio libiscsi_tcp qla4xxx iscsi_boot_sysfs libiscsi scsi_transport_iscsi dm_mirror dm_region_hash dm_log dm_mod
    [161846.962454]
    [161846.962460] CPU: 1 PID: 28016 Comm: kworker/u40:1 Not tainted 4.1.12-94.5.9.el6uek.x86_64 #2
    [161846.962463] Hardware name: Oracle Corporation SUN SERVER X4-2L      /ASSY,MB,X4-2L         , BIOS 26050100 09/19/2017
    [161846.962489] Workqueue: qlcnic_mailbox qlcnic_83xx_mailbox_worker [qlcnic]
    [161846.962493] task: ffff8801f2e34600 ti: ffff88004ca5c000 task.ti: ffff88004ca5c000
    [161846.962496] RIP: e030:[<ffffffff810013aa>]  [<ffffffff810013aa>] xen_hypercall_sched_op+0xa/0x20
    [161846.962506] RSP: e02b:ffff880202e43388  EFLAGS: 00000206
    [161846.962509] RAX: 0000000000000000 RBX: ffff8801f6996b70 RCX: ffffffff810013aa
    [161846.962511] RDX: ffff880202e433cc RSI: ffff880202e433b0 RDI: 0000000000000003
    [161846.962513] RBP: ffff880202e433d0 R08: 0000000000000000 R09: ffff8801fe893200
    [161846.962516] R10: ffff8801fe400538 R11: 0000000000000206 R12: ffff880202e4b000
    [161846.962518] R13: 0000000000000050 R14: 0000000000000001 R15: 000000000000020d
    [161846.962528] FS:  0000000000000000(0000) GS:ffff880202e40000(0000) knlGS:ffff880202e40000
    [161846.962531] CS:  e033 DS: 0000 ES: 0000 CR0: 0000000080050033
    [161846.962533] CR2: 0000000002612640 CR3: 00000001bb796000 CR4: 0000000000042660
    [161846.962536] Stack:
    [161846.962538]  ffff880202e43608 0000000000000000 ffffffff813f0442 ffff880202e433b0
    [161846.962543]  0000000000000000 ffff880202e433cc ffffffff00000001 0000000000000000
    [161846.962547]  00000009813f03d6 ffff880202e433e0 ffffffff813f0460 ffff880202e43440
    [161846.962552] Call Trace:
    [161846.962555]  <IRQ>
    [161846.962565]  [<ffffffff813f0442>] ? xen_poll_irq_timeout+0x42/0x50
    [161846.962570]  [<ffffffff813f0460>] xen_poll_irq+0x10/0x20
    [161846.962578]  [<ffffffff81014222>] xen_lock_spinning+0xe2/0x110
    [161846.962583]  [<ffffffff81013f01>] __raw_callee_save_xen_lock_spinning+0x11/0x20
    [161846.962592]  [<ffffffff816e5c57>] ? _raw_spin_lock+0x57/0x80
    [161846.962609]  [<ffffffffa028acfc>] qlcnic_83xx_enqueue_mbx_cmd+0x7c/0xe0 [qlcnic]
    [161846.962623]  [<ffffffffa028e008>] qlcnic_83xx_issue_cmd+0x58/0x210 [qlcnic]
    [161846.962636]  [<ffffffffa028caf2>] qlcnic_83xx_sre_macaddr_change+0x162/0x1d0 [qlcnic]
    [161846.962649]  [<ffffffffa028cb8b>] qlcnic_83xx_change_l2_filter+0x2b/0x30 [qlcnic]
    [161846.962657]  [<ffffffff8160248b>] ? __skb_flow_dissect+0x18b/0x650
    [161846.962670]  [<ffffffffa02856e5>] qlcnic_send_filter+0x205/0x250 [qlcnic]
    [161846.962682]  [<ffffffffa0285c77>] qlcnic_xmit_frame+0x547/0x7b0 [qlcnic]
    [161846.962691]  [<ffffffff8160ac22>] xmit_one+0x82/0x1a0
    [161846.962696]  [<ffffffff8160ad90>] dev_hard_start_xmit+0x50/0xa0
    [161846.962701]  [<ffffffff81630112>] sch_direct_xmit+0x112/0x220
    [161846.962706]  [<ffffffff8160b80f>] __dev_queue_xmit+0x1df/0x5e0
    [161846.962710]  [<ffffffff8160bc33>] dev_queue_xmit_sk+0x13/0x20
    [161846.962721]  [<ffffffffa0575bd5>] bond_dev_queue_xmit+0x35/0x80 [bonding]
    [161846.962729]  [<ffffffffa05769fb>] __bond_start_xmit+0x1cb/0x210 [bonding]
    [161846.962736]  [<ffffffffa0576a71>] bond_start_xmit+0x31/0x60 [bonding]
    [161846.962740]  [<ffffffff8160ac22>] xmit_one+0x82/0x1a0
    [161846.962745]  [<ffffffff8160ad90>] dev_hard_start_xmit+0x50/0xa0
    [161846.962749]  [<ffffffff8160bb1e>] __dev_queue_xmit+0x4ee/0x5e0
    [161846.962754]  [<ffffffff8160bc33>] dev_queue_xmit_sk+0x13/0x20
    [161846.962760]  [<ffffffffa05cfa72>] vlan_dev_hard_start_xmit+0xb2/0x150 [8021q]
    [161846.962764]  [<ffffffff8160ac22>] xmit_one+0x82/0x1a0
    [161846.962769]  [<ffffffff8160ad90>] dev_hard_start_xmit+0x50/0xa0
    [161846.962773]  [<ffffffff8160bb1e>] __dev_queue_xmit+0x4ee/0x5e0
    [161846.962777]  [<ffffffff8160bc33>] dev_queue_xmit_sk+0x13/0x20
    [161846.962789]  [<ffffffffa05adf74>] br_dev_queue_push_xmit+0x54/0xa0 [bridge]
    [161846.962797]  [<ffffffffa05ae4ff>] br_forward_finish+0x2f/0x90 [bridge]
    [161846.962807]  [<ffffffff810b0dad>] ? ttwu_do_wakeup+0x1d/0x100
    [161846.962811]  [<ffffffff815f929b>] ? __alloc_skb+0x8b/0x1f0
    [161846.962818]  [<ffffffffa05ae04d>] __br_forward+0x8d/0x120 [bridge]
    [161846.962822]  [<ffffffff815f613b>] ? __kmalloc_reserve+0x3b/0xa0
    [161846.962829]  [<ffffffff810be55e>] ? update_rq_runnable_avg+0xee/0x230
    [161846.962836]  [<ffffffffa05ae176>] br_forward+0x96/0xb0 [bridge]
    [161846.962845]  [<ffffffffa05af85e>] br_handle_frame_finish+0x1ae/0x420 [bridge]
    [161846.962853]  [<ffffffffa05afc4f>] br_handle_frame+0x17f/0x260 [bridge]
    [161846.962862]  [<ffffffffa05afad0>] ? br_handle_frame_finish+0x420/0x420 [bridge]
    [161846.962867]  [<ffffffff8160d057>] __netif_receive_skb_core+0x1f7/0x870
    [161846.962872]  [<ffffffff8160d6f2>] __netif_receive_skb+0x22/0x70
    [161846.962877]  [<ffffffff8160d913>] netif_receive_skb_internal+0x23/0x90
    [161846.962884]  [<ffffffffa07512ea>] ? xenvif_idx_release+0xea/0x100 [xen_netback]
    [161846.962889]  [<ffffffff816e5a10>] ? _raw_spin_unlock_irqrestore+0x20/0x50
    [161846.962893]  [<ffffffff8160e624>] netif_receive_skb_sk+0x24/0x90
    [161846.962899]  [<ffffffffa075269a>] xenvif_tx_submit+0x2ca/0x3f0 [xen_netback]
    [161846.962906]  [<ffffffffa0753f0c>] xenvif_tx_action+0x9c/0xd0 [xen_netback]
    [161846.962915]  [<ffffffffa07567f5>] xenvif_poll+0x35/0x70 [xen_netback]
    [161846.962920]  [<ffffffff8160e01b>] napi_poll+0xcb/0x1e0
    [161846.962925]  [<ffffffff8160e1c0>] net_rx_action+0x90/0x1c0
    [161846.962931]  [<ffffffff8108aaba>] __do_softirq+0x10a/0x350
    [161846.962938]  [<ffffffff8108ae75>] irq_exit+0x125/0x130
    [161846.962943]  [<ffffffff813f03a9>] xen_evtchn_do_upcall+0x39/0x50
    [161846.962950]  [<ffffffff816e7ffe>] xen_do_hypervisor_callback+0x1e/0x40
    [161846.962952]  <EOI>
    [161846.962959]  [<ffffffff816e5c4a>] ? _raw_spin_lock+0x4a/0x80
    [161846.962964]  [<ffffffff816e5b1e>] ? _raw_spin_lock_irqsave+0x1e/0xa0
    [161846.962978]  [<ffffffffa028e279>] ? qlcnic_83xx_mailbox_worker+0xb9/0x2a0 [qlcnic]
    [161846.962991]  [<ffffffff810a14e1>] ? process_one_work+0x151/0x4b0
    [161846.962995]  [<ffffffff8100c3f2>] ? check_events+0x12/0x20
    [161846.963001]  [<ffffffff810a1960>] ? worker_thread+0x120/0x480
    [161846.963005]  [<ffffffff816e187b>] ? __schedule+0x30b/0x890
    [161846.963010]  [<ffffffff810a1840>] ? process_one_work+0x4b0/0x4b0
    [161846.963015]  [<ffffffff810a1840>] ? process_one_work+0x4b0/0x4b0
    [161846.963021]  [<ffffffff810a6b3e>] ? kthread+0xce/0xf0
    [161846.963025]  [<ffffffff810a6a70>] ? kthread_freezable_should_stop+0x70/0x70
    [161846.963031]  [<ffffffff816e6522>] ? ret_from_fork+0x42/0x70
    [161846.963035]  [<ffffffff810a6a70>] ? kthread_freezable_should_stop+0x70/0x70
    [161846.963037] Code: cc 51 41 53 b8 1c 00 00 00 0f 05 41 5b 59 c3 cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc 51 41 53 b8 1d 00 00 00 0f 05 <41> 5b 59 c3 cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc
    
    Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec1e18fda7c663dac7a2bb7b695981489aa3ff87
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Feb 1 10:26:57 2018 -0800

    net: igmp: add a missing rcu locking section
    
    
    [ Upstream commit e7aadb27a5415e8125834b84a74477bfbee4eff5 ]
    
    Newly added igmpv3_get_srcaddr() needs to be called under rcu lock.
    
    Timer callbacks do not ensure this locking.
    
    =============================
    WARNING: suspicious RCU usage
    4.15.0+ #200 Not tainted
    -----------------------------
    ./include/linux/inetdevice.h:216 suspicious rcu_dereference_check() usage!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 2, debug_locks = 1
    3 locks held by syzkaller616973/4074:
     #0:  (&mm->mmap_sem){++++}, at: [<00000000bfce669e>] __do_page_fault+0x32d/0xc90 arch/x86/mm/fault.c:1355
     #1:  ((&im->timer)){+.-.}, at: [<00000000619d2f71>] lockdep_copy_map include/linux/lockdep.h:178 [inline]
     #1:  ((&im->timer)){+.-.}, at: [<00000000619d2f71>] call_timer_fn+0x1c6/0x820 kernel/time/timer.c:1316
     #2:  (&(&im->lock)->rlock){+.-.}, at: [<000000005f833c5c>] spin_lock_bh include/linux/spinlock.h:315 [inline]
     #2:  (&(&im->lock)->rlock){+.-.}, at: [<000000005f833c5c>] igmpv3_send_report+0x98/0x5b0 net/ipv4/igmp.c:600
    
    stack backtrace:
    CPU: 0 PID: 4074 Comm: syzkaller616973 Not tainted 4.15.0+ #200
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     <IRQ>
     __dump_stack lib/dump_stack.c:17 [inline]
     dump_stack+0x194/0x257 lib/dump_stack.c:53
     lockdep_rcu_suspicious+0x123/0x170 kernel/locking/lockdep.c:4592
     __in_dev_get_rcu include/linux/inetdevice.h:216 [inline]
     igmpv3_get_srcaddr net/ipv4/igmp.c:329 [inline]
     igmpv3_newpack+0xeef/0x12e0 net/ipv4/igmp.c:389
     add_grhead.isra.27+0x235/0x300 net/ipv4/igmp.c:432
     add_grec+0xbd3/0x1170 net/ipv4/igmp.c:565
     igmpv3_send_report+0xd5/0x5b0 net/ipv4/igmp.c:605
     igmp_send_report+0xc43/0x1050 net/ipv4/igmp.c:722
     igmp_timer_expire+0x322/0x5c0 net/ipv4/igmp.c:831
     call_timer_fn+0x228/0x820 kernel/time/timer.c:1326
     expire_timers kernel/time/timer.c:1363 [inline]
     __run_timers+0x7ee/0xb70 kernel/time/timer.c:1666
     run_timer_softirq+0x4c/0x70 kernel/time/timer.c:1692
     __do_softirq+0x2d7/0xb85 kernel/softirq.c:285
     invoke_softirq kernel/softirq.c:365 [inline]
     irq_exit+0x1cc/0x200 kernel/softirq.c:405
     exiting_irq arch/x86/include/asm/apic.h:541 [inline]
     smp_apic_timer_interrupt+0x16b/0x700 arch/x86/kernel/apic/apic.c:1052
     apic_timer_interrupt+0xa9/0xb0 arch/x86/entry/entry_64.S:938
    
    Fixes: a46182b00290 ("net: igmp: Use correct source address on IGMPv3 reports")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6598ee1deb37afa19a18d5dc31c6ad235df4fcd4
Author: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Date:   Wed Jan 31 16:29:30 2018 +0200

    ip6mr: fix stale iterator
    
    
    [ Upstream commit 4adfa79fc254efb7b0eb3cd58f62c2c3f805f1ba ]
    
    When we dump the ip6mr mfc entries via proc, we initialize an iterator
    with the table to dump but we don't clear the cache pointer which might
    be initialized from a prior read on the same descriptor that ended. This
    can result in lock imbalance (an unnecessary unlock) leading to other
    crashes and hangs. Clear the cache pointer like ipmr does to fix the issue.
    Thanks for the reliable reproducer.
    
    Here's syzbot's trace:
     WARNING: bad unlock balance detected!
     4.15.0-rc3+ #128 Not tainted
     syzkaller971460/3195 is trying to release lock (mrt_lock) at:
     [<000000006898068d>] ipmr_mfc_seq_stop+0xe1/0x130 net/ipv6/ip6mr.c:553
     but there are no more locks to release!
    
     other info that might help us debug this:
     1 lock held by syzkaller971460/3195:
      #0:  (&p->lock){+.+.}, at: [<00000000744a6565>] seq_read+0xd5/0x13d0
     fs/seq_file.c:165
    
     stack backtrace:
     CPU: 1 PID: 3195 Comm: syzkaller971460 Not tainted 4.15.0-rc3+ #128
     Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
     Google 01/01/2011
     Call Trace:
      __dump_stack lib/dump_stack.c:17 [inline]
      dump_stack+0x194/0x257 lib/dump_stack.c:53
      print_unlock_imbalance_bug+0x12f/0x140 kernel/locking/lockdep.c:3561
      __lock_release kernel/locking/lockdep.c:3775 [inline]
      lock_release+0x5f9/0xda0 kernel/locking/lockdep.c:4023
      __raw_read_unlock include/linux/rwlock_api_smp.h:225 [inline]
      _raw_read_unlock+0x1a/0x30 kernel/locking/spinlock.c:255
      ipmr_mfc_seq_stop+0xe1/0x130 net/ipv6/ip6mr.c:553
      traverse+0x3bc/0xa00 fs/seq_file.c:135
      seq_read+0x96a/0x13d0 fs/seq_file.c:189
      proc_reg_read+0xef/0x170 fs/proc/inode.c:217
      do_loop_readv_writev fs/read_write.c:673 [inline]
      do_iter_read+0x3db/0x5b0 fs/read_write.c:897
      compat_readv+0x1bf/0x270 fs/read_write.c:1140
      do_compat_preadv64+0xdc/0x100 fs/read_write.c:1189
      C_SYSC_preadv fs/read_write.c:1209 [inline]
      compat_SyS_preadv+0x3b/0x50 fs/read_write.c:1203
      do_syscall_32_irqs_on arch/x86/entry/common.c:327 [inline]
      do_fast_syscall_32+0x3ee/0xf9d arch/x86/entry/common.c:389
      entry_SYSENTER_compat+0x51/0x60 arch/x86/entry/entry_64_compat.S:125
     RIP: 0023:0xf7f73c79
     RSP: 002b:00000000e574a15c EFLAGS: 00000292 ORIG_RAX: 000000000000014d
     RAX: ffffffffffffffda RBX: 000000000000000f RCX: 0000000020a3afb0
     RDX: 0000000000000001 RSI: 0000000000000067 RDI: 0000000000000000
     RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
     R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
     R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
     BUG: sleeping function called from invalid context at lib/usercopy.c:25
     in_atomic(): 1, irqs_disabled(): 0, pid: 3195, name: syzkaller971460
     INFO: lockdep is turned off.
     CPU: 1 PID: 3195 Comm: syzkaller971460 Not tainted 4.15.0-rc3+ #128
     Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
     Google 01/01/2011
     Call Trace:
      __dump_stack lib/dump_stack.c:17 [inline]
      dump_stack+0x194/0x257 lib/dump_stack.c:53
      ___might_sleep+0x2b2/0x470 kernel/sched/core.c:6060
      __might_sleep+0x95/0x190 kernel/sched/core.c:6013
      __might_fault+0xab/0x1d0 mm/memory.c:4525
      _copy_to_user+0x2c/0xc0 lib/usercopy.c:25
      copy_to_user include/linux/uaccess.h:155 [inline]
      seq_read+0xcb4/0x13d0 fs/seq_file.c:279
      proc_reg_read+0xef/0x170 fs/proc/inode.c:217
      do_loop_readv_writev fs/read_write.c:673 [inline]
      do_iter_read+0x3db/0x5b0 fs/read_write.c:897
      compat_readv+0x1bf/0x270 fs/read_write.c:1140
      do_compat_preadv64+0xdc/0x100 fs/read_write.c:1189
      C_SYSC_preadv fs/read_write.c:1209 [inline]
      compat_SyS_preadv+0x3b/0x50 fs/read_write.c:1203
      do_syscall_32_irqs_on arch/x86/entry/common.c:327 [inline]
      do_fast_syscall_32+0x3ee/0xf9d arch/x86/entry/common.c:389
      entry_SYSENTER_compat+0x51/0x60 arch/x86/entry/entry_64_compat.S:125
     RIP: 0023:0xf7f73c79
     RSP: 002b:00000000e574a15c EFLAGS: 00000292 ORIG_RAX: 000000000000014d
     RAX: ffffffffffffffda RBX: 000000000000000f RCX: 0000000020a3afb0
     RDX: 0000000000000001 RSI: 0000000000000067 RDI: 0000000000000000
     RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
     R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
     R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
     WARNING: CPU: 1 PID: 3195 at lib/usercopy.c:26 _copy_to_user+0xb5/0xc0
     lib/usercopy.c:26
    
    Reported-by: syzbot <bot+eceb3204562c41a438fa1f2335e0fe4f6886d669@syzkaller.appspotmail.com>
    Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8cec497214a1512cda737f87cbdd491260acefa4
Author: Jason Wang <jasowang@redhat.com>
Date:   Thu Jan 25 22:03:52 2018 +0800

    vhost_net: stop device during reset owner
    
    
    [ Upstream commit 4cd879515d686849eec5f718aeac62a70b067d82 ]
    
    We don't stop device before reset owner, this means we could try to
    serve any virtqueue kick before reset dev->worker. This will result a
    warn since the work was pending at llist during owner resetting. Fix
    this by stopping device during owner reset.
    
    Reported-by: syzbot+eb17c6162478cc50632c@syzkaller.appspotmail.com
    Fixes: 3a4d5c94e9593 ("vhost_net: a kernel-level virtio server")
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>