commit 9c2f007c3c5e713749227f179fbe926ce1d38407
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Dec 13 09:20:30 2018 +0100

    Linux 4.9.145

commit 4c219af48b1e64222a71af333caf574deb5e1b2f
Author: Stefan Agner <stefan@agner.ch>
Date:   Wed Dec 5 16:45:26 2018 -0800

    kbuild: allow to use GCC toolchain not in Clang search path
    
    (commit ef8c4ed9db80261f397f0c0bf723684601ae3b52 upstream)
    
    When using a GCC cross toolchain which is not in a compiled in
    Clang search path, Clang reverts to the system assembler and
    linker. This leads to assembler or linker errors, depending on
    which tool is first used for a given architecture.
    
    It seems that Clang is not searching $PATH for a matching
    assembler or linker.
    
    Make sure that Clang picks up the correct assembler or linker by
    passing the cross compilers bin directory as search path.
    
    This allows to use Clang provided by distributions with GCC
    toolchains not in /usr/bin.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/78
    Signed-off-by: Stefan Agner <stefan@agner.ch>
    Reviewed-and-tested-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    [ND: adjusted to context, due to adjusting the context of my previous
    backport of upstream's ae6b289a3789]
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 51d137cab5c701b607f3fbc38f1cf22692184c17
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Tue Dec 4 15:39:42 2018 -0800

    kbuild: fix linker feature test macros when cross compiling with Clang
    
    (commit 86a9df597cdd564d2d29c65897bcad42519e3678 upstream)
    
    I was not seeing my linker flags getting added when using ld-option when
    cross compiling with Clang. Upon investigation, this seems to be due to
    a difference in how GCC vs Clang handle cross compilation.
    
    GCC is configured at build time to support one backend, that is implicit
    when compiling.  Clang is explicit via the use of `-target <triple>` and
    ships with all supported backends by default.
    
    GNU Make feature test macros that compile then link will always fail
    when cross compiling with Clang unless Clang's triple is passed along to
    the compiler. For example:
    
    $ clang -x c /dev/null -c -o temp.o
    $ aarch64-linux-android/bin/ld -E temp.o
    aarch64-linux-android/bin/ld:
    unknown architecture of input file `temp.o' is incompatible with
    aarch64 output
    aarch64-linux-android/bin/ld:
    warning: cannot find entry symbol _start; defaulting to
    0000000000400078
    $ echo $?
    1
    
    $ clang -target aarch64-linux-android- -x c /dev/null -c -o temp.o
    $ aarch64-linux-android/bin/ld -E temp.o
    aarch64-linux-android/bin/ld:
    warning: cannot find entry symbol _start; defaulting to 00000000004002e4
    $ echo $?
    0
    
    This causes conditional checks that invoke $(CC) without the target
    triple, then $(LD) on the result, to always fail.
    
    Suggested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    [ND: readjusted for context]
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd54ea7049bd0fd624707fdb732de79af6f584f7
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Mon Dec 3 21:16:07 2018 +0200

    mac80211: ignore NullFunc frames in the duplicate detection
    
    commit 990d71846a0b7281bd933c34d734e6afc7408e7e upstream.
    
    NullFunc packets should never be duplicate just like
    QoS-NullFunc packets.
    
    We saw a client that enters / exits power save with
    NullFunc frames (and not with QoS-NullFunc) despite the
    fact that the association supports HT.
    This specific client also re-uses a non-zero sequence number
    for different NullFunc frames.
    At some point, the client had to send a retransmission of
    the NullFunc frame and we dropped it, leading to a
    misalignment in the power save state.
    Fix this by never consider a NullFunc frame as duplicate,
    just like we do for QoS NullFunc frames.
    
    This fixes https://bugzilla.kernel.org/show_bug.cgi?id=201449
    
    CC: <stable@vger.kernel.org>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db32c245a486f3623b3c9bc70e81bbf6e3d30e0c
Author: Felix Fietkau <nbd@nbd.name>
Date:   Wed Nov 28 22:39:16 2018 +0100

    mac80211: fix reordering of buffered broadcast packets
    
    commit 9ec1190d065998650fd9260dea8cf3e1f56c0e8c upstream.
    
    If the buffered broadcast queue contains packets, letting new packets bypass
    that queue can lead to heavy reordering, since the driver is probably throttling
    transmission of buffered multicast packets after beacons.
    
    Keep buffering packets until the buffer has been cleared (and no client
    is in powersave mode).
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7df29ead86c521daeec311a30c6fabdfb9963dc0
Author: Felix Fietkau <nbd@nbd.name>
Date:   Tue Nov 13 20:32:13 2018 +0100

    mac80211: ignore tx status for PS stations in ieee80211_tx_status_ext
    
    commit a317e65face482371de30246b6494feb093ff7f9 upstream.
    
    Make it behave like regular ieee80211_tx_status calls, except for the lack of
    filtered frame processing.
    This fixes spurious low-ack triggered disconnections with powersave clients
    connected to an AP.
    
    Fixes: f027c2aca0cf4 ("mac80211: add ieee80211_tx_status_noskb")
    Cc: stable@vger.kernel.org
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 554eac28f83e296e865d5362f82237798621013e
Author: Ben Greear <greearb@candelatech.com>
Date:   Tue Oct 23 13:36:52 2018 -0700

    mac80211: Clear beacon_int in ieee80211_do_stop
    
    commit 5c21e8100dfd57c806e833ae905e26efbb87840f upstream.
    
    This fixes stale beacon-int values that would keep a netdev
    from going up.
    
    To reproduce:
    
    Create two VAP on one radio.
    vap1 has beacon-int 100, start it.
    vap2 has beacon-int 240, start it (and it will fail
      because beacon-int mismatch).
    reconfigure vap2 to have beacon-int 100 and start it.
      It will fail because the stale beacon-int 240 will be used
      in the ifup path and hostapd never gets a chance to set the
      new beacon interval.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ben Greear <greearb@candelatech.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a492ce1b6d540e1bd218db681f10a1ea46254ff
Author: Vasyl Vavrychuk <vasyl.vavrychuk@globallogic.com>
Date:   Thu Oct 18 01:02:12 2018 +0300

    mac80211_hwsim: Timer should be initialized before device registered
    
    commit a1881c9b8a1edef0a5ae1d5c1b61406fe3402114 upstream.
    
    Otherwise if network manager starts configuring Wi-Fi interface
    immidiatelly after getting notification of its creation, we will get
    NULL pointer dereference:
    
      BUG: unable to handle kernel NULL pointer dereference at           (null)
      IP: [<ffffffff95ae94c8>] hrtimer_active+0x28/0x50
      ...
      Call Trace:
       [<ffffffff95ae9997>] ? hrtimer_try_to_cancel+0x27/0x110
       [<ffffffff95ae9a95>] ? hrtimer_cancel+0x15/0x20
       [<ffffffffc0803bf0>] ? mac80211_hwsim_config+0x140/0x1c0 [mac80211_hwsim]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Vasyl Vavrychuk <vasyl.vavrychuk@globallogic.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d86192748a9bb56df26e9eb664c637169ea64cd
Author: Macpaul Lin <macpaul@gmail.com>
Date:   Wed Oct 17 23:08:38 2018 +0800

    kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var()
    
    commit dada6a43b0402eba438a17ac86fdc64ac56a4607 upstream.
    
    This patch is trying to fix KE issue due to
    "BUG: KASAN: global-out-of-bounds in param_set_kgdboc_var+0x194/0x198"
    reported by Syzkaller scan."
    
    [26364:syz-executor0][name:report8t]BUG: KASAN: global-out-of-bounds in param_set_kgdboc_var+0x194/0x198
    [26364:syz-executor0][name:report&]Read of size 1 at addr ffffff900e44f95f by task syz-executor0/26364
    [26364:syz-executor0][name:report&]
    [26364:syz-executor0]CPU: 7 PID: 26364 Comm: syz-executor0 Tainted: G W 0
    [26364:syz-executor0]Call trace:
    [26364:syz-executor0][<ffffff9008095cf8>] dump_bacIctrace+Ox0/0x470
    [26364:syz-executor0][<ffffff9008096de0>] show_stack+0x20/0x30
    [26364:syz-executor0][<ffffff90089cc9c8>] dump_stack+Oxd8/0x128
    [26364:syz-executor0][<ffffff90084edb38>] print_address_description +0x80/0x4a8
    [26364:syz-executor0][<ffffff90084ee270>] kasan_report+Ox178/0x390
    [26364:syz-executor0][<ffffff90084ee4a0>] _asan_report_loadi_noabort+Ox18/0x20
    [26364:syz-executor0][<ffffff9008b092ac>] param_set_kgdboc_var+Ox194/0x198
    [26364:syz-executor0][<ffffff900813af64>] param_attr_store+Ox14c/0x270
    [26364:syz-executor0][<ffffff90081394c8>] module_attr_store+0x60/0x90
    [26364:syz-executor0][<ffffff90086690c0>] sysfs_kl_write+Ox100/0x158
    [26364:syz-executor0][<ffffff9008666d84>] kernfs_fop_write+0x27c/0x3a8
    [26364:syz-executor0][<ffffff9008508264>] do_loop_readv_writev+0x114/0x1b0
    [26364:syz-executor0][<ffffff9008509ac8>] do_readv_writev+0x4f8/0x5e0
    [26364:syz-executor0][<ffffff9008509ce4>] vfs_writev+0x7c/Oxb8
    [26364:syz-executor0][<ffffff900850ba64>] SyS_writev+Oxcc/0x208
    [26364:syz-executor0][<ffffff90080883f0>] elO_svc_naked +0x24/0x28
    [26364:syz-executor0][name:report&]
    [26364:syz-executor0][name:report&]The buggy address belongs to the variable:
    [26364:syz-executor0][name:report&] kgdb_tty_line+Ox3f/0x40
    [26364:syz-executor0][name:report&]
    [26364:syz-executor0][name:report&]Memory state around the buggy address:
    [26364:syz-executor0] ffffff900e44f800: 00 00 00 00 00 04 fa fa fa fa fa fa 00 fa fa fa
    [26364:syz-executor0] ffffff900e44f880: fa fa fa fa 00 fa fa fa fa fa fa fa 00 fa fa fa
    [26364:syz-executor0]> ffffff900e44f900: fa fa fa fa 04 fa fa fa fa fa fa fa 00 00 00 00
    [26364:syz-executor0][name:report&]                                       ^
    [26364:syz-executor0] ffffff900e44f980: 00 fa fa fa fa fa fa fa 04 fa fa fa fa fa fa fa
    [26364:syz-executor0] ffffff900e44fa00: 04 fa fa fa fa fa fa fa 00 fa fa fa fa fa fa fa
    [26364:syz-executor0][name:report&]
    [26364:syz-executor0][name:panic&]Disabling lock debugging due to kernel taint
    [26364:syz-executor0]------------[cut here]------------
    
    After checking the source code, we've found there might be an out-of-bounds
    access to "config[len - 1]" array when the variable "len" is zero.
    
    Signed-off-by: Macpaul Lin <macpaul@gmail.com>
    Acked-by: Daniel Thompson <daniel.thompson@linaro.org>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9696ca9071f3302bb9ae2d53887968a572247f59
Author: Chanho Park <parkch98@gmail.com>
Date:   Thu Nov 22 18:23:47 2018 +0900

    tty: do not set TTY_IO_ERROR flag if console port
    
    commit 2a48602615e0a2f563549c7d5c8d507f904cf96e upstream.
    
    Since Commit 761ed4a94582 ('tty: serial_core: convert uart_close to use
    tty_port_close') and Commit 4dda864d7307 ('tty: serial_core: Fix serial
    console crash on port shutdown), a serial port which is used as
    console can be stuck when logging out if there is a remained process.
    After logged out, agetty will try to grab the serial port but it will
    be failed because the previous process did not release the port
    correctly. To fix this, TTY_IO_ERROR bit should not be enabled of
    tty_port_close if the port is console port.
    
    Reproduce step:
    - Run background processes from serial console
    $ while true; do sleep 10; done &
    
    - Log out
    $ logout
    -> Stuck
    
    - Read journal log by journalctl | tail
    Jan 28 16:07:01 ubuntu systemd[1]: Stopped Serial Getty on ttyAMA0.
    Jan 28 16:07:01 ubuntu systemd[1]: Started Serial Getty on ttyAMA0.
    Jan 28 16:07:02 ubuntu agetty[1643]: /dev/ttyAMA0: not a tty
    
    Fixes: 761ed4a94582 ("tty: serial_core: convert uart_close to use tty_port_close")
    Cc: Geert Uytterhoeven <geert+renesas@glider.be>
    Cc: Rob Herring <robh@kernel.org>
    Cc: Jiri Slaby <jslaby@suse.com>
    Signed-off-by: Chanho Park <parkch98@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32445bd5c72b97927ecb362a9ec099c2eb3107e9
Author: Peter Shih <pihsun@chromium.org>
Date:   Tue Nov 27 12:49:50 2018 +0800

    tty: serial: 8250_mtk: always resume the device in probe.
    
    commit 100bc3e2bebf95506da57cbdf5f26b25f6da4c81 upstream.
    
    serial8250_register_8250_port calls uart_config_port, which calls
    config_port on the port before it tries to power on the port. So we need
    the port to be on before calling serial8250_register_8250_port. Change
    the code to always do a runtime resume in probe before registering port,
    and always do a runtime suspend in remove.
    
    This basically reverts the change in commit 68e5fc4a255a ("tty: serial:
    8250_mtk: use pm_runtime callbacks for enabling"), but still use
    pm_runtime callbacks.
    
    Fixes: 68e5fc4a255a ("tty: serial: 8250_mtk: use pm_runtime callbacks for enabling")
    Signed-off-by: Peter Shih <pihsun@chromium.org>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 902d410d3dbe591e4669b64b00fa90285a101dd5
Author: Young Xiao <YangX92@hotmail.com>
Date:   Wed Nov 28 08:06:53 2018 +0000

    staging: rtl8712: Fix possible buffer overrun
    
    commit 300cd664865bed5d50ae0a42fb4e3a6f415e8a10 upstream.
    
    In commit 8b7a13c3f404 ("staging: r8712u: Fix possible buffer
    overrun") we fix a potential off by one by making the limit smaller.
    The better fix is to make the buffer larger.  This makes it match up
    with the similar code in other drivers.
    
    Fixes: 8b7a13c3f404 ("staging: r8712u: Fix possible buffer overrun")
    Signed-off-by: Young Xiao <YangX92@hotmail.com>
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fcfc76397dbd253cee51eb3fc84c9f03602ece9b
Author: Paulo Alcantara <palcantara@suse.com>
Date:   Thu Nov 15 15:20:52 2018 +0100

    cifs: Fix separator when building path from dentry
    
    commit c988de29ca161823db6a7125e803d597ef75b49c upstream.
    
    Make sure to use the CIFS_DIR_SEP(cifs_sb) as path separator for
    prefixpath too. Fixes a bug with smb1 UNIX extensions.
    
    Fixes: a6b5058fafdf ("fs/cifs: make share unaccessible at root level mountable")
    Signed-off-by: Paulo Alcantara <palcantara@suse.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f5b76794a49a1e885b7d95534e57eea8e38cd15
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Dec 11 13:50:37 2018 +0100

    Staging: lustre: remove two build warnings
    
    [for older kernels only, lustre has been removed from upstream]
    
    When someone writes:
            strncpy(dest, source, sizeof(source));
    they really are just doing the same thing as:
            strcpy(dest, source);
    but somehow they feel better because they are now using the "safe"
    version of the string functions.  Cargo-cult programming at its
    finest...
    
    gcc-8 rightfully warns you about doing foolish things like this.  Now
    that the stable kernels are all starting to be built using gcc-8, let's
    get rid of this warning so that we do not have to gaze at this horror.
    
    To dropt the warning, just convert the code to using strcpy() so that if
    someone really wants to audit this code and find all of the obvious
    problems, it will be easier to do so.
    
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 569fc4ffb5de8f12fe01759f0b85098b7b9bba8e
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date:   Mon Nov 5 10:35:47 2018 +0000

    vhost/vsock: fix use-after-free in network stack callers
    
    [ Upstream commit 834e772c8db0c6a275d75315d90aba4ebbb1e249 ]
    
    If the network stack calls .send_pkt()/.cancel_pkt() during .release(),
    a struct vhost_vsock use-after-free is possible.  This occurs because
    .release() does not wait for other CPUs to stop using struct
    vhost_vsock.
    
    Switch to an RCU-enabled hashtable (indexed by guest CID) so that
    .release() can wait for other CPUs by calling synchronize_rcu().  This
    also eliminates vhost_vsock_lock acquisition in the data path so it
    could have a positive effect on performance.
    
    This is CVE-2018-14625 "kernel: use-after-free Read in vhost_transport_send_pkt".
    
    Cc: stable@vger.kernel.org
    Reported-and-tested-by: syzbot+bd391451452fb0b93039@syzkaller.appspotmail.com
    Reported-by: syzbot+e3e074963495f92a89ed@syzkaller.appspotmail.com
    Reported-by: syzbot+d5a0a170c5069658b141@syzkaller.appspotmail.com
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2d5a1b31799efcd37a57fe4d2f492d8dc2a0a334
Author: Gao feng <omarapazanadi@gmail.com>
Date:   Wed Dec 14 19:24:36 2016 +0800

    vsock: lookup and setup guest_cid inside vhost_vsock_lock
    
    [ Upstream commit 6c083c2b8a0a110cad936bc0a2c089f0d8115175 ]
    
    Multi vsocks may setup the same cid at the same time.
    
    Signed-off-by: Gao feng <omarapazanadi@gmail.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit adcc5726f1402e7ea39bebd08688efcc09ba4d26
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Dec 10 18:14:06 2018 +0000

    swiotlb: clean up reporting
    
    commit 7d63fb3af87aa67aa7d24466e792f9d7c57d8e79 upstream.
    
    This removes needless use of '%p', and refactors the printk calls to
    use pr_*() helpers instead.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    [bwh: Backported to 4.9:
     - Adjust filename
     - Remove "swiotlb: " prefix from an additional log message]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb101349f51699074fc1739534cb4346a49e56ef
Author: Jens Axboe <axboe@kernel.dk>
Date:   Mon Dec 10 18:14:16 2018 +0000

    sr: pass down correctly sized SCSI sense buffer
    
    commit f7068114d45ec55996b9040e98111afa56e010fe upstream.
    
    We're casting the CDROM layer request_sense to the SCSI sense
    buffer, but the former is 64 bytes and the latter is 96 bytes.
    As we generally allocate these on the stack, we end up blowing
    up the stack.
    
    Fix this by wrapping the scsi_execute() call with a properly
    sized sense buffer, and copying back the bits for the CDROM
    layer.
    
    Reported-by: Piotr Gabriel Kosinski <pg.kosinski@gmail.com>
    Reported-by: Daniel Shapira <daniel@twistlock.com>
    Tested-by: Kees Cook <keescook@chromium.org>
    Fixes: 82ed4db499b8 ("block: split scsi_request out of struct request")
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    [bwh: Despite what the "Fixes" field says, a buffer overrun was already
     possible if the sense data was really > 64 bytes long.
     Backported to 4.9:
     - We always need to allocate a sense buffer in order to call
       scsi_normalize_sense()
     - Remove the existing conditional heap-allocation of the sense buffer]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d65afda688f3aae97da58ce401f65e76f659cfa8
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Wed Dec 5 14:22:39 2018 +0200

    xhci: Prevent U1/U2 link pm states if exit latency is too long
    
    commit 0472bf06c6fd33c1a18aaead4c8f91e5a03d8d7b upstream.
    
    Don't allow USB3 U1 or U2 if the latency to wake up from the U-state
    reaches the service interval for a periodic endpoint.
    
    This is according to xhci 1.1 specification section 4.23.5.2 extra note:
    
    "Software shall ensure that a device is prevented from entering a U-state
     where its worst case exit latency approaches the ESIT."
    
    Allowing too long exit latencies for periodic endpoint confuses xHC
    internal scheduling, and new devices may fail to enumerate with a
    "Not enough bandwidth for new device state" error from the host.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f7170700fb2e262393ee948cf9c6cdc72717fc3
Author: Bin Liu <b-liu@ti.com>
Date:   Mon Nov 12 09:43:22 2018 -0600

    dmaengine: cppi41: delete channel from pending list when stop channel
    
    commit 59861547ec9a9736e7882f6fb0c096a720ff811a upstream.
    
    The driver defines three states for a cppi channel.
    - idle: .chan_busy == 0 && not in .pending list
    - pending: .chan_busy == 0 && in .pending list
    - busy: .chan_busy == 1 && not in .pending list
    
    There are cases in which the cppi channel could be in the pending state
    when cppi41_dma_issue_pending() is called after cppi41_runtime_suspend()
    is called.
    
    cppi41_stop_chan() has a bug for these cases to set channels to idle state.
    It only checks the .chan_busy flag, but not the .pending list, then later
    when cppi41_runtime_resume() is called the channels in .pending list will
    be transitioned to busy state.
    
    Removing channels from the .pending list solves the problem.
    
    Fixes: 975faaeb9985 ("dma: cppi41: start tear down only if channel is busy")
    Cc: stable@vger.kernel.org # v3.15+
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce4a99ac9017583c24b10283365217526d77f4dd
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Fri Nov 30 15:39:57 2018 -0500

    SUNRPC: Fix leak of krb5p encode pages
    
    commit 8dae5398ab1ac107b1517e8195ed043d5f422bd0 upstream.
    
    call_encode can be invoked more than once per RPC call. Ensure that
    each call to gss_wrap_req_priv does not overwrite pointers to
    previously allocated memory.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Cc: stable@kernel.org
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95e3e514c75284e77274e68f61e362004a120e72
Author: Halil Pasic <pasic@linux.ibm.com>
Date:   Wed Sep 26 18:48:30 2018 +0200

    virtio/s390: fix race in ccw_io_helper()
    
    commit 78b1a52e05c9db11d293342e8d6d8a230a04b4e7 upstream.
    
    While ccw_io_helper() seems like intended to be exclusive in a sense that
    it is supposed to facilitate I/O for at most one thread at any given
    time, there is actually nothing ensuring that threads won't pile up at
    vcdev->wait_q. If they do, all threads get woken up and see the status
    that belongs to some other request than their own. This can lead to bugs.
    For an example see:
    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1788432
    
    This race normally does not cause any problems. The operations provided
    by struct virtio_config_ops are usually invoked in a well defined
    sequence, normally don't fail, and are normally used quite infrequent
    too.
    
    Yet, if some of the these operations are directly triggered via sysfs
    attributes, like in the case described by the referenced bug, userspace
    is given an opportunity to force races by increasing the frequency of the
    given operations.
    
    Let us fix the problem by ensuring, that for each device, we finish
    processing the previous request before starting with a new one.
    
    Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
    Reported-by: Colin Ian King <colin.king@canonical.com>
    Cc: stable@vger.kernel.org
    Message-Id: <20180925121309.58524-3-pasic@linux.ibm.com>
    Signed-off-by: Cornelia Huck <cohuck@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92054f4de90ba3730d73a0cbe97d8ab1543f7c3a
Author: Halil Pasic <pasic@linux.ibm.com>
Date:   Wed Sep 26 18:48:29 2018 +0200

    virtio/s390: avoid race on vcdev->config
    
    commit 2448a299ec416a80f699940a86f4a6d9a4f643b1 upstream.
    
    Currently we have a race on vcdev->config in virtio_ccw_get_config() and
    in virtio_ccw_set_config().
    
    This normally does not cause problems, as these are usually infrequent
    operations. However, for some devices writing to/reading from the config
    space can be triggered through sysfs attributes. For these, userspace can
    force the race by increasing the frequency.
    
    Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
    Cc: stable@vger.kernel.org
    Message-Id: <20180925121309.58524-2-pasic@linux.ibm.com>
    Signed-off-by: Cornelia Huck <cohuck@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e51318e088c684c8f665556b2c4d2142aa8f85a
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Dec 3 10:44:15 2018 +0100

    ALSA: hda/realtek - Fix speaker output regression on Thinkpad T570
    
    commit 54947cd64c1b8290f64bb2958e343c07270e3a58 upstream.
    
    We've got a regression report for some Thinkpad models (at least
    T570s) which shows the too low speaker output volume.  The bisection
    leaded to the commit 61fcf8ece9b6 ("ALSA: hda/realtek - Enable Thinkpad
    Dock device for ALC298 platform"), and it's basically adding the two
    pin configurations for the dock, and looks harmless.
    
    The real culprit seems, though, that the DAC assignment for the
    speaker pin is implicitly assumed on these devices, i.e. pin NID 0x14
    to be coupled with DAC NID 0x03.  When more pins are configured by the
    commit above, the auto-parser changes the DAC assignment, and this
    resulted in the regression.
    
    As a workaround, just provide the fixed pin / DAC mapping table for
    this Thinkpad fixup function.  It's no generic solution, but the
    problem itself is pretty much device-specific, so must be good
    enough.
    
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1554304
    Fixes: 61fcf8ece9b6 ("ALSA: hda/realtek - Enable Thinkpad Dock device for ALC298 platform")
    Cc: <stable@vger.kernel.org>
    Reported-and-tested-by: Jeremy Cline <jcline@redhat.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1474395b4f97fbdde1bf13c835469678b01bf6f5
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Nov 29 12:05:19 2018 +0100

    ALSA: pcm: Fix interval evaluation with openmin/max
    
    commit 5363857b916c1f48027e9b96ee8be8376bf20811 upstream.
    
    As addressed in alsa-lib (commit b420056604f0), we need to fix the
    case where the evaluation of PCM interval "(x x+1]" leading to
    -EINVAL.  After applying rules, such an interval may be translated as
    "(x x+1)".
    
    Fixes: ff2d6acdf6f1 ("ALSA: pcm: Fix snd_interval_refine first/last with open min/max")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba9890ac551a7e979f3eb5f64ef6c7fc1762dd35
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Nov 29 08:02:49 2018 +0100

    ALSA: pcm: Call snd_pcm_unlink() conditionally at closing
    
    commit b51abed8355e5556886623b2772fa6b7598d2282 upstream.
    
    Currently the PCM core calls snd_pcm_unlink() always unconditionally
    at closing a stream.  However, since snd_pcm_unlink() invokes the
    global rwsem down, the lock can be easily contended.  More badly, when
    a thread runs in a high priority RT-FIFO, it may stall at spinning.
    
    Basically the call of snd_pcm_unlink() is required only for the linked
    streams that are already rare occasion.  For normal use cases, this
    code path is fairly superfluous.
    
    As an optimization (and also as a workaround for the RT problem
    above in normal situations without linked streams), this patch adds a
    check before calling snd_pcm_unlink() and calls it only when needed.
    
    Reported-by: Chanho Min <chanho.min@lge.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee8dce2bced18208cf85334012a84d2082022315
Author: Chanho Min <chanho.min@lge.com>
Date:   Mon Nov 26 14:36:37 2018 +0900

    ALSA: pcm: Fix starvation on down_write_nonblock()
    
    commit b888a5f713e4d17faaaff24316585a4eb07f35b7 upstream.
    
    Commit 67ec1072b053 ("ALSA: pcm: Fix rwsem deadlock for non-atomic PCM
    stream") fixes deadlock for non-atomic PCM stream. But, This patch
    causes antother stuck.
    If writer is RT thread and reader is a normal thread, the reader
    thread will be difficult to get scheduled. It may not give chance to
    release readlocks and writer gets stuck for a long time if they are
    pinned to single cpu.
    
    The deadlock described in the previous commit is because the linux
    rwsem queues like a FIFO. So, we might need non-FIFO writelock, not
    non-block one.
    
    My suggestion is that the writer gives reader a chance to be scheduled
    by using the minimum msleep() instaed of spinning without blocking by
    writer. Also, The *_nonblock may be changed to *_nonfifo appropriately
    to this concept.
    In terms of performance, when trylock is failed, this minimum periodic
    msleep will have the same performance as the tick-based
    schedule()/wake_up_q().
    
    [ Although this has a fairly high performance penalty, the relevant
      code path became already rare due to the previous commit ("ALSA:
      pcm: Call snd_pcm_unlink() conditionally at closing").  That is, now
      this unconditional msleep appears only when using linked streams,
      and this must be a rare case.  So we accept this as a quick
      workaround until finding a more suitable one -- tiwai ]
    
    Fixes: 67ec1072b053 ("ALSA: pcm: Fix rwsem deadlock for non-atomic PCM stream")
    Suggested-by: Wonmin Jung <wonmin.jung@lge.com>
    Signed-off-by: Chanho Min <chanho.min@lge.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46da53f3b79fdd6601153544280bb341db89e5ae
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Thu Nov 29 08:57:37 2018 +0000

    ALSA: hda: Add support for AMD Stoney Ridge
    
    commit 3deef52ce10514ccdebba8e8ab85f9cebd0eb3f7 upstream.
    
    It's similar to other AMD audio devices, it also supports D3, which can
    save some power drain.
    
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73000a4cec933fd331224df79df731ea929bb85c
Author: Hui Peng <benquike@gmail.com>
Date:   Mon Dec 3 16:09:34 2018 +0100

    ALSA: usb-audio: Fix UAF decrement if card has no live interfaces in card.c
    
    commit 5f8cf712582617d523120df67d392059eaf2fc4b upstream.
    
    If a USB sound card reports 0 interfaces, an error condition is triggered
    and the function usb_audio_probe errors out. In the error path, there was a
    use-after-free vulnerability where the memory object of the card was first
    freed, followed by a decrement of the number of active chips. Moving the
    decrement above the atomic_dec fixes the UAF.
    
    [ The original problem was introduced in 3.1 kernel, while it was
      developed in a different form.  The Fixes tag below indicates the
      original commit but it doesn't mean that the patch is applicable
      cleanly. -- tiwai ]
    
    Fixes: 362e4e49abe5 ("ALSA: usb-audio - clear chip->probing on error exit")
    Reported-by: Hui Peng <benquike@gmail.com>
    Reported-by: Mathias Payer <mathias.payer@nebelwelt.net>
    Signed-off-by: Hui Peng <benquike@gmail.com>
    Signed-off-by: Mathias Payer <mathias.payer@nebelwelt.net>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe26b8d06e965239795bee0a71c9073bed931716
Author: Mathias Payer <mathias.payer@nebelwelt.net>
Date:   Wed Dec 5 21:19:59 2018 +0100

    USB: check usb_get_extra_descriptor for proper size
    
    commit 704620afc70cf47abb9d6a1a57f3825d2bca49cf upstream.
    
    When reading an extra descriptor, we need to properly check the minimum
    and maximum size allowed, to prevent from invalid data being sent by a
    device.
    
    Reported-by: Hui Peng <benquike@gmail.com>
    Reported-by: Mathias Payer <mathias.payer@nebelwelt.net>
    Co-developed-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Hui Peng <benquike@gmail.com>
    Signed-off-by: Mathias Payer <mathias.payer@nebelwelt.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: stable <stable@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c037e8873e921758284caf62670c0c059ff5db80
Author: Alexander Theissen <alex.theissen@me.com>
Date:   Tue Dec 4 23:43:35 2018 +0100

    usb: appledisplay: Add 27" Apple Cinema Display
    
    commit d7859905301880ad3e16272399d26900af3ac496 upstream.
    
    Add another Apple Cinema Display to the list of supported displays.
    
    Signed-off-by: Alexander Theissen <alex.theissen@me.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2457aa820d3b330b241837780a1e7c972a2f9d9f
Author: Harry Pan <harry.pan@intel.com>
Date:   Thu Nov 29 00:40:41 2018 +0800

    usb: quirk: add no-LPM quirk on SanDisk Ultra Flair device
    
    commit 2f2dde6ba89b1ef1fe23c1138131b315d9aa4019 upstream.
    
    Some lower volume SanDisk Ultra Flair in 16GB, which the VID:PID is
    in 0781:5591, will aggressively request LPM of U1/U2 during runtime,
    when using this thumb drive as the OS installation key we found the
    device will generate failure during U1 exit path making it dropped
    from the USB bus, this causes a corrupted installation in system at
    the end.
    
    i.e.,
    [  166.918296] hub 2-0:1.0: state 7 ports 7 chg 0000 evt 0004
    [  166.918327] usb usb2-port2: link state change
    [  166.918337] usb usb2-port2: do warm reset
    [  166.970039] usb usb2-port2: not warm reset yet, waiting 50ms
    [  167.022040] usb usb2-port2: not warm reset yet, waiting 200ms
    [  167.276043] usb usb2-port2: status 02c0, change 0041, 5.0 Gb/s
    [  167.276050] usb 2-2: USB disconnect, device number 2
    [  167.276058] usb 2-2: unregistering device
    [  167.276060] usb 2-2: unregistering interface 2-2:1.0
    [  167.276170] xhci_hcd 0000:00:15.0: shutdown urb ffffa3c7cc695cc0 ep1in-bulk
    [  167.284055] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
    [  167.284064] sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 33 04 90 00 01 00 00
    ...
    
    Analyzed the USB trace in the link layer we realized it is because
    of the 6-ms timer of tRecoveryConfigurationTimeout which documented
    on the USB 3.2 Revision 1.0, the section 7.5.10.4.2 of "Exit from
    Recovery.Configuration"; device initiates U1 exit -> Recovery.Active
    -> Recovery.Configuration, then the host timer timeout makes the link
    transits to eSS.Inactive -> Rx.Detect follows by a Warm Reset.
    
    Interestingly, the other higher volume of SanDisk Ultra Flair sharing
    the same VID:PID, such as 64GB, would not request LPM during runtime,
    it sticks at U0 always, thus disabling LPM does not affect those thumb
    drives at all.
    
    The same odd occures in SanDisk Ultra Fit 16GB, VID:PID in 0781:5583.
    
    Signed-off-by: Harry Pan <harry.pan@intel.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a6e441a6bc3b6ac223b6d3b31194ed22de90d1bb
Author: Alexey Brodkin <alexey.brodkin@synopsys.com>
Date:   Mon Dec 10 11:33:49 2018 +0300

    ARC: [zebu] Remove CONFIG_INITRAMFS_SOURCE from defconfigs
    
    Zebu boards were added in v4.9 and then renamed to "haps" in v4.10.
    
    Thus backporting
    commit 64234961c145 (ARC: configs: Remove CONFIG_INITRAMFS_SOURCE from defconfigs)
    we missed "zebu" defconfigs in v4.9.
    
    Note this is only applicable to "linux-4.9.y"!
    
    Spotted by KerneCI, see [1].
    
    [1] https://storage.kernelci.org/stable/linux-4.9.y/v4.9.144/arc/zebu_hs_smp_defconfig/build.log
    
    Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
    Cc: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fbb78e978a1342553bc8e842595149b5e2592e0c
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Fri Dec 7 12:33:56 2018 -0800

    mm: don't warn about allocations which stall for too long
    
    commit 400e22499dd92613821374c8c6c88c7225359980 upstream.
    
    Commit 63f53dea0c98 ("mm: warn about allocations which stall for too
    long") was a great step for reducing possibility of silent hang up
    problem caused by memory allocation stalls.  But this commit reverts it,
    for it is possible to trigger OOM lockup and/or soft lockups when many
    threads concurrently called warn_alloc() (in order to warn about memory
    allocation stalls) due to current implementation of printk(), and it is
    difficult to obtain useful information due to limitation of synchronous
    warning approach.
    
    Current printk() implementation flushes all pending logs using the
    context of a thread which called console_unlock().  printk() should be
    able to flush all pending logs eventually unless somebody continues
    appending to printk() buffer.
    
    Since warn_alloc() started appending to printk() buffer while waiting
    for oom_kill_process() to make forward progress when oom_kill_process()
    is processing pending logs, it became possible for warn_alloc() to force
    oom_kill_process() loop inside printk().  As a result, warn_alloc()
    significantly increased possibility of preventing oom_kill_process()
    from making forward progress.
    
    ---------- Pseudo code start ----------
    Before warn_alloc() was introduced:
    
      retry:
        if (mutex_trylock(&oom_lock)) {
          while (atomic_read(&printk_pending_logs) > 0) {
            atomic_dec(&printk_pending_logs);
            print_one_log();
          }
          // Send SIGKILL here.
          mutex_unlock(&oom_lock)
        }
        goto retry;
    
    After warn_alloc() was introduced:
    
      retry:
        if (mutex_trylock(&oom_lock)) {
          while (atomic_read(&printk_pending_logs) > 0) {
            atomic_dec(&printk_pending_logs);
            print_one_log();
          }
          // Send SIGKILL here.
          mutex_unlock(&oom_lock)
        } else if (waited_for_10seconds()) {
          atomic_inc(&printk_pending_logs);
        }
        goto retry;
    ---------- Pseudo code end ----------
    
    Although waited_for_10seconds() becomes true once per 10 seconds,
    unbounded number of threads can call waited_for_10seconds() at the same
    time.  Also, since threads doing waited_for_10seconds() keep doing
    almost busy loop, the thread doing print_one_log() can use little CPU
    resource.  Therefore, this situation can be simplified like
    
    ---------- Pseudo code start ----------
      retry:
        if (mutex_trylock(&oom_lock)) {
          while (atomic_read(&printk_pending_logs) > 0) {
            atomic_dec(&printk_pending_logs);
            print_one_log();
          }
          // Send SIGKILL here.
          mutex_unlock(&oom_lock)
        } else {
          atomic_inc(&printk_pending_logs);
        }
        goto retry;
    ---------- Pseudo code end ----------
    
    when printk() is called faster than print_one_log() can process a log.
    
    One of possible mitigation would be to introduce a new lock in order to
    make sure that no other series of printk() (either oom_kill_process() or
    warn_alloc()) can append to printk() buffer when one series of printk()
    (either oom_kill_process() or warn_alloc()) is already in progress.
    
    Such serialization will also help obtaining kernel messages in readable
    form.
    
    ---------- Pseudo code start ----------
      retry:
        if (mutex_trylock(&oom_lock)) {
          mutex_lock(&oom_printk_lock);
          while (atomic_read(&printk_pending_logs) > 0) {
            atomic_dec(&printk_pending_logs);
            print_one_log();
          }
          // Send SIGKILL here.
          mutex_unlock(&oom_printk_lock);
          mutex_unlock(&oom_lock)
        } else {
          if (mutex_trylock(&oom_printk_lock)) {
            atomic_inc(&printk_pending_logs);
            mutex_unlock(&oom_printk_lock);
          }
        }
        goto retry;
    ---------- Pseudo code end ----------
    
    But this commit does not go that direction, for we don't want to
    introduce a new lock dependency, and we unlikely be able to obtain
    useful information even if we serialized oom_kill_process() and
    warn_alloc().
    
    Synchronous approach is prone to unexpected results (e.g.  too late [1],
    too frequent [2], overlooked [3]).  As far as I know, warn_alloc() never
    helped with providing information other than "something is going wrong".
    I want to consider asynchronous approach which can obtain information
    during stalls with possibly relevant threads (e.g.  the owner of
    oom_lock and kswapd-like threads) and serve as a trigger for actions
    (e.g.  turn on/off tracepoints, ask libvirt daemon to take a memory dump
    of stalling KVM guest for diagnostic purpose).
    
    This commit temporarily loses ability to report e.g.  OOM lockup due to
    unable to invoke the OOM killer due to !__GFP_FS allocation request.
    But asynchronous approach will be able to detect such situation and emit
    warning.  Thus, let's remove warn_alloc().
    
    [1] https://bugzilla.kernel.org/show_bug.cgi?id=192981
    [2] http://lkml.kernel.org/r/CAM_iQpWuPVGc2ky8M-9yukECtS+zKjiDasNymX7rMcBjBFyM_A@mail.gmail.com
    [3] commit db73ee0d46379922 ("mm, vmscan: do not loop on too_many_isolated for ever"))
    
    Link: http://lkml.kernel.org/r/1509017339-4802-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Reported-by: Cong Wang <xiyou.wangcong@gmail.com>
    Reported-by: yuwang.yuwang <yuwang.yuwang@alibaba-inc.com>
    Reported-by: Johannes Weiner <hannes@cmpxchg.org>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    
    [Resolved backport conflict due to missing 8225196, a8e9925, 9e80c71 and
     9a67f64 in 4.9 -- all of which modified this hunk being removed.]
    Signed-off-by: Amit Shah <amit@kernel.org>
    
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 52c872554bc5bab85221ebdcb37794f79a314d52
Author: Yangtao Li <tiny.windzz@gmail.com>
Date:   Thu Nov 22 07:34:41 2018 -0500

    net: amd: add missing of_node_put()
    
    [ Upstream commit c44c749d3b6fdfca39002e7e48e03fe9f9fe37a3 ]
    
    of_find_node_by_path() acquires a reference to the node
    returned by it and that reference needs to be dropped by its caller.
    This place doesn't do that, so fix it.
    
    Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c0d7303b2a012ea6149fa99accdd9242276a94f
Author: Hangbin Liu <liuhangbin@gmail.com>
Date:   Thu Nov 22 16:15:28 2018 +0800

    team: no need to do team_notify_peers or team_mcast_rejoin when disabling port
    
    [ Upstream commit 5ed9dc99107144f83b6c1bb52a69b58875baf540 ]
    
    team_notify_peers() will send ARP and NA to notify peers. team_mcast_rejoin()
    will send multicast join group message to notify peers. We should do this when
    enabling/changed to a new port. But it doesn't make sense to do it when a port
    is disabled.
    
    On the other hand, when we set mcast_rejoin_count to 2, and do a failover,
    team_port_disable() will increase mcast_rejoin.count_pending to 2 and then
    team_port_enable() will increase mcast_rejoin.count_pending to 4. We will send
    4 mcast rejoin messages at latest, which will make user confused. The same
    with notify_peers.count.
    
    Fix it by deleting team_notify_peers() and team_mcast_rejoin() in
    team_port_disable().
    
    Reported-by: Liang Li <liali@redhat.com>
    Fixes: fc423ff00df3a ("team: add peer notification")
    Fixes: 492b200efdd20 ("team: add support for sending multicast rejoins")
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 782d0b84cf2cd71be9e0da5630863096f52a1c88
Author: Pan Bian <bianpan2016@163.com>
Date:   Wed Nov 21 17:53:47 2018 +0800

    iommu/vt-d: Use memunmap to free memremap
    
    [ Upstream commit 829383e183728dec7ed9150b949cd6de64127809 ]
    
    memunmap() should be used to free the return of memremap(), not
    iounmap().
    
    Fixes: dfddb969edf0 ('iommu/vt-d: Switch from ioremap_cache to memremap')
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94d9befeaabe06ca6d352b8613905bd30f84b684
Author: Vincent Chen <vincentc@andestech.com>
Date:   Wed Nov 21 09:38:11 2018 +0800

    net: faraday: ftmac100: remove netif_running(netdev) check before disabling interrupts
    
    [ Upstream commit 426a593e641ebf0d9288f0a2fcab644a86820220 ]
    
    In the original ftmac100_interrupt(), the interrupts are only disabled when
    the condition "netif_running(netdev)" is true. However, this condition
    causes kerenl hang in the following case. When the user requests to
    disable the network device, kernel will clear the bit __LINK_STATE_START
    from the dev->state and then call the driver's ndo_stop function. Network
    device interrupts are not blocked during this process. If an interrupt
    occurs between clearing __LINK_STATE_START and stopping network device,
    kernel cannot disable the interrupts due to the condition
    "netif_running(netdev)" in the ISR. Hence, kernel will hang due to the
    continuous interruption of the network device.
    
    In order to solve the above problem, the interrupts of the network device
    should always be disabled in the ISR without being restricted by the
    condition "netif_running(netdev)".
    
    [V2]
    Remove unnecessary curly braces.
    
    Signed-off-by: Vincent Chen <vincentc@andestech.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fc70b21fdbabd77edd7b1c7c645e644043d8bc17
Author: Olof Johansson <olof@lixom.net>
Date:   Fri Nov 16 19:43:27 2018 -0800

    mtd: rawnand: qcom: Namespace prefix some commands
    
    [ Upstream commit 33bf5519ae5dd356b182a94e3622f42860274a38 ]
    
    PAGE_READ is used by RISC-V arch code included through mm headers,
    and it makes sense to bring in a prefix on these in the driver.
    
    drivers/mtd/nand/raw/qcom_nandc.c:153: warning: "PAGE_READ" redefined
     #define PAGE_READ   0x2
    In file included from include/linux/memremap.h:7,
                     from include/linux/mm.h:27,
                     from include/linux/scatterlist.h:8,
                     from include/linux/dma-mapping.h:11,
                     from drivers/mtd/nand/raw/qcom_nandc.c:17:
    arch/riscv/include/asm/pgtable.h:48: note: this is the location of the previous definition
    
    Caught by riscv allmodconfig.
    
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 89860d2ca03381a361b7234d54715b4a533a822e
Author: Aya Levin <ayal@mellanox.com>
Date:   Thu Nov 15 18:05:15 2018 +0200

    net/mlx4: Fix UBSAN warning of signed integer overflow
    
    [ Upstream commit a463146e67c848cbab5ce706d6528281b7cded08 ]
    
    UBSAN: Undefined behavior in
    drivers/net/ethernet/mellanox/mlx4/resource_tracker.c:626:29
    signed integer overflow: 1802201963 + 1802201963 cannot be represented
    in type 'int'
    
    The union of res_reserved and res_port_rsvd[MLX4_MAX_PORTS] monitors
    granting of reserved resources. The grant operation is calculated and
    protected, thus both members of the union cannot be negative.  Changed
    type of res_reserved and of res_port_rsvd[MLX4_MAX_PORTS] from signed
    int to unsigned int, allowing large value.
    
    Fixes: 5a0d0a6161ae ("mlx4: Structures and init/teardown for VF resource quotas")
    Signed-off-by: Aya Levin <ayal@mellanox.com>
    Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6485f65edc7c395c3b6cc9e492913635da31c8ee
Author: Tariq Toukan <tariqt@mellanox.com>
Date:   Thu Nov 15 18:05:14 2018 +0200

    net/mlx4_core: Fix uninitialized variable compilation warning
    
    [ Upstream commit 3ea7e7ea53c9f6ee41cb69a29c375fe9dd9a56a7 ]
    
    Initialize the uid variable to zero to avoid the compilation warning.
    
    Fixes: 7a89399ffad7 ("net/mlx4: Add mlx4_bitmap zone allocator")
    Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aa4a6a1848a14232414b6ba0bdde9211de593a39
Author: Jack Morgenstein <jackm@dev.mellanox.co.il>
Date:   Thu Nov 15 18:05:13 2018 +0200

    net/mlx4_core: Zero out lkey field in SW2HW_MPT fw command
    
    [ Upstream commit bd85fbc2038a1bbe84990b23ff69b6fc81a32b2c ]
    
    When re-registering a user mr, the mpt information for the
    existing mr when running SRIOV is obtained via the QUERY_MPT
    fw command. The returned information includes the mpt's lkey.
    
    This retrieved mpt information is used to move the mpt back
    to hardware ownership in the rereg flow (via the SW2HW_MPT
    fw command when running SRIOV).
    
    The fw API spec states that for SW2HW_MPT, the lkey field
    must be zero. Any ConnectX-3 PF driver which checks for strict spec
    adherence will return failure for SW2HW_MPT if the lkey field is not
    zero (although the fw in practice ignores this field for SW2HW_MPT).
    
    Thus, in order to conform to the fw API spec, set the lkey field to zero
    before invoking SW2HW_MPT when running SRIOV.
    
    Fixes: e630664c8383 ("mlx4_core: Add helper functions to support MR re-registration")
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a1597daab7e90c8fdd459c3f11d6420c3c3595f0
Author: Denis Bolotin <denis.bolotin@cavium.com>
Date:   Mon Nov 12 12:50:23 2018 +0200

    qed: Fix reading wrong value in loop condition
    
    [ Upstream commit ed4eac20dcffdad47709422e0cb925981b056668 ]
    
    The value of "sb_index" is written by the hardware. Reading its value and
    writing it to "index" must finish before checking the loop condition.
    
    Signed-off-by: Denis Bolotin <denis.bolotin@cavium.com>
    Signed-off-by: Michal Kalderon <michal.kalderon@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 37a73ddd1d51fa283b6a67f7778339b9bb493d31
Author: Denis Bolotin <denis.bolotin@cavium.com>
Date:   Mon Nov 12 12:50:20 2018 +0200

    qed: Fix PTT leak in qed_drain()
    
    [ Upstream commit 9aaa4e8ba12972d674caeefbc5f88d83235dd697 ]
    
    Release PTT before entering error flow.
    
    Signed-off-by: Denis Bolotin <denis.bolotin@cavium.com>
    Signed-off-by: Michal Kalderon <michal.kalderon@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 897e370d14089da24b8c6f89806068ec790da0d2
Author: Sudarsana Reddy Kalluru <sudarsana.kalluru@cavium.com>
Date:   Sun Nov 11 18:27:34 2018 -0800

    bnx2x: Assign unique DMAE channel number for FW DMAE transactions.
    
    [ Upstream commit 77e461d14ed141253573eeeb4d34eccc51e38328 ]
    
    Driver assigns DMAE channel 0 for FW as part of START_RAMROD command. FW
    uses this channel for DMAE operations (e.g., TIME_SYNC implementation).
    Driver also uses the same channel 0 for DMAE operations for some of the PFs
    (e.g., PF0 on Port0). This could lead to concurrent access to the DMAE
    channel by FW and driver which is not legal. Hence need to assign unique
    DMAE id for FW.
    Currently following DMAE channels are used by the clients,
      MFW - OCBB/OCSD functionality uses DMAE channel 14/15
      Driver 0-3 and 8-11 (for PF dmae operations)
             4 and 12 (for stats requests)
    Assigning unique dmae_id '13' to the FW.
    
    Changes from previous version:
    ------------------------------
    v2: Incorporated the review comments.
    
    Signed-off-by: Sudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
    Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc08fb597a8a46af35abe240875f26a5f0c53249
Author: Sven Eckelmann <sven@narfation.org>
Date:   Wed Nov 7 23:09:12 2018 +0100

    batman-adv: Expand merged fragment buffer for full packet
    
    [ Upstream commit d7d8bbb40a5b1f682ee6589e212934f4c6b8ad60 ]
    
    The complete size ("total_size") of the fragmented packet is stored in the
    fragment header and in the size of the fragment chain. When the fragments
    are ready for merge, the skbuff's tail of the first fragment is expanded to
    have enough room after the data pointer for at least total_size. This means
    that it gets expanded by total_size - first_skb->len.
    
    But this is ignoring the fact that after expanding the buffer, the fragment
    header is pulled by from this buffer. Assuming that the tailroom of the
    buffer was already 0, the buffer after the data pointer of the skbuff is
    now only total_size - len(fragment_header) large. When the merge function
    is then processing the remaining fragments, the code to copy the data over
    to the merged skbuff will cause an skb_over_panic when it tries to actually
    put enough data to fill the total_size bytes of the packet.
    
    The size of the skb_pull must therefore also be taken into account when the
    buffer's tailroom is expanded.
    
    Fixes: 610bfc6bc99b ("batman-adv: Receive fragmented packets and merge")
    Reported-by: Martin Weinelt <martin@darmstadt.freifunk.net>
    Co-authored-by: Linus Lüssing <linus.luessing@c0d3.blue>
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8d6dfd2ce1a4b7942986a324c8614804cc916826
Author: Benson Leung <bleung@chromium.org>
Date:   Thu Nov 8 15:59:21 2018 -0800

    HID: input: Ignore battery reported by Symbol DS4308
    
    [ Upstream commit 0fd791841a6d67af1155a9c3de54dea51220721e ]
    
    The Motorola/Zebra Symbol DS4308-HD is a handheld USB barcode scanner
    which does not have a battery, but reports one anyway that always has
    capacity 2.
    
    Let's apply the IGNORE quirk to prevent it from being treated like a
    power supply so that userspaces don't get confused that this
    accessory is almost out of power and warn the user that they need to charge
    their wired barcode scanner.
    
    Reported here: https://bugs.chromium.org/p/chromium/issues/detail?id=804720
    
    Signed-off-by: Benson Leung <bleung@chromium.org>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9f4928c2ba0ade4aef360799f43e46045761df46
Author: Fabrizio Castro <fabrizio.castro@bp.renesas.com>
Date:   Mon Sep 10 11:43:13 2018 +0100

    can: rcar_can: Fix erroneous registration
    
    [ Upstream commit 68c8d209cd4337da4fa04c672f0b62bb735969bc ]
    
    Assigning 2 to "renesas,can-clock-select" tricks the driver into
    registering the CAN interface, even though we don't want that.
    This patch improves one of the checks to prevent that from happening.
    
    Fixes: 862e2b6af9413b43 ("can: rcar_can: support all input clocks")
    Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com>
    Signed-off-by: Chris Paterson <Chris.Paterson2@renesas.com>
    Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 06144feb51042b239e88b4386b4fef33bbf79304
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Wed Nov 7 14:18:50 2018 +0100

    iommu/ipmmu-vmsa: Fix crash on early domain free
    
    [ Upstream commit e5b78f2e349eef5d4fca5dc1cf5a3b4b2cc27abd ]
    
    If iommu_ops.add_device() fails, iommu_ops.domain_free() is still
    called, leading to a crash, as the domain was only partially
    initialized:
    
        ipmmu-vmsa e67b0000.mmu: Cannot accommodate DMA translation for IOMMU page tables
        sata_rcar ee300000.sata: Unable to initialize IPMMU context
        iommu: Failed to add device ee300000.sata to group 0: -22
        Unable to handle kernel NULL pointer dereference at virtual address 0000000000000038
        ...
        Call trace:
         ipmmu_domain_free+0x1c/0xa0
         iommu_group_release+0x48/0x68
         kobject_put+0x74/0xe8
         kobject_del.part.0+0x3c/0x50
         kobject_put+0x60/0xe8
         iommu_group_get_for_dev+0xa8/0x1f0
         ipmmu_add_device+0x1c/0x40
         of_iommu_configure+0x118/0x190
    
    Fix this by checking if the domain's context already exists, before
    trying to destroy it.
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Robin Murphy <robin.murphy@arm.com>
    Fixes: d25a2a16f0889 ('iommu: Add driver for Renesas VMSA-compatible IPMMU')
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 04e7ceeea56e208618d26db67038690a78510272
Author: Rafał Miłecki <rafal@milecki.pl>
Date:   Fri Oct 26 12:50:39 2018 +0200

    brcmutil: really fix decoding channel info for 160 MHz bandwidth
    
    [ Upstream commit 3401d42c7ea2d064d15c66698ff8eb96553179ce ]
    
    Previous commit /adding/ support for 160 MHz chanspecs was incomplete.
    It didn't set bandwidth info and didn't extract control channel info. As
    the result it was also using uninitialized "sb" var.
    
    This change has been tested for two chanspecs found to be reported by
    some devices/firmwares:
    1) 60/160 (0xee32)
       Before: chnum:50 control_ch_num:36
        After: chnum:50 control_ch_num:60
    2) 120/160 (0xed72)
       Before: chnum:114 control_ch_num:100
        After: chnum:114 control_ch_num:120
    
    Fixes: 330994e8e8ec ("brcmfmac: fix for proper support of 160MHz bandwidth")
    Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 19c60745cb1f2243fdc3f324e2f5065fbe181cc7
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Mon Nov 5 10:18:58 2018 +0800

    iommu/vt-d: Fix NULL pointer dereference in prq_event_thread()
    
    [ Upstream commit 19ed3e2dd8549c1a34914e8dad01b64e7837645a ]
    
    When handling page request without pasid event, go to "no_pasid"
    branch instead of "bad_req". Otherwise, a NULL pointer deference
    will happen there.
    
    Cc: Ashok Raj <ashok.raj@intel.com>
    Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
    Cc: Sohil Mehta <sohil.mehta@intel.com>
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Fixes: a222a7f0bb6c9 'iommu/vt-d: Implement page request handling'
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b49bb7d4e6a390105e43fe6a464f0c868089a595
Author: Sakari Ailus <sakari.ailus@linux.intel.com>
Date:   Tue Oct 9 07:49:49 2018 -0400

    media: omap3isp: Unregister media device as first
    
    [ Upstream commit 30efae3d789cd0714ef795545a46749236e29558 ]
    
    While there are issues related to object lifetime management, unregister the
    media device first when the driver is being unbound. This is slightly
    safer.
    
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>