commit 3b65f403d7d0e98484e8f2c9471808f2785a8235
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Sep 29 03:06:07 2018 -0700

    Linux 4.14.73

commit 97513162cd6d7ed118aa155b4196e88b3e43ff69
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Aug 21 11:53:03 2018 +0200

    spi: Fix double IDR allocation with DT aliases
    
    commit 04b2d03a75652bda989de1595048f0501dc0c0a0 upstream.
    
    If the SPI bus number is provided by a DT alias, idr_alloc() is called
    twice, leading to:
    
        WARNING: CPU: 1 PID: 1 at drivers/spi/spi.c:2179 spi_register_controller+0x11c/0x5d8
        couldn't get idr
    
    Fix this by moving the handling of fixed SPI bus numbers up, before the
    DT handling code fills in ctlr->bus_num.
    
    Fixes: 1a4327fbf4554d5b ("spi: fix IDR collision on systems with both fixed and dynamic SPI bus numbers")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Cc: Kirill Kapranov <kirill.kapranov@compulab.co.il>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed5e9462f6617a85945353abe5c4b94a81ee01a1
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Thu Aug 30 17:05:19 2018 +0200

    tick/nohz: Prevent bogus softirq pending warning
    
    Commit 0a0e0829f990 ("nohz: Fix missing tick reprogram when interrupting an
    inline softirq") got backported to stable trees and now causes the NOHZ
    softirq pending warning to trigger. It's not an upstream issue as the NOHZ
    update logic has been changed there.
    
    The problem is when a softirq disabled section gets interrupted and on
    return from interrupt the tick/nohz state is evaluated, which then can
    observe pending soft interrupts. These soft interrupts are legitimately
    pending because they cannot be processed as long as soft interrupts are
    disabled and the interrupted code will correctly process them when soft
    interrupts are reenabled.
    
    Add a check for softirqs disabled to the pending check to prevent the
    warning.
    
    Reported-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Reported-by: John Crispin <john@phrozen.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Tested-by: John Crispin <john@phrozen.org>
    Cc: Frederic Weisbecker <frederic@kernel.org>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Anna-Maria Gleixner <anna-maria@linutronix.de>
    Cc: stable@vger.kernel.org
    Fixes: 2d898915ccf4838c ("nohz: Fix missing tick reprogram when interrupting an inline softirq")
    Acked-by: Frederic Weisbecker <frederic@kernel.org>
    Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>

commit 3a411a04be4e57de1774f680d3d6d0d48cc16c10
Author: Steve Wise <swise@opengridcomputing.com>
Date:   Fri Aug 31 07:15:56 2018 -0700

    iw_cxgb4: only allow 1 flush on user qps
    
    commit 308aa2b8f7b7db3332a7d41099fd37851fb793b2 upstream.
    
    Once the qp has been flushed, it cannot be flushed again.  The user qp
    flush logic wasn't enforcing it however.  The bug can cause
    touch-after-free crashes like:
    
    Unable to handle kernel paging request for data at address 0x000001ec
    Faulting instruction address: 0xc008000016069100
    Oops: Kernel access of bad area, sig: 11 [#1]
    ...
    NIP [c008000016069100] flush_qp+0x80/0x480 [iw_cxgb4]
    LR [c00800001606cd6c] c4iw_modify_qp+0x71c/0x11d0 [iw_cxgb4]
    Call Trace:
    [c00800001606cd6c] c4iw_modify_qp+0x71c/0x11d0 [iw_cxgb4]
    [c00800001606e868] c4iw_ib_modify_qp+0x118/0x200 [iw_cxgb4]
    [c0080000119eae80] ib_security_modify_qp+0xd0/0x3d0 [ib_core]
    [c0080000119c4e24] ib_modify_qp+0xc4/0x2c0 [ib_core]
    [c008000011df0284] iwcm_modify_qp_err+0x44/0x70 [iw_cm]
    [c008000011df0fec] destroy_cm_id+0xcc/0x370 [iw_cm]
    [c008000011ed4358] rdma_destroy_id+0x3c8/0x520 [rdma_cm]
    [c0080000134b0540] ucma_close+0x90/0x1b0 [rdma_ucm]
    [c000000000444da4] __fput+0xe4/0x2f0
    
    So fix flush_qp() to only flush the wq once.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Steve Wise <swise@opengridcomputing.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 956fa50745b3d01dd37f48bd601f16222742648b
Author: Nadav Amit <namit@vmware.com>
Date:   Thu Sep 13 13:18:52 2018 -0700

    vmw_balloon: include asm/io.h
    
    commit a3b92ee6fc171d7c9d9b6b829b7fef169210440c upstream.
    
    Fix a build error due to missing virt_to_phys()
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Fixes: f0a1bf29d821b ("vmw_balloon: fix inflation with batching")
    Cc: stable@vger.kernel.org
    Cc: Xavier Deguillard <xdeguillard@vmware.com>
    Signed-off-by: Nadav Amit <namit@vmware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23ac2a32b2f8cb78e086d3902f1e7bf488590b4a
Author: Zachary Zhang <zhangzg@marvell.com>
Date:   Fri Jun 29 11:16:19 2018 +0200

    PCI: aardvark: Size bridges before resources allocation
    
    commit 91a2968e245d6ba616db37001fa1a043078b1a65 upstream.
    
    The PCIE I/O and MEM resource allocation mechanism is that root bus
    goes through the following steps:
    
    1. Check PCI bridges' range and computes I/O and Mem base/limits.
    
    2. Sort all subordinate devices I/O and MEM resource requirements and
       allocate the resources and writes/updates subordinate devices'
       requirements to PCI bridges I/O and Mem MEM/limits registers.
    
    Currently, PCI Aardvark driver only handles the second step and lacks
    the first step, so there is an I/O and MEM resource allocation failure
    when using a PCI switch. This commit fixes that by sizing bridges
    before doing the resource allocation.
    
    Fixes: 8c39d710363c1 ("PCI: aardvark: Add Aardvark PCI host controller
    driver")
    Signed-off-by: Zachary Zhang <zhangzg@marvell.com>
    [Thomas: edit commit log.]
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe87d18b14717d25e3e81a7f36e605f5f1f92c47
Author: Steve Muckle <smuckle@google.com>
Date:   Fri Aug 31 15:42:17 2018 -0700

    sched/fair: Fix vruntime_normalized() for remote non-migration wakeup
    
    commit d0cdb3ce8834332d918fc9c8ff74f8a169ec9abe upstream.
    
    When a task which previously ran on a given CPU is remotely queued to
    wake up on that same CPU, there is a period where the task's state is
    TASK_WAKING and its vruntime is not normalized. This is not accounted
    for in vruntime_normalized() which will cause an error in the task's
    vruntime if it is switched from the fair class during this time.
    
    For example if it is boosted to RT priority via rt_mutex_setprio(),
    rq->min_vruntime will not be subtracted from the task's vruntime but
    it will be added again when the task returns to the fair class. The
    task's vruntime will have been erroneously doubled and the effective
    priority of the task will be reduced.
    
    Note this will also lead to inflation of all vruntimes since the doubled
    vruntime value will become the rq's min_vruntime when other tasks leave
    the rq. This leads to repeated doubling of the vruntime and priority
    penalty.
    
    Fix this by recognizing a WAKING task's vruntime as normalized only if
    sched_remote_wakeup is true. This indicates a migration, in which case
    the vruntime would have been normalized in migrate_task_rq_fair().
    
    Based on a similar patch from John Dias <joaodias@google.com>.
    
    Suggested-by: Peter Zijlstra <peterz@infradead.org>
    Tested-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
    Signed-off-by: Steve Muckle <smuckle@google.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Chris Redpath <Chris.Redpath@arm.com>
    Cc: John Dias <joaodias@google.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Miguel de Dios <migueldedios@google.com>
    Cc: Morten Rasmussen <Morten.Rasmussen@arm.com>
    Cc: Patrick Bellasi <Patrick.Bellasi@arm.com>
    Cc: Paul Turner <pjt@google.com>
    Cc: Quentin Perret <quentin.perret@arm.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Todd Kjos <tkjos@google.com>
    Cc: kernel-team@android.com
    Fixes: b5179ac70de8 ("sched/fair: Prepare to fix fairness problems on migration")
    Link: http://lkml.kernel.org/r/20180831224217.169476-1-smuckle@google.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d09307bc242e1692d1b8fb1cbfde688de6f8cd0
Author: Eric Biggers <ebiggers@google.com>
Date:   Sat Sep 15 14:28:26 2018 -0400

    ext4: show test_dummy_encryption mount option in /proc/mounts
    
    commit 338affb548c243d2af25b1ca628e67819350de6b upstream.
    
    When in effect, add "test_dummy_encryption" to _ext4_show_options() so
    that it is shown in /proc/mounts and other relevant procfs files.
    
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3dc006d212e38f9efc821352d261379a38ae9eb3
Author: Li Dongyang <dongyangli@ddn.com>
Date:   Sat Sep 15 17:11:25 2018 -0400

    ext4: don't mark mmp buffer head dirty
    
    commit fe18d649891d813964d3aaeebad873f281627fbc upstream.
    
    Marking mmp bh dirty before writing it will make writeback
    pick up mmp block later and submit a write, we don't want the
    duplicate write as kmmpd thread should have full control of
    reading and writing the mmp block.
    Another reason is we will also have random I/O error on
    the writeback request when blk integrity is enabled, because
    kmmpd could modify the content of the mmp block(e.g. setting
    new seq and time) while the mmp block is under I/O requested
    by writeback.
    
    Signed-off-by: Li Dongyang <dongyangli@ddn.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba48e66e3f53b30dd6f5785eaa658b9919d3e07c
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Mon Sep 3 22:25:01 2018 -0400

    ext4: fix online resizing for bigalloc file systems with a 1k block size
    
    commit 5f8c10936fab2b69a487400f2872902e597dd320 upstream.
    
    An online resize of a file system with the bigalloc feature enabled
    and a 1k block size would be refused since ext4_resize_begin() did not
    understand s_first_data_block is 0 for all bigalloc file systems, even
    when the block size is 1k.
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a4d7b584d3831bd4d01850d5afe97fa64b363e8
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Mon Sep 3 22:19:43 2018 -0400

    ext4: fix online resize's handling of a too-small final block group
    
    commit f0a459dec5495a3580f8d784555e6f8f3bf7f263 upstream.
    
    Avoid growing the file system to an extent so that the last block
    group is too small to hold all of the metadata that must be stored in
    the block group.
    
    This problem can be triggered with the following reproducer:
    
    umount /mnt
    mke2fs -F -m0 -b 4096 -t ext4 -O resize_inode,^has_journal \
            -E resize=1073741824 /tmp/foo.img 128M
    mount /tmp/foo.img /mnt
    truncate --size 1708M /tmp/foo.img
    resize2fs /dev/loop0 295400
    umount /mnt
    e2fsck -fy /tmp/foo.img
    
    Reported-by: Torsten Hilbrich <torsten.hilbrich@secunet.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22654a3b4a301d77365007f2fe913676afe6207e
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Sep 1 14:42:14 2018 -0400

    ext4: recalucate superblock checksum after updating free blocks/inodes
    
    commit 4274f516d4bc50648a4d97e4f67ecbd7b65cde4a upstream.
    
    When mounting the superblock, ext4_fill_super() calculates the free
    blocks and free inodes and stores them in the superblock.  It's not
    strictly necessary, since we don't use them any more, but it's nice to
    keep them roughly aligned to reality.
    
    Since it's not critical for file system correctness, the code doesn't
    call ext4_commit_super().  The problem is that it's in
    ext4_commit_super() that we recalculate the superblock checksum.  So
    if we're not going to call ext4_commit_super(), we need to call
    ext4_superblock_csum_set() to make sure the superblock checksum is
    consistent.
    
    Most of the time, this doesn't matter, since we end up calling
    ext4_commit_super() very soon thereafter, and definitely by the time
    the file system is unmounted.  However, it doesn't work in this
    sequence:
    
    mke2fs -Fq -t ext4 /dev/vdc 128M
    mount /dev/vdc /vdc
    cp xfstests/git-versions /vdc
    godown /vdc
    umount /vdc
    mount /dev/vdc
    tune2fs -l /dev/vdc
    
    With this commit, the "tune2fs -l" no longer fails.
    
    Reported-by: Chengguang Xu <cgxu519@gmx.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 779af00b3fa38d040a4798afdb2c57cc64ba346e
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Sep 1 12:45:04 2018 -0400

    ext4: avoid arithemetic overflow that can trigger a BUG
    
    commit bcd8e91f98c156f4b1ebcfacae675f9cfd962441 upstream.
    
    A maliciously crafted file system can cause an overflow when the
    results of a 64-bit calculation is stored into a 32-bit length
    parameter.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=200623
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reported-by: Wen Xu <wen.xu@gatech.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f9eafe8772f9a86cab2e431a44bce775f6b7ba5
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Mon Aug 27 09:22:45 2018 -0400

    ext4: avoid divide by zero fault when deleting corrupted inline directories
    
    commit 4d982e25d0bdc83d8c64e66fdeca0b89240b3b85 upstream.
    
    A specially crafted file system can trick empty_inline_dir() into
    reading past the last valid entry in a inline directory, and then run
    into the end of xattr marker. This will trigger a divide by zero
    fault.  Fix this by using the size of the inline directory instead of
    dir->i_size.
    
    Also clean up error reporting in __ext4_check_dir_entry so that the
    message is clearer and more understandable --- and avoids the division
    by zero trap if the size passed in is zero.  (I'm not sure why we
    coded it that way in the first place; printing offset % size is
    actually more confusing and less useful.)
    
    https://bugzilla.kernel.org/show_bug.cgi?id=200933
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reported-by: Wen Xu <wen.xu@gatech.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31343d27f18f19ad1bb1c5b4475b86483598cd04
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Mon Aug 27 01:47:09 2018 -0400

    ext4: check to make sure the rename(2)'s destination is not freed
    
    commit b50282f3241acee880514212d88b6049fb5039c8 upstream.
    
    If the destination of the rename(2) system call exists, the inode's
    link count (i_nlinks) must be non-zero.  If it is, the inode can end
    up on the orphan list prematurely, leading to all sorts of hilarity,
    including a use-after-free.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=200931
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reported-by: Wen Xu <wen.xu@gatech.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4334a6ae867aa12f01c1755368fd0de4c926ac75
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Thu Aug 16 15:30:38 2018 -0500

    tty: vt_ioctl: fix potential Spectre v1
    
    commit e97267cb4d1ee01ca0929638ec0fcbb0904f903d upstream.
    
    vsa.console is indirectly controlled by user-space, hence leading to
    a potential exploitation of the Spectre variant 1 vulnerability.
    
    This issue was detected with the help of Smatch:
    
    drivers/tty/vt/vt_ioctl.c:711 vt_ioctl() warn: potential spectre issue
    'vc_cons' [r]
    
    Fix this by sanitizing vsa.console before using it to index vc_cons
    
    Notice that given that speculation windows are large, the policy is
    to kill the speculation on the first load and not worry if it can be
    completed with a dependent load/store [1].
    
    [1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Reviewed-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57c806be0160a1f8f8642e92c83043fc36196c0d
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Tue Sep 18 15:28:24 2018 -0500

    drm/amdgpu: add new polaris pci id
    
    commit 30f3984ede683b98a4e8096e200df78bf0609b4f upstream.
    
    Add new pci id.
    
    Reviewed-by: Rex Zhu <Rex.Zhu@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5575041b09cd00e5dca79f8c6006edfb3012ab25
Author: Emil Lundmark <lndmrk@chromium.org>
Date:   Mon May 28 16:27:11 2018 +0200

    drm: udl: Destroy framebuffer only if it was initialized
    
    commit fcb74da1eb8edd3a4ef9b9724f88ed709d684227 upstream.
    
    This fixes a NULL pointer dereference that can happen if the UDL
    driver is unloaded before the framebuffer is initialized. This can
    happen e.g. if the USB device is unplugged right after it was plugged
    in.
    
    As explained by Stéphane Marchesin:
    
    It happens when fbdev is disabled (which is the case for Chrome OS).
    Even though intialization of the fbdev part is optional (it's done in
    udlfb_create which is the callback for fb_probe()), the teardown isn't
    optional (udl_driver_unload -> udl_fbdev_cleanup ->
    udl_fbdev_destroy).
    
    Note that udl_fbdev_cleanup *tries* to be conditional (you can see it
    does if (!udl->fbdev)) but that doesn't work, because udl->fbdev is
    always set during udl_fbdev_init.
    
    Cc: stable@vger.kernel.org
    Suggested-by: Sean Paul <seanpaul@chromium.org>
    Reviewed-by: Sean Paul <seanpaul@chromium.org>
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Emil Lundmark <lndmrk@chromium.org>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180528142711.142466-1-lndmrk@chromium.org
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c70d8a488a410f067141a765af26ef2b69a1dcd8
Author: Boris Brezillon <boris.brezillon@bootlin.com>
Date:   Wed Jul 25 14:29:07 2018 +0200

    drm/vc4: Fix the "no scaling" case on multi-planar YUV formats
    
    commit 658d8cbd07dae22ccecf49399e18c609c4e85c53 upstream.
    
    When there's no scaling requested ->is_unity should be true no matter
    the format.
    
    Also, when no scaling is requested and we have a multi-planar YUV
    format, we should leave ->y_scaling[0] to VC4_SCALING_NONE and only
    set ->x_scaling[0] to VC4_SCALING_PPF.
    
    Doing this fixes an hardly visible artifact (seen when using modetest
    and a rather big overlay plane in YUV420).
    
    Fixes: fc04023fafec ("drm/vc4: Add support for YUV planes.")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180725122907.13702-1-boris.brezillon@bootlin.com
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 35e48a086071290f5f0617931f40b5824a311f3d
Author: Lyude Paul <lyude@redhat.com>
Date:   Thu Aug 16 16:13:13 2018 -0400

    drm/nouveau/drm/nouveau: Prevent handling ACPI HPD events too early
    
    commit 79e765ad665da4b8aa7e9c878bd2fef837f6fea5 upstream.
    
    On most systems with ACPI hotplugging support, it seems that we always
    receive a hotplug event once we re-enable EC interrupts even if the GPU
    hasn't even been resumed yet.
    
    This can cause problems since even though we schedule hpd_work to handle
    connector reprobing for us, hpd_work synchronizes on
    pm_runtime_get_sync() to wait until the device is ready to perform
    reprobing. Since runtime suspend/resume callbacks are disabled before
    the PM core calls ->suspend(), any calls to pm_runtime_get_sync() during
    this period will grab a runtime PM ref and return immediately with
    -EACCES. Because we schedule hpd_work from our ACPI HPD handler, and
    hpd_work synchronizes on pm_runtime_get_sync(), this causes us to launch
    a connector reprobe immediately even if the GPU isn't actually resumed
    just yet. This causes various warnings in dmesg and occasionally, also
    prevents some displays connected to the dedicated GPU from coming back
    up after suspend. Example:
    
    usb 1-4: USB disconnect, device number 14
    usb 1-4.1: USB disconnect, device number 15
    WARNING: CPU: 0 PID: 838 at drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h:170 nouveau_dp_detect+0x17e/0x370 [nouveau]
    CPU: 0 PID: 838 Comm: kworker/0:6 Not tainted 4.17.14-201.Lyude.bz1477182.V3.fc28.x86_64 #1
    Hardware name: LENOVO 20EQS64N00/20EQS64N00, BIOS N1EET77W (1.50 ) 03/28/2018
    Workqueue: events nouveau_display_hpd_work [nouveau]
    RIP: 0010:nouveau_dp_detect+0x17e/0x370 [nouveau]
    RSP: 0018:ffffa15143933cf0 EFLAGS: 00010293
    RAX: 0000000000000000 RBX: ffff8cb4f656c400 RCX: 0000000000000000
    RDX: ffffa1514500e4e4 RSI: ffffa1514500e4e4 RDI: 0000000001009002
    RBP: ffff8cb4f4a8a800 R08: ffffa15143933cfd R09: ffffa15143933cfc
    R10: 0000000000000000 R11: 0000000000000000 R12: ffff8cb4fb57a000
    R13: ffff8cb4fb57a000 R14: ffff8cb4f4a8f800 R15: ffff8cb4f656c418
    FS:  0000000000000000(0000) GS:ffff8cb51f400000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f78ec938000 CR3: 000000073720a003 CR4: 00000000003606f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     ? _cond_resched+0x15/0x30
     nouveau_connector_detect+0x2ce/0x520 [nouveau]
     ? _cond_resched+0x15/0x30
     ? ww_mutex_lock+0x12/0x40
     drm_helper_probe_detect_ctx+0x8b/0xe0 [drm_kms_helper]
     drm_helper_hpd_irq_event+0xa8/0x120 [drm_kms_helper]
     nouveau_display_hpd_work+0x2a/0x60 [nouveau]
     process_one_work+0x187/0x340
     worker_thread+0x2e/0x380
     ? pwq_unbound_release_workfn+0xd0/0xd0
     kthread+0x112/0x130
     ? kthread_create_worker_on_cpu+0x70/0x70
     ret_from_fork+0x35/0x40
    Code: 4c 8d 44 24 0d b9 00 05 00 00 48 89 ef ba 09 00 00 00 be 01 00 00 00 e8 e1 09 f8 ff 85 c0 0f 85 b2 01 00 00 80 7c 24 0c 03 74 02 <0f> 0b 48 89 ef e8 b8 07 f8 ff f6 05 51 1b c8 ff 02 0f 84 72 ff
    ---[ end trace 55d811b38fc8e71a ]---
    
    So, to fix this we attempt to grab a runtime PM reference in the ACPI
    handler itself asynchronously. If the GPU is already awake (it will have
    normal hotplugging at this point) or runtime PM callbacks are currently
    disabled on the device, we drop our reference without updating the
    autosuspend delay. We only schedule connector reprobes when we
    successfully managed to queue up a resume request with our asynchronous
    PM ref.
    
    This also has the added benefit of preventing redundant connector
    reprobes from ACPI while the GPU is runtime resumed!
    
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Cc: stable@vger.kernel.org
    Cc: Karol Herbst <kherbst@redhat.com>
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1477182#c41
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0f966da783a38d94ac46bbdd6e75fed1b9b08c93
Author: Lyude Paul <lyude@redhat.com>
Date:   Wed Aug 15 15:00:14 2018 -0400

    drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
    
    commit 6833fb1ec120bf078e1a527c573a09d4de286224 upstream.
    
    It's true we can't resume the device from poll workers in
    nouveau_connector_detect(). We can however, prevent the autosuspend
    timer from elapsing immediately if it hasn't already without risking any
    sort of deadlock with the runtime suspend/resume operations. So do that
    instead of entirely avoiding grabbing a power reference.
    
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Acked-by: Daniel Vetter <daniel@ffwll.ch>
    Cc: stable@vger.kernel.org
    Cc: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 409af02c200e232b884451b4099124a95a5b084c
Author: Lyude Paul <lyude@redhat.com>
Date:   Wed Aug 15 15:00:11 2018 -0400

    drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement
    
    commit d77ef138ff572409ab93d492e5e6c826ee6fb21d upstream.
    
    Turns out this part is my fault for not noticing when reviewing
    9a2eba337cace ("drm/nouveau: Fix drm poll_helper handling"). Currently
    we call drm_kms_helper_poll_enable() from nouveau_display_hpd_work().
    This makes basically no sense however, because that means we're calling
    drm_kms_helper_poll_enable() every time we schedule the hotplug
    detection work. This is also against the advice mentioned in
    drm_kms_helper_poll_enable()'s documentation:
    
     Note that calls to enable and disable polling must be strictly ordered,
     which is automatically the case when they're only call from
     suspend/resume callbacks.
    
    Of course, hotplugs can't really be ordered. They could even happen
    immediately after we called drm_kms_helper_poll_disable() in
    nouveau_display_fini(), which can lead to all sorts of issues.
    
    Additionally; enabling polling /after/ we call
    drm_helper_hpd_irq_event() could also mean that we'd miss a hotplug
    event anyway, since drm_helper_hpd_irq_event() wouldn't bother trying to
    probe connectors so long as polling is disabled.
    
    So; simply move this back into nouveau_display_init() again. The race
    condition that both of these patches attempted to work around has
    already been fixed properly in
    
      d61a5c106351 ("drm/nouveau: Fix deadlock on runtime suspend")
    
    Fixes: 9a2eba337cace ("drm/nouveau: Fix drm poll_helper handling")
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Acked-by: Karol Herbst <kherbst@redhat.com>
    Acked-by: Daniel Vetter <daniel@ffwll.ch>
    Cc: Lukas Wunner <lukas@wunner.de>
    Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ac837e079a0e09771175c33afea8ef291b5d161
Author: Lyude Paul <lyude@redhat.com>
Date:   Tue Aug 7 17:32:48 2018 -0400

    drm/nouveau/drm/nouveau: Don't forget to cancel hpd_work on suspend/unload
    
    commit 2f7ca781fd382cf8dde73ed36dfdd93fd05b3332 upstream.
    
    Currently, there's nothing in nouveau that actually cancels this work
    struct. So, cancel it on suspend/unload. Otherwise, if we're unlucky
    enough hpd_work might try to keep running up until the system is
    suspended.
    
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42387d8e4aefffe928e1a4ec99c45e6e2c4d2167
Author: Lyude Paul <lyude@redhat.com>
Date:   Wed Aug 15 15:00:15 2018 -0400

    drm/nouveau: Fix deadlocks in nouveau_connector_detect()
    
    commit 3e1a12754d4df5804bfca5dedf09d2ba291bdc2a upstream.
    
    When we disable hotplugging on the GPU, we need to be able to
    synchronize with each connector's hotplug interrupt handler before the
    interrupt is finally disabled. This can be a problem however, since
    nouveau_connector_detect() currently grabs a runtime power reference
    when handling connector probing. This will deadlock the runtime suspend
    handler like so:
    
    [  861.480896] INFO: task kworker/0:2:61 blocked for more than 120 seconds.
    [  861.483290]       Tainted: G           O      4.18.0-rc6Lyude-Test+ #1
    [  861.485158] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [  861.486332] kworker/0:2     D    0    61      2 0x80000000
    [  861.487044] Workqueue: events nouveau_display_hpd_work [nouveau]
    [  861.487737] Call Trace:
    [  861.488394]  __schedule+0x322/0xaf0
    [  861.489070]  schedule+0x33/0x90
    [  861.489744]  rpm_resume+0x19c/0x850
    [  861.490392]  ? finish_wait+0x90/0x90
    [  861.491068]  __pm_runtime_resume+0x4e/0x90
    [  861.491753]  nouveau_display_hpd_work+0x22/0x60 [nouveau]
    [  861.492416]  process_one_work+0x231/0x620
    [  861.493068]  worker_thread+0x44/0x3a0
    [  861.493722]  kthread+0x12b/0x150
    [  861.494342]  ? wq_pool_ids_show+0x140/0x140
    [  861.494991]  ? kthread_create_worker_on_cpu+0x70/0x70
    [  861.495648]  ret_from_fork+0x3a/0x50
    [  861.496304] INFO: task kworker/6:2:320 blocked for more than 120 seconds.
    [  861.496968]       Tainted: G           O      4.18.0-rc6Lyude-Test+ #1
    [  861.497654] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [  861.498341] kworker/6:2     D    0   320      2 0x80000080
    [  861.499045] Workqueue: pm pm_runtime_work
    [  861.499739] Call Trace:
    [  861.500428]  __schedule+0x322/0xaf0
    [  861.501134]  ? wait_for_completion+0x104/0x190
    [  861.501851]  schedule+0x33/0x90
    [  861.502564]  schedule_timeout+0x3a5/0x590
    [  861.503284]  ? mark_held_locks+0x58/0x80
    [  861.503988]  ? _raw_spin_unlock_irq+0x2c/0x40
    [  861.504710]  ? wait_for_completion+0x104/0x190
    [  861.505417]  ? trace_hardirqs_on_caller+0xf4/0x190
    [  861.506136]  ? wait_for_completion+0x104/0x190
    [  861.506845]  wait_for_completion+0x12c/0x190
    [  861.507555]  ? wake_up_q+0x80/0x80
    [  861.508268]  flush_work+0x1c9/0x280
    [  861.508990]  ? flush_workqueue_prep_pwqs+0x1b0/0x1b0
    [  861.509735]  nvif_notify_put+0xb1/0xc0 [nouveau]
    [  861.510482]  nouveau_display_fini+0xbd/0x170 [nouveau]
    [  861.511241]  nouveau_display_suspend+0x67/0x120 [nouveau]
    [  861.511969]  nouveau_do_suspend+0x5e/0x2d0 [nouveau]
    [  861.512715]  nouveau_pmops_runtime_suspend+0x47/0xb0 [nouveau]
    [  861.513435]  pci_pm_runtime_suspend+0x6b/0x180
    [  861.514165]  ? pci_has_legacy_pm_support+0x70/0x70
    [  861.514897]  __rpm_callback+0x7a/0x1d0
    [  861.515618]  ? pci_has_legacy_pm_support+0x70/0x70
    [  861.516313]  rpm_callback+0x24/0x80
    [  861.517027]  ? pci_has_legacy_pm_support+0x70/0x70
    [  861.517741]  rpm_suspend+0x142/0x6b0
    [  861.518449]  pm_runtime_work+0x97/0xc0
    [  861.519144]  process_one_work+0x231/0x620
    [  861.519831]  worker_thread+0x44/0x3a0
    [  861.520522]  kthread+0x12b/0x150
    [  861.521220]  ? wq_pool_ids_show+0x140/0x140
    [  861.521925]  ? kthread_create_worker_on_cpu+0x70/0x70
    [  861.522622]  ret_from_fork+0x3a/0x50
    [  861.523299] INFO: task kworker/6:0:1329 blocked for more than 120 seconds.
    [  861.523977]       Tainted: G           O      4.18.0-rc6Lyude-Test+ #1
    [  861.524644] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [  861.525349] kworker/6:0     D    0  1329      2 0x80000000
    [  861.526073] Workqueue: events nvif_notify_work [nouveau]
    [  861.526751] Call Trace:
    [  861.527411]  __schedule+0x322/0xaf0
    [  861.528089]  schedule+0x33/0x90
    [  861.528758]  rpm_resume+0x19c/0x850
    [  861.529399]  ? finish_wait+0x90/0x90
    [  861.530073]  __pm_runtime_resume+0x4e/0x90
    [  861.530798]  nouveau_connector_detect+0x7e/0x510 [nouveau]
    [  861.531459]  ? ww_mutex_lock+0x47/0x80
    [  861.532097]  ? ww_mutex_lock+0x47/0x80
    [  861.532819]  ? drm_modeset_lock+0x88/0x130 [drm]
    [  861.533481]  drm_helper_probe_detect_ctx+0xa0/0x100 [drm_kms_helper]
    [  861.534127]  drm_helper_hpd_irq_event+0xa4/0x120 [drm_kms_helper]
    [  861.534940]  nouveau_connector_hotplug+0x98/0x120 [nouveau]
    [  861.535556]  nvif_notify_work+0x2d/0xb0 [nouveau]
    [  861.536221]  process_one_work+0x231/0x620
    [  861.536994]  worker_thread+0x44/0x3a0
    [  861.537757]  kthread+0x12b/0x150
    [  861.538463]  ? wq_pool_ids_show+0x140/0x140
    [  861.539102]  ? kthread_create_worker_on_cpu+0x70/0x70
    [  861.539815]  ret_from_fork+0x3a/0x50
    [  861.540521]
                   Showing all locks held in the system:
    [  861.541696] 2 locks held by kworker/0:2/61:
    [  861.542406]  #0: 000000002dbf8af5 ((wq_completion)"events"){+.+.}, at: process_one_work+0x1b3/0x620
    [  861.543071]  #1: 0000000076868126 ((work_completion)(&drm->hpd_work)){+.+.}, at: process_one_work+0x1b3/0x620
    [  861.543814] 1 lock held by khungtaskd/64:
    [  861.544535]  #0: 0000000059db4b53 (rcu_read_lock){....}, at: debug_show_all_locks+0x23/0x185
    [  861.545160] 3 locks held by kworker/6:2/320:
    [  861.545896]  #0: 00000000d9e1bc59 ((wq_completion)"pm"){+.+.}, at: process_one_work+0x1b3/0x620
    [  861.546702]  #1: 00000000c9f92d84 ((work_completion)(&dev->power.work)){+.+.}, at: process_one_work+0x1b3/0x620
    [  861.547443]  #2: 000000004afc5de1 (drm_connector_list_iter){.+.+}, at: nouveau_display_fini+0x96/0x170 [nouveau]
    [  861.548146] 1 lock held by dmesg/983:
    [  861.548889] 2 locks held by zsh/1250:
    [  861.549605]  #0: 00000000348e3cf6 (&tty->ldisc_sem){++++}, at: ldsem_down_read+0x37/0x40
    [  861.550393]  #1: 000000007009a7a8 (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0xc1/0x870
    [  861.551122] 6 locks held by kworker/6:0/1329:
    [  861.551957]  #0: 000000002dbf8af5 ((wq_completion)"events"){+.+.}, at: process_one_work+0x1b3/0x620
    [  861.552765]  #1: 00000000ddb499ad ((work_completion)(&notify->work)#2){+.+.}, at: process_one_work+0x1b3/0x620
    [  861.553582]  #2: 000000006e013cbe (&dev->mode_config.mutex){+.+.}, at: drm_helper_hpd_irq_event+0x6c/0x120 [drm_kms_helper]
    [  861.554357]  #3: 000000004afc5de1 (drm_connector_list_iter){.+.+}, at: drm_helper_hpd_irq_event+0x78/0x120 [drm_kms_helper]
    [  861.555227]  #4: 0000000044f294d9 (crtc_ww_class_acquire){+.+.}, at: drm_helper_probe_detect_ctx+0x3d/0x100 [drm_kms_helper]
    [  861.556133]  #5: 00000000db193642 (crtc_ww_class_mutex){+.+.}, at: drm_modeset_lock+0x4b/0x130 [drm]
    
    [  861.557864] =============================================
    
    [  861.559507] NMI backtrace for cpu 2
    [  861.560363] CPU: 2 PID: 64 Comm: khungtaskd Tainted: G           O      4.18.0-rc6Lyude-Test+ #1
    [  861.561197] Hardware name: LENOVO 20EQS64N0B/20EQS64N0B, BIOS N1EET78W (1.51 ) 05/18/2018
    [  861.561948] Call Trace:
    [  861.562757]  dump_stack+0x8e/0xd3
    [  861.563516]  nmi_cpu_backtrace.cold.3+0x14/0x5a
    [  861.564269]  ? lapic_can_unplug_cpu.cold.27+0x42/0x42
    [  861.565029]  nmi_trigger_cpumask_backtrace+0xa1/0xae
    [  861.565789]  arch_trigger_cpumask_backtrace+0x19/0x20
    [  861.566558]  watchdog+0x316/0x580
    [  861.567355]  kthread+0x12b/0x150
    [  861.568114]  ? reset_hung_task_detector+0x20/0x20
    [  861.568863]  ? kthread_create_worker_on_cpu+0x70/0x70
    [  861.569598]  ret_from_fork+0x3a/0x50
    [  861.570370] Sending NMI from CPU 2 to CPUs 0-1,3-7:
    [  861.571426] NMI backtrace for cpu 6 skipped: idling at intel_idle+0x7f/0x120
    [  861.571429] NMI backtrace for cpu 7 skipped: idling at intel_idle+0x7f/0x120
    [  861.571432] NMI backtrace for cpu 3 skipped: idling at intel_idle+0x7f/0x120
    [  861.571464] NMI backtrace for cpu 5 skipped: idling at intel_idle+0x7f/0x120
    [  861.571467] NMI backtrace for cpu 0 skipped: idling at intel_idle+0x7f/0x120
    [  861.571469] NMI backtrace for cpu 4 skipped: idling at intel_idle+0x7f/0x120
    [  861.571472] NMI backtrace for cpu 1 skipped: idling at intel_idle+0x7f/0x120
    [  861.572428] Kernel panic - not syncing: hung_task: blocked tasks
    
    So: fix this by making it so that normal hotplug handling /only/ happens
    so long as the GPU is currently awake without any pending runtime PM
    requests. In the event that a hotplug occurs while the device is
    suspending or resuming, we can simply defer our response until the GPU
    is fully runtime resumed again.
    
    Changes since v4:
    - Use a new trick I came up with using pm_runtime_get() instead of the
      hackish junk we had before
    
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Acked-by: Daniel Vetter <daniel@ffwll.ch>
    Cc: stable@vger.kernel.org
    Cc: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c1ca8fb8633e833eec8047a5b0cefa4e2a2119c
Author: Junxiao Bi <junxiao.bi@oracle.com>
Date:   Thu Sep 20 12:22:51 2018 -0700

    ocfs2: fix ocfs2 read block panic
    
    commit 234b69e3e089d850a98e7b3145bd00e9b52b1111 upstream.
    
    While reading block, it is possible that io error return due to underlying
    storage issue, in this case, BH_NeedsValidate was left in the buffer head.
    Then when reading the very block next time, if it was already linked into
    journal, that will trigger the following panic.
    
    [203748.702517] kernel BUG at fs/ocfs2/buffer_head_io.c:342!
    [203748.702533] invalid opcode: 0000 [#1] SMP
    [203748.702561] Modules linked in: ocfs2 ocfs2_dlmfs ocfs2_stack_o2cb ocfs2_dlm ocfs2_nodemanager ocfs2_stackglue configfs sunrpc dm_switch dm_queue_length dm_multipath bonding be2iscsi iscsi_boot_sysfs bnx2i cnic uio cxgb4i iw_cxgb4 cxgb4 cxgb3i libcxgbi iw_cxgb3 cxgb3 mdio ib_iser rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr ipv6 iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ipmi_devintf iTCO_wdt iTCO_vendor_support dcdbas ipmi_ssif i2c_core ipmi_si ipmi_msghandler acpi_pad pcspkr sb_edac edac_core lpc_ich mfd_core shpchp sg tg3 ptp pps_core ext4 jbd2 mbcache2 sr_mod cdrom sd_mod ahci libahci megaraid_sas wmi dm_mirror dm_region_hash dm_log dm_mod
    [203748.703024] CPU: 7 PID: 38369 Comm: touch Not tainted 4.1.12-124.18.6.el6uek.x86_64 #2
    [203748.703045] Hardware name: Dell Inc. PowerEdge R620/0PXXHP, BIOS 2.5.2 01/28/2015
    [203748.703067] task: ffff880768139c00 ti: ffff88006ff48000 task.ti: ffff88006ff48000
    [203748.703088] RIP: 0010:[<ffffffffa05e9f09>]  [<ffffffffa05e9f09>] ocfs2_read_blocks+0x669/0x7f0 [ocfs2]
    [203748.703130] RSP: 0018:ffff88006ff4b818  EFLAGS: 00010206
    [203748.703389] RAX: 0000000008620029 RBX: ffff88006ff4b910 RCX: 0000000000000000
    [203748.703885] RDX: 0000000000000001 RSI: 0000000000000000 RDI: 00000000023079fe
    [203748.704382] RBP: ffff88006ff4b8d8 R08: 0000000000000000 R09: ffff8807578c25b0
    [203748.704877] R10: 000000000f637376 R11: 000000003030322e R12: 0000000000000000
    [203748.705373] R13: ffff88006ff4b910 R14: ffff880732fe38f0 R15: 0000000000000000
    [203748.705871] FS:  00007f401992c700(0000) GS:ffff880bfebc0000(0000) knlGS:0000000000000000
    [203748.706370] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [203748.706627] CR2: 00007f4019252440 CR3: 00000000a621e000 CR4: 0000000000060670
    [203748.707124] Stack:
    [203748.707371]  ffff88006ff4b828 ffffffffa0609f52 ffff88006ff4b838 0000000000000001
    [203748.707885]  0000000000000000 0000000000000000 ffff880bf67c3800 ffffffffa05eca00
    [203748.708399]  00000000023079ff ffffffff81c58b80 0000000000000000 0000000000000000
    [203748.708915] Call Trace:
    [203748.709175]  [<ffffffffa0609f52>] ? ocfs2_inode_cache_io_unlock+0x12/0x20 [ocfs2]
    [203748.709680]  [<ffffffffa05eca00>] ? ocfs2_empty_dir_filldir+0x80/0x80 [ocfs2]
    [203748.710185]  [<ffffffffa05ec0cb>] ocfs2_read_dir_block_direct+0x3b/0x200 [ocfs2]
    [203748.710691]  [<ffffffffa05f0fbf>] ocfs2_prepare_dx_dir_for_insert.isra.57+0x19f/0xf60 [ocfs2]
    [203748.711204]  [<ffffffffa065660f>] ? ocfs2_metadata_cache_io_unlock+0x1f/0x30 [ocfs2]
    [203748.711716]  [<ffffffffa05f4f3a>] ocfs2_prepare_dir_for_insert+0x13a/0x890 [ocfs2]
    [203748.712227]  [<ffffffffa05f442e>] ? ocfs2_check_dir_for_entry+0x8e/0x140 [ocfs2]
    [203748.712737]  [<ffffffffa061b2f2>] ocfs2_mknod+0x4b2/0x1370 [ocfs2]
    [203748.713003]  [<ffffffffa061c385>] ocfs2_create+0x65/0x170 [ocfs2]
    [203748.713263]  [<ffffffff8121714b>] vfs_create+0xdb/0x150
    [203748.713518]  [<ffffffff8121b225>] do_last+0x815/0x1210
    [203748.713772]  [<ffffffff812192e9>] ? path_init+0xb9/0x450
    [203748.714123]  [<ffffffff8121bca0>] path_openat+0x80/0x600
    [203748.714378]  [<ffffffff811bcd45>] ? handle_pte_fault+0xd15/0x1620
    [203748.714634]  [<ffffffff8121d7ba>] do_filp_open+0x3a/0xb0
    [203748.714888]  [<ffffffff8122a767>] ? __alloc_fd+0xa7/0x130
    [203748.715143]  [<ffffffff81209ffc>] do_sys_open+0x12c/0x220
    [203748.715403]  [<ffffffff81026ddb>] ? syscall_trace_enter_phase1+0x11b/0x180
    [203748.715668]  [<ffffffff816f0c9f>] ? system_call_after_swapgs+0xe9/0x190
    [203748.715928]  [<ffffffff8120a10e>] SyS_open+0x1e/0x20
    [203748.716184]  [<ffffffff816f0d5e>] system_call_fastpath+0x18/0xd7
    [203748.716440] Code: 00 00 48 8b 7b 08 48 83 c3 10 45 89 f8 44 89 e1 44 89 f2 4c 89 ee e8 07 06 11 e1 48 8b 03 48 85 c0 75 df 8b 5d c8 e9 4d fa ff ff <0f> 0b 48 8b 7d a0 e8 dc c6 06 00 48 b8 00 00 00 00 00 00 00 10
    [203748.717505] RIP  [<ffffffffa05e9f09>] ocfs2_read_blocks+0x669/0x7f0 [ocfs2]
    [203748.717775]  RSP <ffff88006ff4b818>
    
    Joesph ever reported a similar panic.
    Link: https://oss.oracle.com/pipermail/ocfs2-devel/2013-May/008931.html
    
    Link: http://lkml.kernel.org/r/20180912063207.29484-1-junxiao.bi@oracle.com
    Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Joseph Qi <jiangqi903@gmail.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Changwei Ge <ge.changwei@h3c.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d7e23f9068fc4c6047457eaace8453ec2d220f5
Author: Richard Weinberger <richard@nod.at>
Date:   Sun Sep 16 23:57:35 2018 +0200

    Revert "ubifs: xattr: Don't operate on deleted inodes"
    
    commit f061c1cc404a618858a77aea233fde0aeaad2f2d upstream.
    
    This reverts commit 11a6fc3dc743e22fb50f2196ec55bee5140d3c52.
    UBIFS wants to assert that xattr operations are only issued on files
    with positive link count. The said patch made this operations return
    -ENOENT for unlinked files such that the asserts will no longer trigger.
    This was wrong since xattr operations are perfectly fine on unlinked
    files.
    Instead the assertions need to be fixed/removed.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 11a6fc3dc743 ("ubifs: xattr: Don't operate on deleted inodes")
    Reported-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
    Tested-by: Joel Stanley <joel@jms.id.au>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44383139a39c46d08c8e169121c16aeb0427d147
Author: Vincent Pelletier <plr.vincent@gmail.com>
Date:   Sun Sep 9 04:09:27 2018 +0000

    scsi: target: iscsi: Use bin2hex instead of a re-implementation
    
    commit 8c39e2699f8acb2e29782a834e56306da24937fe upstream.
    
    Signed-off-by: Vincent Pelletier <plr.vincent@gmail.com>
    Reviewed-by: Mike Christie <mchristi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 755e45f3155cc51e37dc1cce9ccde10b84df7d93
Author: Vincent Pelletier <plr.vincent@gmail.com>
Date:   Sun Sep 9 04:09:26 2018 +0000

    scsi: target: iscsi: Use hex2bin instead of a re-implementation
    
    commit 1816494330a83f2a064499d8ed2797045641f92c upstream.
    
    This change has the following effects, in order of descreasing importance:
    
    1) Prevent a stack buffer overflow
    
    2) Do not append an unnecessary NULL to an anyway binary buffer, which
       is writing one byte past client_digest when caller is:
       chap_string_to_hex(client_digest, chap_r, strlen(chap_r));
    
    The latter was found by KASAN (see below) when input value hes expected size
    (32 hex chars), and further analysis revealed a stack buffer overflow can
    happen when network-received value is longer, allowing an unauthenticated
    remote attacker to smash up to 17 bytes after destination buffer (16 bytes
    attacker-controlled and one null).  As switching to hex2bin requires
    specifying destination buffer length, and does not internally append any null,
    it solves both issues.
    
    This addresses CVE-2018-14633.
    
    Beyond this:
    
    - Validate received value length and check hex2bin accepted the input, to log
      this rejection reason instead of just failing authentication.
    
    - Only log received CHAP_R and CHAP_C values once they passed sanity checks.
    
    ==================================================================
    BUG: KASAN: stack-out-of-bounds in chap_string_to_hex+0x32/0x60 [iscsi_target_mod]
    Write of size 1 at addr ffff8801090ef7c8 by task kworker/0:0/1021
    
    CPU: 0 PID: 1021 Comm: kworker/0:0 Tainted: G           O      4.17.8kasan.sess.connops+ #2
    Hardware name: To be filled by O.E.M. To be filled by O.E.M./Aptio CRB, BIOS 5.6.5 05/19/2014
    Workqueue: events iscsi_target_do_login_rx [iscsi_target_mod]
    Call Trace:
     dump_stack+0x71/0xac
     print_address_description+0x65/0x22e
     ? chap_string_to_hex+0x32/0x60 [iscsi_target_mod]
     kasan_report.cold.6+0x241/0x2fd
     chap_string_to_hex+0x32/0x60 [iscsi_target_mod]
     chap_server_compute_md5.isra.2+0x2cb/0x860 [iscsi_target_mod]
     ? chap_binaryhex_to_asciihex.constprop.5+0x50/0x50 [iscsi_target_mod]
     ? ftrace_caller_op_ptr+0xe/0xe
     ? __orc_find+0x6f/0xc0
     ? unwind_next_frame+0x231/0x850
     ? kthread+0x1a0/0x1c0
     ? ret_from_fork+0x35/0x40
     ? ret_from_fork+0x35/0x40
     ? iscsi_target_do_login_rx+0x3bc/0x4c0 [iscsi_target_mod]
     ? deref_stack_reg+0xd0/0xd0
     ? iscsi_target_do_login_rx+0x3bc/0x4c0 [iscsi_target_mod]
     ? is_module_text_address+0xa/0x11
     ? kernel_text_address+0x4c/0x110
     ? __save_stack_trace+0x82/0x100
     ? ret_from_fork+0x35/0x40
     ? save_stack+0x8c/0xb0
     ? 0xffffffffc1660000
     ? iscsi_target_do_login+0x155/0x8d0 [iscsi_target_mod]
     ? iscsi_target_do_login_rx+0x3bc/0x4c0 [iscsi_target_mod]
     ? process_one_work+0x35c/0x640
     ? worker_thread+0x66/0x5d0
     ? kthread+0x1a0/0x1c0
     ? ret_from_fork+0x35/0x40
     ? iscsi_update_param_value+0x80/0x80 [iscsi_target_mod]
     ? iscsit_release_cmd+0x170/0x170 [iscsi_target_mod]
     chap_main_loop+0x172/0x570 [iscsi_target_mod]
     ? chap_server_compute_md5.isra.2+0x860/0x860 [iscsi_target_mod]
     ? rx_data+0xd6/0x120 [iscsi_target_mod]
     ? iscsit_print_session_params+0xd0/0xd0 [iscsi_target_mod]
     ? cyc2ns_read_begin.part.2+0x90/0x90
     ? _raw_spin_lock_irqsave+0x25/0x50
     ? memcmp+0x45/0x70
     iscsi_target_do_login+0x875/0x8d0 [iscsi_target_mod]
     ? iscsi_target_check_first_request.isra.5+0x1a0/0x1a0 [iscsi_target_mod]
     ? del_timer+0xe0/0xe0
     ? memset+0x1f/0x40
     ? flush_sigqueue+0x29/0xd0
     iscsi_target_do_login_rx+0x3bc/0x4c0 [iscsi_target_mod]
     ? iscsi_target_nego_release+0x80/0x80 [iscsi_target_mod]
     ? iscsi_target_restore_sock_callbacks+0x130/0x130 [iscsi_target_mod]
     process_one_work+0x35c/0x640
     worker_thread+0x66/0x5d0
     ? flush_rcu_work+0x40/0x40
     kthread+0x1a0/0x1c0
     ? kthread_bind+0x30/0x30
     ret_from_fork+0x35/0x40
    
    The buggy address belongs to the page:
    page:ffffea0004243bc0 count:0 mapcount:0 mapping:0000000000000000 index:0x0
    flags: 0x17fffc000000000()
    raw: 017fffc000000000 0000000000000000 0000000000000000 00000000ffffffff
    raw: ffffea0004243c20 ffffea0004243ba0 0000000000000000 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff8801090ef680: f2 f2 f2 f2 f2 f2 f2 01 f2 f2 f2 f2 f2 f2 f2 00
     ffff8801090ef700: f2 f2 f2 f2 f2 f2 f2 00 02 f2 f2 f2 f2 f2 f2 00
    >ffff8801090ef780: 00 f2 f2 f2 f2 f2 f2 00 00 f2 f2 f2 f2 f2 f2 00
                                                  ^
     ffff8801090ef800: 00 f2 f2 f2 f2 f2 f2 00 00 00 00 02 f2 f2 f2 f2
     ffff8801090ef880: f2 f2 f2 00 00 00 00 00 00 00 00 f2 f2 f2 f2 00
    ==================================================================
    
    Signed-off-by: Vincent Pelletier <plr.vincent@gmail.com>
    Reviewed-by: Mike Christie <mchristi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 50ec69edf3f097693e22b56c7b2140acf98f28eb
Author: Lubomir Rintel <lkundrak@v3.sk>
Date:   Mon Sep 24 13:18:34 2018 +0100

    Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name"
    
    commit 8c0f9f5b309d627182d5da72a69246f58bde1026 upstream.
    
    This changes UAPI, breaking iwd and libell:
    
      ell/key.c: In function 'kernel_dh_compute':
      ell/key.c:205:38: error: 'struct keyctl_dh_params' has no member named 'private'; did you mean 'dh_private'?
        struct keyctl_dh_params params = { .private = private,
                                            ^~~~~~~
                                            dh_private
    
    This reverts commit 8a2336e549d385bb0b46880435b411df8d8200e8.
    
    Fixes: 8a2336e549d3 ("uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name")
    Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Randy Dunlap <rdunlap@infradead.org>
    cc: Mat Martineau <mathew.j.martineau@linux.intel.com>
    cc: Stephan Mueller <smueller@chronox.de>
    cc: James Morris <jmorris@namei.org>
    cc: "Serge E. Hallyn" <serge@hallyn.com>
    cc: Mat Martineau <mathew.j.martineau@linux.intel.com>
    cc: Andrew Morton <akpm@linux-foundation.org>
    cc: Linus Torvalds <torvalds@linux-foundation.org>
    cc: <stable@vger.kernel.org>
    Signed-off-by: James Morris <james.morris@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13d216167d3d89d882b264857fe1d14c95da1490
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Sep 26 13:53:39 2018 +0200

    Revert "rpmsg: core: add support to power domains for devices"
    
    This reverts commit 1ed3a93072307265d6385031b72929a904b50f87 which is
    commit fe782affd0f440a4e60e2cc81b8f2eccb2923113 upstream
    
    Rafael reports that this patch causes problems:
            > -rc2 looks good. There is a problem on dragonboard during boot that was
            > introduced in v4.14.71 that I didn't notice last week. We'll bisect it
            > and report back later this week. dragonboard on the other branches (4.9,
            > 4.18, mainline) looks fine.
    
            As Dan pointed out, during validation, we have bisected this issue on
            a dragonboard 410c (can't find root device) to the following commit
            for v4.14:
    
            [1ed3a9307230] rpmsg: core: add support to power domains for devices
    
            There is an on-going discussion on "[PATCH] rpmsg: core: add support
            to power domains for devices" about this patch having other
            dependencies and breaking something else on v4.14 as well.
    
    so drop it.
    
    Reported-by: Rafael Tinoco <rafael.tinoco@linaro.org>
    Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
    Cc: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6447b34fc2708725e97707ab8256a9a88b31682d
Author: Joel Fernandes (Google) <joel@joelfernandes.org>
Date:   Thu Sep 20 12:22:39 2018 -0700

    mm: shmem.c: Correctly annotate new inodes for lockdep
    
    commit b45d71fb89ab8adfe727b9d0ee188ed58582a647 upstream.
    
    Directories and inodes don't necessarily need to be in the same lockdep
    class.  For ex, hugetlbfs splits them out too to prevent false positives
    in lockdep.  Annotate correctly after new inode creation.  If its a
    directory inode, it will be put into a different class.
    
    This should fix a lockdep splat reported by syzbot:
    
    > ======================================================
    > WARNING: possible circular locking dependency detected
    > 4.18.0-rc8-next-20180810+ #36 Not tainted
    > ------------------------------------------------------
    > syz-executor900/4483 is trying to acquire lock:
    > 00000000d2bfc8fe (&sb->s_type->i_mutex_key#9){++++}, at: inode_lock
    > include/linux/fs.h:765 [inline]
    > 00000000d2bfc8fe (&sb->s_type->i_mutex_key#9){++++}, at:
    > shmem_fallocate+0x18b/0x12e0 mm/shmem.c:2602
    >
    > but task is already holding lock:
    > 0000000025208078 (ashmem_mutex){+.+.}, at: ashmem_shrink_scan+0xb4/0x630
    > drivers/staging/android/ashmem.c:448
    >
    > which lock already depends on the new lock.
    >
    > -> #2 (ashmem_mutex){+.+.}:
    >        __mutex_lock_common kernel/locking/mutex.c:925 [inline]
    >        __mutex_lock+0x171/0x1700 kernel/locking/mutex.c:1073
    >        mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:1088
    >        ashmem_mmap+0x55/0x520 drivers/staging/android/ashmem.c:361
    >        call_mmap include/linux/fs.h:1844 [inline]
    >        mmap_region+0xf27/0x1c50 mm/mmap.c:1762
    >        do_mmap+0xa10/0x1220 mm/mmap.c:1535
    >        do_mmap_pgoff include/linux/mm.h:2298 [inline]
    >        vm_mmap_pgoff+0x213/0x2c0 mm/util.c:357
    >        ksys_mmap_pgoff+0x4da/0x660 mm/mmap.c:1585
    >        __do_sys_mmap arch/x86/kernel/sys_x86_64.c:100 [inline]
    >        __se_sys_mmap arch/x86/kernel/sys_x86_64.c:91 [inline]
    >        __x64_sys_mmap+0xe9/0x1b0 arch/x86/kernel/sys_x86_64.c:91
    >        do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
    >        entry_SYSCALL_64_after_hwframe+0x49/0xbe
    >
    > -> #1 (&mm->mmap_sem){++++}:
    >        __might_fault+0x155/0x1e0 mm/memory.c:4568
    >        _copy_to_user+0x30/0x110 lib/usercopy.c:25
    >        copy_to_user include/linux/uaccess.h:155 [inline]
    >        filldir+0x1ea/0x3a0 fs/readdir.c:196
    >        dir_emit_dot include/linux/fs.h:3464 [inline]
    >        dir_emit_dots include/linux/fs.h:3475 [inline]
    >        dcache_readdir+0x13a/0x620 fs/libfs.c:193
    >        iterate_dir+0x48b/0x5d0 fs/readdir.c:51
    >        __do_sys_getdents fs/readdir.c:231 [inline]
    >        __se_sys_getdents fs/readdir.c:212 [inline]
    >        __x64_sys_getdents+0x29f/0x510 fs/readdir.c:212
    >        do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
    >        entry_SYSCALL_64_after_hwframe+0x49/0xbe
    >
    > -> #0 (&sb->s_type->i_mutex_key#9){++++}:
    >        lock_acquire+0x1e4/0x540 kernel/locking/lockdep.c:3924
    >        down_write+0x8f/0x130 kernel/locking/rwsem.c:70
    >        inode_lock include/linux/fs.h:765 [inline]
    >        shmem_fallocate+0x18b/0x12e0 mm/shmem.c:2602
    >        ashmem_shrink_scan+0x236/0x630 drivers/staging/android/ashmem.c:455
    >        ashmem_ioctl+0x3ae/0x13a0 drivers/staging/android/ashmem.c:797
    >        vfs_ioctl fs/ioctl.c:46 [inline]
    >        file_ioctl fs/ioctl.c:501 [inline]
    >        do_vfs_ioctl+0x1de/0x1720 fs/ioctl.c:685
    >        ksys_ioctl+0xa9/0xd0 fs/ioctl.c:702
    >        __do_sys_ioctl fs/ioctl.c:709 [inline]
    >        __se_sys_ioctl fs/ioctl.c:707 [inline]
    >        __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:707
    >        do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
    >        entry_SYSCALL_64_after_hwframe+0x49/0xbe
    >
    > other info that might help us debug this:
    >
    > Chain exists of:
    >   &sb->s_type->i_mutex_key#9 --> &mm->mmap_sem --> ashmem_mutex
    >
    >  Possible unsafe locking scenario:
    >
    >        CPU0                    CPU1
    >        ----                    ----
    >   lock(ashmem_mutex);
    >                                lock(&mm->mmap_sem);
    >                                lock(ashmem_mutex);
    >   lock(&sb->s_type->i_mutex_key#9);
    >
    >  *** DEADLOCK ***
    >
    > 1 lock held by syz-executor900/4483:
    >  #0: 0000000025208078 (ashmem_mutex){+.+.}, at:
    > ashmem_shrink_scan+0xb4/0x630 drivers/staging/android/ashmem.c:448
    
    Link: http://lkml.kernel.org/r/20180821231835.166639-1-joel@joelfernandes.org
    Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Reviewed-by: NeilBrown <neilb@suse.com>
    Suggested-by: NeilBrown <neilb@suse.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7eba38a3f65d3cec79dbe1f10166e9423d4074f4
Author: Vaibhav Nagarnaik <vnagarnaik@google.com>
Date:   Fri Sep 7 15:31:29 2018 -0700

    ring-buffer: Allow for rescheduling when removing pages
    
    commit 83f365554e47997ec68dc4eca3f5dce525cd15c3 upstream.
    
    When reducing ring buffer size, pages are removed by scheduling a work
    item on each CPU for the corresponding CPU ring buffer. After the pages
    are removed from ring buffer linked list, the pages are free()d in a
    tight loop. The loop does not give up CPU until all pages are removed.
    In a worst case behavior, when lot of pages are to be freed, it can
    cause system stall.
    
    After the pages are removed from the list, the free() can happen while
    the work is rescheduled. Call cond_resched() in the loop to prevent the
    system hangup.
    
    Link: http://lkml.kernel.org/r/20180907223129.71994-1-vnagarnaik@google.com
    
    Cc: stable@vger.kernel.org
    Fixes: 83f40318dab00 ("ring-buffer: Make removal of ring buffer pages atomic")
    Reported-by: Jason Behmer <jbehmer@google.com>
    Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e5cdbac030358fea3b757d033c8fda29138b866
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Wed Sep 5 14:09:54 2018 +0300

    Revert "PCI: Add ACS quirk for Intel 300 series"
    
    commit 50ca031b51106b1b46162d4e9ecccb7edc95682f upstream.
    
    This reverts f154a718e6cc ("PCI: Add ACS quirk for Intel 300 series").
    
    It turns out that erratum "PCH PCIe* Controller Root Port (ACSCTLR) Appear
    As Read Only" has been fixed in 300 series chipsets, even though the
    datasheet [1] claims otherwise.  To make ACS work properly on 300 series
    root ports, revert the faulty commit.
    
    [1] https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/300-series-c240-series-chipset-pch-spec-update.pdf
    
    Fixes: f154a718e6cc ("PCI: Add ACS quirk for Intel 300 series")
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Cc: stable@vger.kernel.org      # v4.18+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3765abb60c707243f3cbdd4be07bdac689576b5
Author: Kirill Kapranov <kirill.kapranov@compulab.co.il>
Date:   Mon Aug 13 19:48:10 2018 +0300

    spi: fix IDR collision on systems with both fixed and dynamic SPI bus numbers
    
    commit 1a4327fbf4554d5b78d75b19a13d40d6de220159 upstream.
    
    On systems where some controllers get a dynamic ID assigned and some have
    a fixed number (e.g. from ACPI tables), the current implementation might
    run into an IDR collision: in case of a fixed bus number is gotten by a
    driver (but not marked busy in IDR tree) and a driver with dynamic bus
    number gets the same ID and predictably fails.
    
    Fix this by means of checking-in fixed IDsin IDR as far as dynamic ones
    at the moment of the controller registration.
    
    Fixes: 9b61e302210e (spi: Pick spi bus number from Linux idr or spi alias)
    Signed-off-by: Kirill Kapranov <kirill.kapranov@compulab.co.il>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ca87a38202e6265214afbe49353a10be81a6ecc
Author: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Date:   Thu Jul 12 13:27:00 2018 -0400

    xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
    
    commit 70513d58751d7c6c1a0133557b13089b9f2e3e66 upstream.
    
    Otherwise we may leak kernel stack for events that sample user
    registers.
    
    Reported-by: Mark Rutland <mark.rutland@arm.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7eced4478f4ec6ff0a603ddfd6e24a5d3831fca7
Author: Juergen Gross <jgross@suse.com>
Date:   Tue Sep 11 09:04:48 2018 +0200

    xen/netfront: don't bug in case of too many frags
    
    commit ad4f15dc2c70b1de5e0a64d27335962fbc9cf71c upstream.
    
    Commit 57f230ab04d291 ("xen/netfront: raise max number of slots in
    xennet_get_responses()") raised the max number of allowed slots by one.
    This seems to be problematic in some configurations with netback using
    a larger MAX_SKB_FRAGS value (e.g. old Linux kernel with MAX_SKB_FRAGS
    defined as 18 instead of nowadays 17).
    
    Instead of BUG_ON() in this case just fall back to retransmission.
    
    Fixes: 57f230ab04d291 ("xen/netfront: raise max number of slots in xennet_get_responses()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2d5285b98ef43f55546873d1f58b41fe583f72d
Author: Mario Limonciello <mario.limonciello@dell.com>
Date:   Mon Sep 10 13:01:53 2018 -0500

    platform/x86: alienware-wmi: Correct a memory leak
    
    commit ff0e9f26288d2daee4950f42b37a3d3d30d36ec1 upstream.
    
    An ACPI buffer that was allocated was not being freed after use.
    
    Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff6805037d838dd003b6fb88b9b0232b3d05bc07
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Thu Sep 13 21:31:18 2018 +0900

    ALSA: oxfw: fix memory leak of private data
    
    commit 498fe23aad8e3b5a9554f55719c537603b4476ea upstream.
    
    Although private data of sound card instance is usually allocated in the
    tail of the instance, drivers in ALSA firewire stack allocate the private
    data before allocating the instance. In this case, the private data
    should be released explicitly at .private_free callback of the instance.
    
    This commit fixes memory leak following to the above design.
    
    Fixes: 6c29230e2a5f ('ALSA: oxfw: delayed registration of sound card')
    Cc: <stable@vger.kernel.org> # v4.7+
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 08f4f8b938092a9b4b99eeff3ee6828e5cc20373
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Mon Sep 17 17:26:20 2018 +0900

    ALSA: oxfw: fix memory leak of discovered stream formats at error path
    
    commit 1064bc685d359f549f91c2d5f111965a9284f328 upstream.
    
    After finishing discover of stream formats, ALSA OXFW driver has memory
    leak of allocated memory object at error path.
    
    This commit releases the memory object at the error path.
    
    Fixes: 6c29230e2a5f ('ALSA: oxfw: delayed registration of sound card')
    Cc: <stable@vger.kernel.org> # v4.7+
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 996899a9cbd85b05804b80574ff4290d27913693
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Mon Sep 17 17:26:08 2018 +0900

    ALSA: oxfw: fix memory leak for model-dependent data at error path
    
    commit ce925f088b979537f22f9e05eb923ef9822ca139 upstream.
    
    After allocating model-dependent data, ALSA OXFW driver has memory leak
    of the data at error path.
    
    This commit releases the data at the error path.
    
    Fixes: 6c29230e2a5f ('ALSA: oxfw: delayed registration of sound card')
    Cc: <stable@vger.kernel.org> # v4.7+
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9929097176dc69d993715b80983bdbca06307e7
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Mon Sep 17 17:26:41 2018 +0900

    ALSA: fireworks: fix memory leak of response buffer at error path
    
    commit c3b55e2ec9c76e7a0de2a0b1dc851fdc9440385b upstream.
    
    After allocating memory object for response buffer, ALSA fireworks
    driver has leak of the memory object at error path.
    
    This commit releases the object at the error path.
    
    Fixes: 7d3c1d5901aa('ALSA: fireworks: delayed registration of sound card')
    Cc: <stable@vger.kernel.org> # v4.7+
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 40e2596f06b0b89ae03c14e6fb48bdc2600f4003
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Thu Sep 13 21:31:05 2018 +0900

    ALSA: firewire-tascam: fix memory leak of private data
    
    commit 8d28277c065a974873c6781d44b7bcdcd8fb4e8a upstream.
    
    Although private data of sound card instance is usually allocated in the
    tail of the instance, drivers in ALSA firewire stack allocate the private
    data before allocating the instance. In this case, the private data
    should be released explicitly at .private_free callback of the instance.
    
    This commit fixes memory leak following to the above design.
    
    Fixes: b610386c8afb ('ALSA: firewire-tascam: deleyed registration of sound card')
    Cc: <stable@vger.kernel.org> # v4.7+
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 933f20a61e26467cae26935aeda43979035fb286
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Thu Sep 13 21:30:34 2018 +0900

    ALSA: firewire-digi00x: fix memory leak of private data
    
    commit a49a83ab05e34edd6c71a4fbd062c9a7ba6d18aa upstream.
    
    Although private data of sound card instance is usually allocated in the
    tail of the instance, drivers in ALSA firewire stack allocate the private
    data before allocating the instance. In this case, the private data
    should be released explicitly at .private_free callback of the instance.
    
    This commit fixes memory leak following to the above design.
    
    Fixes: 86c8dd7f4da3 ('ALSA: firewire-digi00x: delayed registration of sound card')
    Cc: <stable@vger.kernel.org> # v4.7+
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 70165a445b00c7bb0f68c955da3c100817ac0c87
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Sun Sep 9 22:25:52 2018 +0900

    ALSA: fireface: fix memory leak in ff400_switch_fetching_mode()
    
    commit 36f3a6e02c143a7e9e4e143e416371f67bc1fae6 upstream.
    
    An allocated memory forgets to be released.
    
    Fixes: 76fdb3a9e13 ('ALSA: fireface: add support for Fireface 400')
    Cc: <stable@vger.kernel.org> # 4.12+
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 352701c288c1aef805d1c904c9de3b3a211ac71b
Author: Willy Tarreau <w@1wt.eu>
Date:   Sat Sep 8 08:12:21 2018 +0200

    ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
    
    commit 49434c6c575d2008c0abbc93e615019f39e01252 upstream.
    
    snd_emu10k1_fx8010_ioctl(SNDRV_EMU10K1_IOCTL_INFO) allocates
    memory using kmalloc() and partially fills it by calling
    snd_emu10k1_fx8010_info() before returning the resulting
    structure to userspace, leaving uninitialized holes. Let's
    just use kzalloc() here.
    
    BugLink: http://blog.infosectcbr.com.au/2018/09/linux-kernel-infoleaks.html
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Cc: Jann Horn <jannh@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c4881d64ed750dd8fac1d824fd1f99b2b9d124b
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Sun Sep 9 22:25:12 2018 +0900

    ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
    
    commit 493626f2d87a74e6dbea1686499ed6e7e600484e upstream.
    
    When executing 'fw_run_transaction()' with 'TCODE_WRITE_BLOCK_REQUEST',
    an address of 'payload' argument is used for streaming DMA mapping by
    'firewire_ohci' module if 'size' argument is larger than 8 byte.
    Although in this case the address should not be on kernel stack, current
    implementation of ALSA bebob driver uses data in kernel stack for a cue
    to boot M-Audio devices. This often brings unexpected result, especially
    for a case of CONFIG_VMAP_STACK=y.
    
    This commit fixes the bug.
    
    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=201021
    Reference: https://forum.manjaro.org/t/firewire-m-audio-410-driver-wont-load-firmware/51165
    Fixes: a2b2a7798fb6('ALSA: bebob: Send a cue to load firmware for M-Audio Firewire series')
    Cc: <stable@vger.kernel.org> # v3.16+
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16b8c03864b7cc6b8413b08b8fb5fd980b39b4b5
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Mon Sep 17 17:25:24 2018 +0900

    ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path
    
    commit b1fbebd4164b3d170ad916dcd692cf843c9c065d upstream.
    
    After allocating model-dependent data for M-Audio FW1814 and ProjectMix
    I/O, ALSA bebob driver has memory leak at error path.
    
    This commit releases the allocated data at the error path.
    
    Fixes: 04a2c73c97eb('ALSA: bebob: delayed registration of sound card')
    Cc: <stable@vger.kernel.org> # v4.7+
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c7cf0304d41f68b47b3eaf6ef2f8ca9c3debfefc
Author: Jiada Wang <jiada_wang@mentor.com>
Date:   Mon Sep 3 07:08:58 2018 +0000

    ASoC: rsnd: fixup not to call clk_get/set under non-atomic
    
    commit 4d230d12710646788af581ba0155d83ab48b955c upstream.
    
    Clocking operations clk_get/set_rate, are non-atomic,
    they shouldn't be called in soc_pcm_trigger() which is atomic.
    
    Following issue was found due to execution of clk_get_rate() causes
    sleep in soc_pcm_trigger(), which shouldn't be blocked.
    
    We can reproduce this issue by following
            > enable CONFIG_DEBUG_ATOMIC_SLEEP=y
            > compile, and boot
            > mount -t debugfs none /sys/kernel/debug
            > while true; do cat /sys/kernel/debug/clk/clk_summary > /dev/null; done &
            > while true; do aplay xxx; done
    
    This patch adds support to .prepare callback, and moves non-atomic
    clocking operations to it. As .prepare is non-atomic, it is always
    called before trigger_start/trigger_stop.
    
            BUG: sleeping function called from invalid context at kernel/locking/mutex.c:620
            in_atomic(): 1, irqs_disabled(): 128, pid: 2242, name: aplay
            INFO: lockdep is turned off.
            irq event stamp: 5964
            hardirqs last enabled at (5963): [<ffff200008e59e40>] mutex_lock_nested+0x6e8/0x6f0
            hardirqs last disabled at (5964): [<ffff200008e623f0>] _raw_spin_lock_irqsave+0x24/0x68
            softirqs last enabled at (5502): [<ffff200008081838>] __do_softirq+0x560/0x10c0
            softirqs last disabled at (5495): [<ffff2000080c2e78>] irq_exit+0x160/0x25c
            Preemption disabled at:[ 62.904063] [<ffff200008be4d48>] snd_pcm_stream_lock+0xb4/0xc0
            CPU: 2 PID: 2242 Comm: aplay Tainted: G B C 4.9.54+ #186
            Hardware name: Renesas Salvator-X board based on r8a7795 (DT)
            Call trace:
            [<ffff20000808fe48>] dump_backtrace+0x0/0x37c
            [<ffff2000080901d8>] show_stack+0x14/0x1c
            [<ffff2000086f4458>] dump_stack+0xfc/0x154
            [<ffff2000081134a0>] ___might_sleep+0x57c/0x58c
            [<ffff2000081136b8>] __might_sleep+0x208/0x21c
            [<ffff200008e5980c>] mutex_lock_nested+0xb4/0x6f0
            [<ffff2000087cac74>] clk_prepare_lock+0xb0/0x184
            [<ffff2000087cb094>] clk_core_get_rate+0x14/0x54
            [<ffff2000087cb0f4>] clk_get_rate+0x20/0x34
            [<ffff20000113aa00>] rsnd_adg_ssi_clk_try_start+0x158/0x4f8 [snd_soc_rcar]
            [<ffff20000113da00>] rsnd_ssi_init+0x668/0x7a0 [snd_soc_rcar]
            [<ffff200001133ff4>] rsnd_soc_dai_trigger+0x4bc/0xcf8 [snd_soc_rcar]
            [<ffff200008c1af24>] soc_pcm_trigger+0x2a4/0x2d4
    
    Fixes: e7d850dd10f4 ("ASoC: rsnd: use mod base common method on SSI-parent")
    Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
    Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
    [Kuninori: tidyup for upstream]
    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a388e6d7a822e1a6c87e25d90bb744b34c44ca34
Author: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
Date:   Thu Sep 6 11:16:00 2018 +0200

    ASoC: cs4265: fix MMTLR Data switch control
    
    commit 90a3b7f8aba3011badacd6d8121e03aa24ac79d1 upstream.
    
    The MMTLR bit is in the CS4265_SPDIF_CTL2 register at address 0x12 bit 0
    and not at address 0x0 bit 1. Fix this.
    
    Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ead7a8a4ec1c69c39951d96ba397010c7d14e26
Author: Suren Baghdasaryan <surenb@google.com>
Date:   Mon Sep 17 15:51:41 2018 +0200

    NFC: Fix the number of pipes
    
    commit e285d5bfb7e9785d289663baef252dd315e171f8 upstream.
    
    According to ETSI TS 102 622 specification chapter 4.4 pipe identifier
    is 7 bits long which allows for 128 unique pipe IDs. Because
    NFC_HCI_MAX_PIPES is used as the number of pipes supported and not
    as the max pipe ID, its value should be 128 instead of 127.
    
    nfc_hci_recv_from_llc extracts pipe ID from packet header using
    NFC_HCI_FRAGMENT(0x7F) mask which allows for pipe ID value of 127.
    Same happens when NCI_HCP_MSG_GET_PIPE() is being used. With
    pipes array having only 127 elements and pipe ID of 127 the OOB memory
    access will result.
    
    Cc: Samuel Ortiz <sameo@linux.intel.com>
    Cc: Allen Pais <allen.pais@oracle.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Suren Baghdasaryan <surenb@google.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a16b3cd084df928ae2b19cf9cf61c406de8a80d
Author: Suren Baghdasaryan <surenb@google.com>
Date:   Mon Sep 17 15:51:40 2018 +0200

    NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
    
    commit 674d9de02aa7d521ebdf66c3958758bdd9c64e11 upstream.
    
    When handling SHDLC I-Frame commands "pipe" field used for indexing
    into an array should be checked before usage. If left unchecked it
    might access memory outside of the array of size NFC_HCI_MAX_PIPES(127).
    
    Malformed NFC HCI frames could be injected by a malicious NFC device
    communicating with the device being attacked (remote attack vector),
    or even by an attacker with physical access to the I2C bus such that
    they could influence the data transfers on that bus (local attack vector).
    skb->data is controlled by the attacker and has only been sanitized in
    the most trivial ways (CRC check), therefore we can consider the
    create_info struct and all of its members to tainted. 'create_info->pipe'
    with max value of 255 (uint8) is used to take an offset of the
    hdev->pipes array of 127 elements which can lead to OOB write.
    
    Cc: Samuel Ortiz <sameo@linux.intel.com>
    Cc: Allen Pais <allen.pais@oracle.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Suggested-by: Kevin Deus <kdeus@google.com>
    Signed-off-by: Suren Baghdasaryan <surenb@google.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18fef87e05d3569979bfce16ad7284259f60b52c
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Wed Sep 12 17:44:43 2018 +0200

    tls: clear key material from kernel memory when do_tls_setsockopt_conf fails
    
    [ Upstream commit c844eb46b7d43c2cf760169df5ae1d5b033af338 ]
    
    Fixes: 3c4d7559159b ("tls: kernel TLS support")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c0334299a7e085849c83bffe754626ba517d5ee
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Wed Sep 12 17:44:42 2018 +0200

    tls: zero the crypto information from tls_context before freeing
    
    [ Upstream commit 86029d10af18381814881d6cce2dd6872163b59f ]
    
    This contains key material in crypto_send_aes_gcm_128 and
    crypto_recv_aes_gcm_128.
    
    Introduce union tls_crypto_context, and replace the two identical
    unions directly embedded in struct tls_context with it. We can then
    use this union to clean up the memory in the new tls_ctx_free()
    function.
    
    Fixes: 3c4d7559159b ("tls: kernel TLS support")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 10cacaf13189711ce5c81222aaae3cd61a5ca848
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Wed Sep 12 17:44:41 2018 +0200

    tls: don't copy the key out of tls12_crypto_info_aes_gcm_128
    
    [ Upstream commit 7cba09c6d5bc73ebbd25a353742d9ddb7a713b95 ]
    
    There's no need to copy the key to an on-stack buffer before calling
    crypto_aead_setkey().
    
    Fixes: 3c4d7559159b ("tls: kernel TLS support")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee547ed7dee4c888c63bd136e73dfa7c96466064
Author: Davide Caratti <dcaratti@redhat.com>
Date:   Fri Sep 14 12:03:18 2018 +0200

    net/sched: act_sample: fix NULL dereference in the data path
    
    [ Upstream commit 34043d250f51368f214aed7f54c2dc29c819a8c7 ]
    
    Matteo reported the following splat, testing the datapath of TC 'sample':
    
     BUG: KASAN: null-ptr-deref in tcf_sample_act+0xc4/0x310
     Read of size 8 at addr 0000000000000000 by task nc/433
    
     CPU: 0 PID: 433 Comm: nc Not tainted 4.19.0-rc3-kvm #17
     Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS ?-20180531_142017-buildhw-08.phx2.fedoraproject.org-1.fc28 04/01/2014
     Call Trace:
      kasan_report.cold.6+0x6c/0x2fa
      tcf_sample_act+0xc4/0x310
      ? dev_hard_start_xmit+0x117/0x180
      tcf_action_exec+0xa3/0x160
      tcf_classify+0xdd/0x1d0
      htb_enqueue+0x18e/0x6b0
      ? deref_stack_reg+0x7a/0xb0
      ? htb_delete+0x4b0/0x4b0
      ? unwind_next_frame+0x819/0x8f0
      ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
      __dev_queue_xmit+0x722/0xca0
      ? unwind_get_return_address_ptr+0x50/0x50
      ? netdev_pick_tx+0xe0/0xe0
      ? save_stack+0x8c/0xb0
      ? kasan_kmalloc+0xbe/0xd0
      ? __kmalloc_track_caller+0xe4/0x1c0
      ? __kmalloc_reserve.isra.45+0x24/0x70
      ? __alloc_skb+0xdd/0x2e0
      ? sk_stream_alloc_skb+0x91/0x3b0
      ? tcp_sendmsg_locked+0x71b/0x15a0
      ? tcp_sendmsg+0x22/0x40
      ? __sys_sendto+0x1b0/0x250
      ? __x64_sys_sendto+0x6f/0x80
      ? do_syscall_64+0x5d/0x150
      ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
      ? __sys_sendto+0x1b0/0x250
      ? __x64_sys_sendto+0x6f/0x80
      ? do_syscall_64+0x5d/0x150
      ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
      ip_finish_output2+0x495/0x590
      ? ip_copy_metadata+0x2e0/0x2e0
      ? skb_gso_validate_network_len+0x6f/0x110
      ? ip_finish_output+0x174/0x280
      __tcp_transmit_skb+0xb17/0x12b0
      ? __tcp_select_window+0x380/0x380
      tcp_write_xmit+0x913/0x1de0
      ? __sk_mem_schedule+0x50/0x80
      tcp_sendmsg_locked+0x49d/0x15a0
      ? tcp_rcv_established+0x8da/0xa30
      ? tcp_set_state+0x220/0x220
      ? clear_user+0x1f/0x50
      ? iov_iter_zero+0x1ae/0x590
      ? __fget_light+0xa0/0xe0
      tcp_sendmsg+0x22/0x40
      __sys_sendto+0x1b0/0x250
      ? __ia32_sys_getpeername+0x40/0x40
      ? _copy_to_user+0x58/0x70
      ? poll_select_copy_remaining+0x176/0x200
      ? __pollwait+0x1c0/0x1c0
      ? ktime_get_ts64+0x11f/0x140
      ? kern_select+0x108/0x150
      ? core_sys_select+0x360/0x360
      ? vfs_read+0x127/0x150
      ? kernel_write+0x90/0x90
      __x64_sys_sendto+0x6f/0x80
      do_syscall_64+0x5d/0x150
      entry_SYSCALL_64_after_hwframe+0x44/0xa9
     RIP: 0033:0x7fefef2b129d
     Code: ff ff ff ff eb b6 0f 1f 80 00 00 00 00 48 8d 05 51 37 0c 00 41 89 ca 8b 00 85 c0 75 20 45 31 c9 45 31 c0 b8 2c 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 6b f3 c3 66 0f 1f 84 00 00 00 00 00 41 56 41
     RSP: 002b:00007fff2f5350c8 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
     RAX: ffffffffffffffda RBX: 000056118d60c120 RCX: 00007fefef2b129d
     RDX: 0000000000002000 RSI: 000056118d629320 RDI: 0000000000000003
     RBP: 000056118d530370 R08: 0000000000000000 R09: 0000000000000000
     R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000002000
     R13: 000056118d5c2a10 R14: 000056118d5c2a10 R15: 000056118d5303b8
    
    tcf_sample_act() tried to update its per-cpu stats, but tcf_sample_init()
    forgot to allocate them, because tcf_idr_create() was called with a wrong
    value of 'cpustats'. Setting it to true proved to fix the reported crash.
    
    Reported-by: Matteo Croce <mcroce@redhat.com>
    Fixes: 65a206c01e8e ("net/sched: Change act_api and act_xxx modules to use IDR")
    Fixes: 5c5670fae430 ("net/sched: Introduce sample tc action")
    Tested-by: Matteo Croce <mcroce@redhat.com>
    Signed-off-by: Davide Caratti <dcaratti@redhat.com>
    Acked-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b13f721a3409594ec91ec0d06eeef228175864a6
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Thu Sep 13 16:27:21 2018 +0200

    udp6: add missing checks on edumux packet processing
    
    [ Upstream commit eb63f2964dbe36f26deac77d3016791675821ded ]
    
    Currently the UDPv6 early demux rx code path lacks some mandatory
    checks, already implemented into the normal RX code path - namely
    the checksum conversion and no_check6_rx check.
    
    Similar to the previous commit, we move the common processing to
    an UDPv6 specific helper and call it from both edemux code path
    and normal code path. In respect to the UDPv4, we need to add an
    explicit check for non zero csum according to no_check6_rx value.
    
    Reported-by: Jianlin Shi <jishi@redhat.com>
    Suggested-by: Xin Long <lucien.xin@gmail.com>
    Fixes: c9f2c1ae123a ("udp6: fix socket leak on early demux")
    Fixes: 2abb7cdc0dc8 ("udp: Add support for doing checksum unnecessary conversion")
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff64a1a2ca3dd1785386250222e6dcabbadd975d
Author: Vasily Khoruzhick <vasilykh@arista.com>
Date:   Thu Sep 13 11:12:03 2018 -0700

    neighbour: confirm neigh entries when ARP packet is received
    
    [ Upstream commit f0e0d04413fcce9bc76388839099aee93cd0d33b ]
    
    Update 'confirmed' timestamp when ARP packet is received. It shouldn't
    affect locktime logic and anyway entry can be confirmed by any higher-layer
    protocol. Thus it makes sense to confirm it when ARP packet is received.
    
    Fixes: 77d7123342dc ("neighbour: update neigh timestamps iff update is effective")
    Signed-off-by: Vasily Khoruzhick <vasilykh@arista.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0f6f77f3b8f46b40da840a409a76bdb5c271e0a5
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Thu Sep 13 16:27:20 2018 +0200

    udp4: fix IP_CMSG_CHECKSUM for connected sockets
    
    [ Upstream commit 2b5a921740a55c00223a797d075b9c77c42cb171 ]
    
    commit 2abb7cdc0dc8 ("udp: Add support for doing checksum
    unnecessary conversion") left out the early demux path for
    connected sockets. As a result IP_CMSG_CHECKSUM gives wrong
    values for such socket when GRO is not enabled/available.
    
    This change addresses the issue by moving the csum conversion to a
    common helper and using such helper in both the default and the
    early demux rx path.
    
    Fixes: 2abb7cdc0dc8 ("udp: Add support for doing checksum unnecessary conversion")
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f5ec16ee02b4f453796d40ec086e6523877c907
Author: Bjørn Mork <bjorn@mork.no>
Date:   Mon Sep 17 22:00:24 2018 +0200

    qmi_wwan: set DTR for modems in forced USB2 mode
    
    [ Upstream commit 922005c7f50e7f4b2a6dbc182e9c575b4f92396b ]
    
    Recent firmware revisions have added the ability to force
    these modems to USB2 mode, hiding their SuperSpeed
    capabilities from the host.  The driver has been using the
    SuperSpeed capability, as shown by the bcdUSB field of the
    device descriptor, to detect the need to enable the DTR
    quirk.  This method fails when the modems are forced to
    USB2 mode by the modem firmware.
    
    Fix by unconditionally enabling the DTR quirk for the
    affected device IDs.
    
    Reported-by: Fred Veldini <fred.veldini@gmail.com>
    Reported-by: Deshu Wen <dwen@sierrawireless.com>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Reported-by: Fred Veldini <fred.veldini@gmail.com>
    Reported-by: Deshu Wen <dwen@sierrawireless.com>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3aa1f3a1113fc85ccb8e625055154f026c47396
Author: Guillaume Nault <g.nault@alphalink.fr>
Date:   Fri Sep 14 16:28:05 2018 +0200

    pppoe: fix reception of frames with no mac header
    
    [ Upstream commit 8540827ebac6b654ab2f69c8fbce9e4fbd6304a0 ]
    
    pppoe_rcv() needs to look back at the Ethernet header in order to
    lookup the PPPoE session. Therefore we need to ensure that the mac
    header is big enough to contain an Ethernet header. Otherwise
    eth_hdr(skb)->h_source might access invalid data.
    
    ==================================================================
    BUG: KMSAN: uninit-value in __get_item drivers/net/ppp/pppoe.c:172 [inline]
    BUG: KMSAN: uninit-value in get_item drivers/net/ppp/pppoe.c:236 [inline]
    BUG: KMSAN: uninit-value in pppoe_rcv+0xcef/0x10e0 drivers/net/ppp/pppoe.c:450
    CPU: 0 PID: 4543 Comm: syz-executor355 Not tainted 4.16.0+ #87
    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+0x185/0x1d0 lib/dump_stack.c:53
     kmsan_report+0x142/0x240 mm/kmsan/kmsan.c:1067
     __msan_warning_32+0x6c/0xb0 mm/kmsan/kmsan_instr.c:683
     __get_item drivers/net/ppp/pppoe.c:172 [inline]
     get_item drivers/net/ppp/pppoe.c:236 [inline]
     pppoe_rcv+0xcef/0x10e0 drivers/net/ppp/pppoe.c:450
     __netif_receive_skb_core+0x47df/0x4a90 net/core/dev.c:4562
     __netif_receive_skb net/core/dev.c:4627 [inline]
     netif_receive_skb_internal+0x49d/0x630 net/core/dev.c:4701
     netif_receive_skb+0x230/0x240 net/core/dev.c:4725
     tun_rx_batched drivers/net/tun.c:1555 [inline]
     tun_get_user+0x740f/0x7c60 drivers/net/tun.c:1962
     tun_chr_write_iter+0x1d4/0x330 drivers/net/tun.c:1990
     call_write_iter include/linux/fs.h:1782 [inline]
     new_sync_write fs/read_write.c:469 [inline]
     __vfs_write+0x7fb/0x9f0 fs/read_write.c:482
     vfs_write+0x463/0x8d0 fs/read_write.c:544
     SYSC_write+0x172/0x360 fs/read_write.c:589
     SyS_write+0x55/0x80 fs/read_write.c:581
     do_syscall_64+0x309/0x430 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x3d/0xa2
    RIP: 0033:0x4447c9
    RSP: 002b:00007fff64c8fc28 EFLAGS: 00000297 ORIG_RAX: 0000000000000001
    RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00000000004447c9
    RDX: 000000000000fd87 RSI: 0000000020000600 RDI: 0000000000000004
    RBP: 00000000006cf018 R08: 00007fff64c8fda8 R09: 00007fff00006bda
    R10: 0000000000005fe7 R11: 0000000000000297 R12: 00000000004020d0
    R13: 0000000000402160 R14: 0000000000000000 R15: 0000000000000000
    
    Uninit was created at:
     kmsan_save_stack_with_flags mm/kmsan/kmsan.c:278 [inline]
     kmsan_internal_poison_shadow+0xb8/0x1b0 mm/kmsan/kmsan.c:188
     kmsan_kmalloc+0x94/0x100 mm/kmsan/kmsan.c:314
     kmsan_slab_alloc+0x11/0x20 mm/kmsan/kmsan.c:321
     slab_post_alloc_hook mm/slab.h:445 [inline]
     slab_alloc_node mm/slub.c:2737 [inline]
     __kmalloc_node_track_caller+0xaed/0x11c0 mm/slub.c:4369
     __kmalloc_reserve net/core/skbuff.c:138 [inline]
     __alloc_skb+0x2cf/0x9f0 net/core/skbuff.c:206
     alloc_skb include/linux/skbuff.h:984 [inline]
     alloc_skb_with_frags+0x1d4/0xb20 net/core/skbuff.c:5234
     sock_alloc_send_pskb+0xb56/0x1190 net/core/sock.c:2085
     tun_alloc_skb drivers/net/tun.c:1532 [inline]
     tun_get_user+0x2242/0x7c60 drivers/net/tun.c:1829
     tun_chr_write_iter+0x1d4/0x330 drivers/net/tun.c:1990
     call_write_iter include/linux/fs.h:1782 [inline]
     new_sync_write fs/read_write.c:469 [inline]
     __vfs_write+0x7fb/0x9f0 fs/read_write.c:482
     vfs_write+0x463/0x8d0 fs/read_write.c:544
     SYSC_write+0x172/0x360 fs/read_write.c:589
     SyS_write+0x55/0x80 fs/read_write.c:581
     do_syscall_64+0x309/0x430 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x3d/0xa2
    ==================================================================
    
    Fixes: 224cf5ad14c0 ("ppp: Move the PPP drivers")
    Reported-by: syzbot+f5f6080811c849739212@syzkaller.appspotmail.com
    Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0f2c063abc8a9ce8e116ad4236686234c709e9f
Author: Colin Ian King <colin.king@canonical.com>
Date:   Fri Sep 14 17:39:53 2018 +0100

    net: hp100: fix always-true check for link up state
    
    [ Upstream commit a7f38002fb69b44f8fc622ecb838665d0b8666af ]
    
    The operation ~(p100_inb(VG_LAN_CFG_1) & HP100_LINK_UP) returns a value
    that is always non-zero and hence the wait for the link to drop always
    terminates prematurely.  Fix this by using a logical not operator instead
    of a bitwise complement.  This issue has been in the driver since
    pre-2.6.12-rc2.
    
    Detected by CoverityScan, CID#114157 ("Logical vs. bitwise operator")
    
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9951e17efd05b8ad49bbc0db2e6b483f95d94d86
Author: Willy Tarreau <w@1wt.eu>
Date:   Wed Sep 12 07:36:35 2018 +0200

    net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
    
    [ Upstream commit 9824dfae5741275473a23a7ed5756c7b6efacc9d ]
    
    Fields ->dev and ->next of struct ipddp_route may be copied to
    userspace on the SIOCFINDIPDDPRT ioctl. This is only accessible
    to CAP_NET_ADMIN though. Let's manually copy the relevant fields
    instead of using memcpy().
    
    BugLink: http://blog.infosectcbr.com.au/2018/09/linux-kernel-infoleaks.html
    Cc: Jann Horn <jannh@google.com>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bba90d3686fd0e2de7b058fbbf2d314527a20d49
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 14 12:02:31 2018 -0700

    ipv6: fix possible use-after-free in ip6_xmit()
    
    [ Upstream commit bbd6528d28c1b8e80832b3b018ec402b6f5c3215 ]
    
    In the unlikely case ip6_xmit() has to call skb_realloc_headroom(),
    we need to call skb_set_owner_w() before consuming original skb,
    otherwise we risk a use-after-free.
    
    Bring IPv6 in line with what we do in IPv4 to fix this.
    
    Fixes: 1da177e4c3f41 ("Linux-2.6.12-rc2")
    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 13a47054f0b2f00c0f916387a1d4cf5402848add
Author: Toke Høiland-Jørgensen <toke@toke.dk>
Date:   Thu Sep 13 16:43:07 2018 +0200

    gso_segment: Reset skb->mac_len after modifying network header
    
    [ Upstream commit c56cae23c6b167acc68043c683c4573b80cbcc2c ]
    
    When splitting a GSO segment that consists of encapsulated packets, the
    skb->mac_len of the segments can end up being set wrong, causing packet
    drops in particular when using act_mirred and ifb interfaces in
    combination with a qdisc that splits GSO packets.
    
    This happens because at the time skb_segment() is called, network_header
    will point to the inner header, throwing off the calculation in
    skb_reset_mac_len(). The network_header is subsequently adjust by the
    outer IP gso_segment handlers, but they don't set the mac_len.
    
    Fix this by adding skb_reset_mac_len() calls to both the IPv4 and IPv6
    gso_segment handlers, after they modify the network_header.
    
    Many thanks to Eric Dumazet for his help in identifying the cause of
    the bug.
    
    Acked-by: Dave Taht <dave.taht@gmail.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>