commit ba6984fc0162f24a510ebc34e881b546b69c553b
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Sep 5 09:16:24 2018 +0200

    Linux 3.18.121

commit 2f294385874e8e152f357531aa177a19560c8a64
Author: Scott Bauer <scott.bauer@intel.com>
Date:   Thu Apr 26 11:51:08 2018 -0600

    cdrom: Fix info leak/OOB read in cdrom_ioctl_drive_status
    
    commit 8f3fafc9c2f0ece10832c25f7ffcb07c97a32ad4 upstream.
    
    Like d88b6d04: "cdrom: information leak in cdrom_ioctl_media_changed()"
    
    There is another cast from unsigned long to int which causes
    a bounds check to fail with specially crafted input. The value is
    then used as an index in the slot array in cdrom_slot_status().
    
    Signed-off-by: Scott Bauer <scott.bauer@intel.com>
    Signed-off-by: Scott Bauer <sbauer@plzdonthack.me>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86c0a645ffd20ee8e6063f1e9dfba07d35fded5e
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date:   Thu Aug 2 10:51:41 2018 -0700

    scsi: core: Avoid that SCSI device removal through sysfs triggers a deadlock
    
    commit 0ee223b2e1f67cb2de9c0e3247c510d846e74d63 upstream.
    
    A long time ago the unfortunate decision was taken to add a self-deletion
    attribute to the sysfs SCSI device directory. That decision was unfortunate
    because self-deletion is really tricky. We can't drop that attribute
    because widely used user space software depends on it, namely the
    rescan-scsi-bus.sh script. Hence this patch that avoids that writing into
    that attribute triggers a deadlock. See also commit 7973cbd9fbd9 ("[PATCH]
    add sysfs attributes to scan and delete scsi_devices").
    
    This patch avoids that self-removal triggers the following deadlock:
    
    ======================================================
    WARNING: possible circular locking dependency detected
    4.18.0-rc2-dbg+ #5 Not tainted
    ------------------------------------------------------
    modprobe/6539 is trying to acquire lock:
    000000008323c4cd (kn->count#202){++++}, at: kernfs_remove_by_name_ns+0x45/0x90
    
    but task is already holding lock:
    00000000a6ec2c69 (&shost->scan_mutex){+.+.}, at: scsi_remove_host+0x21/0x150 [scsi_mod]
    
    which lock already depends on the new lock.
    
    the existing dependency chain (in reverse order) is:
    
    -> #1 (&shost->scan_mutex){+.+.}:
           __mutex_lock+0xfe/0xc70
           mutex_lock_nested+0x1b/0x20
           scsi_remove_device+0x26/0x40 [scsi_mod]
           sdev_store_delete+0x27/0x30 [scsi_mod]
           dev_attr_store+0x3e/0x50
           sysfs_kf_write+0x87/0xa0
           kernfs_fop_write+0x190/0x230
           __vfs_write+0xd2/0x3b0
           vfs_write+0x101/0x270
           ksys_write+0xab/0x120
           __x64_sys_write+0x43/0x50
           do_syscall_64+0x77/0x230
           entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    -> #0 (kn->count#202){++++}:
           lock_acquire+0xd2/0x260
           __kernfs_remove+0x424/0x4a0
           kernfs_remove_by_name_ns+0x45/0x90
           remove_files.isra.1+0x3a/0x90
           sysfs_remove_group+0x5c/0xc0
           sysfs_remove_groups+0x39/0x60
           device_remove_attrs+0x82/0xb0
           device_del+0x251/0x580
           __scsi_remove_device+0x19f/0x1d0 [scsi_mod]
           scsi_forget_host+0x37/0xb0 [scsi_mod]
           scsi_remove_host+0x9b/0x150 [scsi_mod]
           sdebug_driver_remove+0x4b/0x150 [scsi_debug]
           device_release_driver_internal+0x241/0x360
           device_release_driver+0x12/0x20
           bus_remove_device+0x1bc/0x290
           device_del+0x259/0x580
           device_unregister+0x1a/0x70
           sdebug_remove_adapter+0x8b/0xf0 [scsi_debug]
           scsi_debug_exit+0x76/0xe8 [scsi_debug]
           __x64_sys_delete_module+0x1c1/0x280
           do_syscall_64+0x77/0x230
           entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    other info that might help us debug this:
    
     Possible unsafe locking scenario:
    
           CPU0                    CPU1
           ----                    ----
      lock(&shost->scan_mutex);
                                   lock(kn->count#202);
                                   lock(&shost->scan_mutex);
      lock(kn->count#202);
    
     *** DEADLOCK ***
    
    2 locks held by modprobe/6539:
     #0: 00000000efaf9298 (&dev->mutex){....}, at: device_release_driver_internal+0x68/0x360
     #1: 00000000a6ec2c69 (&shost->scan_mutex){+.+.}, at: scsi_remove_host+0x21/0x150 [scsi_mod]
    
    stack backtrace:
    CPU: 10 PID: 6539 Comm: modprobe Not tainted 4.18.0-rc2-dbg+ #5
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014
    Call Trace:
     dump_stack+0xa4/0xf5
     print_circular_bug.isra.34+0x213/0x221
     __lock_acquire+0x1a7e/0x1b50
     lock_acquire+0xd2/0x260
     __kernfs_remove+0x424/0x4a0
     kernfs_remove_by_name_ns+0x45/0x90
     remove_files.isra.1+0x3a/0x90
     sysfs_remove_group+0x5c/0xc0
     sysfs_remove_groups+0x39/0x60
     device_remove_attrs+0x82/0xb0
     device_del+0x251/0x580
     __scsi_remove_device+0x19f/0x1d0 [scsi_mod]
     scsi_forget_host+0x37/0xb0 [scsi_mod]
     scsi_remove_host+0x9b/0x150 [scsi_mod]
     sdebug_driver_remove+0x4b/0x150 [scsi_debug]
     device_release_driver_internal+0x241/0x360
     device_release_driver+0x12/0x20
     bus_remove_device+0x1bc/0x290
     device_del+0x259/0x580
     device_unregister+0x1a/0x70
     sdebug_remove_adapter+0x8b/0xf0 [scsi_debug]
     scsi_debug_exit+0x76/0xe8 [scsi_debug]
     __x64_sys_delete_module+0x1c1/0x280
     do_syscall_64+0x77/0x230
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    See also https://www.mail-archive.com/linux-scsi@vger.kernel.org/msg54525.html.
    
    Fixes: ac0ece9174ac ("scsi: use device_remove_file_self() instead of device_schedule_callback()")
    Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Acked-by: Tejun Heo <tj@kernel.org>
    Cc: Johannes Thumshirn <jthumshirn@suse.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit a6abc93760dd07fcd29760b70e6e7520f22cb288
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date:   Thu Aug 2 10:51:40 2018 -0700

    scsi: sysfs: Introduce sysfs_{un,}break_active_protection()
    
    commit 2afc9166f79b8f6da5f347f48515215ceee4ae37 upstream.
    
    Introduce these two functions and export them such that the next patch
    can add calls to these functions from the SCSI core.
    
    Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d7acd2e136511d8d7e5a52e9fa8489502263962
Author: Maciej W. Rozycki <macro@mips.com>
Date:   Tue May 15 23:33:26 2018 +0100

    MIPS: Correct the 64-bit DSP accumulator register size
    
    commit f5958b4cf4fc38ed4583ab83fb7c4cd1ab05f47b upstream.
    
    Use the `unsigned long' rather than `__u32' type for DSP accumulator
    registers, like with the regular MIPS multiply/divide accumulator and
    general-purpose registers, as all are 64-bit in 64-bit implementations
    and using a 32-bit data type leads to contents truncation on context
    saving.
    
    Update `arch_ptrace' and `compat_arch_ptrace' accordingly, removing
    casts that are similarly not used with multiply/divide accumulator or
    general-purpose register accesses.
    
    Signed-off-by: Maciej W. Rozycki <macro@mips.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Fixes: e50c0a8fa60d ("Support the MIPS32 / MIPS64 DSP ASE.")
    Patchwork: https://patchwork.linux-mips.org/patch/19329/
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-fsdevel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org # 2.6.15+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ab91fb4243859720792b7d3436dcd262ccc187a
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Sat Apr 28 21:35:01 2018 +0900

    kprobes: Make list and blacklist root user read only
    
    commit f2a3ab36077222437b4826fc76111caa14562b7c upstream.
    
    Since the blacklist and list files on debugfs indicates
    a sensitive address information to reader, it should be
    restricted to the root user.
    
    Suggested-by: Thomas Richter <tmricht@linux.ibm.com>
    Suggested-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: David Howells <dhowells@redhat.com>
    Cc: David S . Miller <davem@davemloft.net>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Jon Medhurst <tixy@linaro.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tobin C . Harding <me@tobin.cc>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: acme@kernel.org
    Cc: akpm@linux-foundation.org
    Cc: brueckner@linux.vnet.ibm.com
    Cc: linux-arch@vger.kernel.org
    Cc: rostedt@goodmis.org
    Cc: schwidefsky@de.ibm.com
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/lkml/152491890171.9916.5183693615601334087.stgit@devbox
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be4f8c44a1c7045a313121ad4549b000c861efab
Author: Sebastian Ott <sebott@linux.ibm.com>
Date:   Mon Aug 13 11:26:46 2018 +0200

    s390/pci: fix out of bounds access during irq setup
    
    commit 866f3576a72b2233a76dffb80290f8086dc49e17 upstream.
    
    During interrupt setup we allocate interrupt vectors, walk the list of msi
    descriptors, and fill in the message data. Requesting more interrupts than
    supported on s390 can lead to an out of bounds access.
    
    When we restrict the number of interrupts we should also stop walking the
    msi list after all supported interrupts are handled.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc826c93cd8015370182b9362dea84250399a9eb
Author: Julian Wiedmann <jwi@linux.ibm.com>
Date:   Wed May 16 09:37:25 2018 +0200

    s390/qdio: reset old sbal_state flags
    
    commit 64e03ff72623b8c2ea89ca3cb660094e019ed4ae upstream.
    
    When allocating a new AOB fails, handle_outbound() is still capable of
    transmitting the selected buffer (just without async completion).
    
    But if a previous transfer on this queue slot used async completion, its
    sbal_state flags field is still set to QDIO_OUTBUF_STATE_FLAG_PENDING.
    So when the upper layer driver sees this stale flag, it expects an async
    completion that never happens.
    
    Fix this by unconditionally clearing the flags field.
    
    Fixes: 104ea556ee7f ("qdio: support asynchronous delivery of storage blocks")
    Cc: <stable@vger.kernel.org> #v3.2+
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0fd19868d76345529583873235f7533cdc7623d7
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Jul 13 17:55:15 2018 +0300

    pinctrl: freescale: off by one in imx1_pinconf_group_dbg_show()
    
    commit 19da44cd33a3a6ff7c97fff0189999ff15b241e4 upstream.
    
    The info->groups[] array is allocated in imx1_pinctrl_parse_dt().  It
    has info->ngroups elements.  Thus the > here should be >= to prevent
    reading one element beyond the end of the array.
    
    Cc: stable@vger.kernel.org
    Fixes: 30612cd90005 ("pinctrl: imx1 core driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Uwe Kleine-König <u.kleine-könig@pengutronix.de>
    Acked-by: Dong Aisheng <Aisheng.dong@nxp.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3aeaed1e802ece9347b57ce688c754320ae4ef72
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Thu Jul 26 15:49:10 2018 -0500

    ASoC: sirf: Fix potential NULL pointer dereference
    
    commit ae1c696a480c67c45fb23b35162183f72c6be0e1 upstream.
    
    There is a potential execution path in which function
    platform_get_resource() returns NULL. If this happens,
    we will end up having a NULL pointer dereference.
    
    Fix this by replacing devm_ioremap with devm_ioremap_resource,
    which has the NULL check and the memory region request.
    
    This code was detected with the help of Coccinelle.
    
    Cc: stable@vger.kernel.org
    Fixes: 2bd8d1d5cf89 ("ASoC: sirf: Add audio usp interface driver")
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa6ba5e2fcc17c7125e4df835ec65d55603b8f95
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Sun Jun 3 16:40:57 2018 +0200

    udl-kms: fix crash due to uninitialized memory
    
    commit 09a00abe3a9941c2715ca83eb88172cd2f54d8fd upstream.
    
    We must use kzalloc when allocating the fb_deferred_io structure.
    Otherwise, the field first_io is undefined and it causes a crash.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 953d8afde43fb6e7ec59e6e0628229e9dff5af1c
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Sun Jun 3 16:40:56 2018 +0200

    udl-kms: handle allocation failure
    
    commit 542bb9788a1f485eb1a2229178f665d8ea166156 upstream.
    
    Allocations larger than PAGE_ALLOC_COSTLY_ORDER are unreliable and they
    may fail anytime. This patch fixes the udl kms driver so that when a large
    alloactions fails, it tries to do multiple smaller allocations.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f02d4bb5a8a9ba242c31a7f44cf9958882599ba
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Sun Jun 3 16:40:55 2018 +0200

    udl-kms: change down_interruptible to down
    
    commit 8456b99c16d193c4c3b7df305cf431e027f0189c upstream.
    
    If we leave urbs around, it causes not only leak, but also memory
    corruption. This patch fixes the function udl_free_urb_list, so that it
    always waits for all urbs that are in progress.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0dd67c762f650aae847260ddda8ffcaf15c477d
Author: Kirill Tkhai <ktkhai@virtuozzo.com>
Date:   Thu Jul 19 15:49:39 2018 +0300

    fuse: Add missed unlock_page() to fuse_readpages_fill()
    
    commit 109728ccc5933151c68d1106e4065478a487a323 upstream.
    
    The above error path returns with page unlocked, so this place seems also
    to behave the same.
    
    Fixes: f8dbdf81821b ("fuse: rework fuse_readpages()")
    Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b39c90f1c2bc7bca594abd10715a4ffe2b16b2c
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Tue Jul 17 19:00:33 2018 +0300

    fuse: Don't access pipe->buffers without pipe_lock()
    
    commit a2477b0e67c52f4364a47c3ad70902bc2a61bd4c upstream.
    
    fuse_dev_splice_write() reads pipe->buffers to determine the size of
    'bufs' array before taking the pipe_lock(). This is not safe as
    another thread might change the 'pipe->buffers' between the allocation
    and taking the pipe_lock(). So we end up with too small 'bufs' array.
    
    Move the bufs allocations inside pipe_lock()/pipe_unlock() to fix this.
    
    Fixes: dd3bb14f44a6 ("fuse: support splice() writing to fuse device")
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: <stable@vger.kernel.org> # v2.6.35
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 91196d94bdd3f2b434f9ef2a07ddfb551faa32e1
Author: Rian Hunter <rian@alum.mit.edu>
Date:   Sun Aug 19 16:08:53 2018 -0700

    x86/process: Re-export start_thread()
    
    commit dc76803e57cc86589c4efcb5362918f9b0c0436f upstream.
    
    The consolidation of the start_thread() functions removed the export
    unintentionally. This breaks binfmt handlers built as a module.
    
    Add it back.
    
    Fixes: e634d8fc792c ("x86-64: merge the standard and compat start_thread() functions")
    Signed-off-by: Rian Hunter <rian@alum.mit.edu>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bpetkov@suse.de>
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
    Cc: Joerg Roedel <jroedel@suse.de>
    Cc: Dmitry Safonov <dima@arista.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180819230854.7275-1-rian@alum.mit.edu
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a030af4fee1ae2624325a1e7e38b451ebf151a86
Author: Punit Agrawal <punit.agrawal@arm.com>
Date:   Mon Aug 13 11:43:50 2018 +0100

    KVM: arm/arm64: Skip updating PMD entry if no change
    
    commit 86658b819cd0a9aa584cd84453ed268a6f013770 upstream.
    
    Contention on updating a PMD entry by a large number of vcpus can lead
    to duplicate work when handling stage 2 page faults. As the page table
    update follows the break-before-make requirement of the architecture,
    it can lead to repeated refaults due to clearing the entry and
    flushing the tlbs.
    
    This problem is more likely when -
    
    * there are large number of vcpus
    * the mapping is large block mapping
    
    such as when using PMD hugepages (512MB) with 64k pages.
    
    Fix this by skipping the page table update if there is no change in
    the entry being updated.
    
    Cc: stable@vger.kernel.org
    Fixes: ad361f093c1e ("KVM: ARM: Support hugetlbfs backed huge pages")
    Reviewed-by: Suzuki Poulose <suzuki.poulose@arm.com>
    Acked-by: Christoffer Dall <christoffer.dall@arm.com>
    Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 107c387a938558013533d7d82e425db67234f21c
Author: Punit Agrawal <punit.agrawal@arm.com>
Date:   Mon Aug 13 11:43:51 2018 +0100

    KVM: arm/arm64: Skip updating PTE entry if no change
    
    commit 976d34e2dab10ece5ea8fe7090b7692913f89084 upstream.
    
    When there is contention on faulting in a particular page table entry
    at stage 2, the break-before-make requirement of the architecture can
    lead to additional refaulting due to TLB invalidation.
    
    Avoid this by skipping a page table update if the new value of the PTE
    matches the previous value.
    
    Cc: stable@vger.kernel.org
    Fixes: d5d8184d35c9 ("KVM: ARM: Memory virtualization setup")
    Reviewed-by: Suzuki Poulose <suzuki.poulose@arm.com>
    Acked-by: Christoffer Dall <christoffer.dall@arm.com>
    Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 872f590e7a1883942c1ac6c78aa4a2dd01427b3a
Author: Greg Hackmann <ghackmann@android.com>
Date:   Wed Aug 15 12:51:21 2018 -0700

    arm64: mm: check for upper PAGE_SHIFT bits in pfn_valid()
    
    commit 5ad356eabc47d26a92140a0c4b20eba471c10de3 upstream.
    
    ARM64's pfn_valid() shifts away the upper PAGE_SHIFT bits of the input
    before seeing if the PFN is valid.  This leads to false positives when
    some of the upper bits are set, but the lower bits match a valid PFN.
    
    For example, the following userspace code looks up a bogus entry in
    /proc/kpageflags:
    
        int pagemap = open("/proc/self/pagemap", O_RDONLY);
        int pageflags = open("/proc/kpageflags", O_RDONLY);
        uint64_t pfn, val;
    
        lseek64(pagemap, [...], SEEK_SET);
        read(pagemap, &pfn, sizeof(pfn));
        if (pfn & (1UL << 63)) {        /* valid PFN */
            pfn &= ((1UL << 55) - 1);   /* clear flag bits */
            pfn |= (1UL << 55);
            lseek64(pageflags, pfn * sizeof(uint64_t), SEEK_SET);
            read(pageflags, &val, sizeof(val));
        }
    
    On ARM64 this causes the userspace process to crash with SIGSEGV rather
    than reading (1 << KPF_NOPAGE).  kpageflags_read() treats the offset as
    valid, and stable_page_flags() will try to access an address between the
    user and kernel address ranges.
    
    Fixes: c1cc1552616d ("arm64: MMU initialisation")
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Hackmann <ghackmann@google.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f9e5416abb6e0dd67761c846440148307002c85
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Sun Jul 29 17:13:42 2018 -0400

    ext4: reset error code in ext4_find_entry in fallback
    
    commit f39b3f45dbcb0343822cce31ea7636ad66e60bc2 upstream.
    
    When ext4_find_entry() falls back to "searching the old fashioned
    way" due to a corrupt dx dir, it needs to reset the error code
    to NULL so that the nonstandard ERR_BAD_DX_DIR code isn't returned
    to userspace.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=199947
    
    Reported-by: Anatoly Trosinenko <anatoly.trosinenko@yandex.com>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Signed-off-by: Eric Sandeen <sandeen@redhat.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 ef2d2e24f2123445a4bef1f604499b0bf80057c8
Author: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
Date:   Mon Jul 16 10:38:57 2018 +0200

    s390/kvm: fix deadlock when killed by oom
    
    commit 306d6c49ac9ded11114cb53b0925da52f2c2ada1 upstream.
    
    When the oom killer kills a userspace process in the page fault handler
    while in guest context, the fault handler fails to release the mm_sem
    if the FAULT_FLAG_RETRY_NOWAIT option is set. This leads to a deadlock
    when tearing down the mm when the process terminates. This bug can only
    happen when pfault is enabled, so only KVM clients are affected.
    
    The problem arises in the rare cases in which handle_mm_fault does not
    release the mm_sem. This patch fixes the issue by manually releasing
    the mm_sem when needed.
    
    Fixes: 24eb3a824c4f3 ("KVM: s390: Add FAULT_FLAG_RETRY_NOWAIT for guest fault")
    Cc: <stable@vger.kernel.org> # 3.15+
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e46b7744059f62258fe07574e22070371b09071
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Thu Jul 19 10:49:51 2018 -0400

    btrfs: don't leak ret from do_chunk_alloc
    
    commit 4559b0a71749c442d34f7cfb9e72c9e58db83948 upstream.
    
    If we're trying to make a data reservation and we have to allocate a
    data chunk we could leak ret == 1, as do_chunk_alloc() will return 1 if
    it allocated a chunk.  Since the end of the function is the success path
    just return 0.
    
    CC: stable@vger.kernel.org # 4.4+
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Reviewed-by: Nikolay Borisov <nborisov@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c41a07aeead2a0808b245f36ecc8db9af7cd6a8
Author: jie@chenjie6@huwei.com <jie@chenjie6@huwei.com>
Date:   Fri Aug 10 17:23:06 2018 -0700

    mm/memory.c: check return value of ioremap_prot
    
    [ Upstream commit 24eee1e4c47977bdfb71d6f15f6011e7b6188d04 ]
    
    ioremap_prot() can return NULL which could lead to an oops.
    
    Link: http://lkml.kernel.org/r/1533195441-58594-1-git-send-email-chenjie6@huawei.com
    Signed-off-by: chen jie <chenjie6@huawei.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Li Zefan <lizefan@huawei.com>
    Cc: chenjie <chenjie6@huawei.com>
    Cc: Yang Shi <shy828301@gmail.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3ab0500e950d8cf088011f3ec919fcdbf7679cc
Author: Jim Gill <jgill@vmware.com>
Date:   Thu Aug 2 14:13:30 2018 -0700

    scsi: vmw_pvscsi: Return DID_RESET for status SAM_STAT_COMMAND_TERMINATED
    
    [ Upstream commit e95153b64d03c2b6e8d62e51bdcc33fcad6e0856 ]
    
    Commands that are reset are returned with status
    SAM_STAT_COMMAND_TERMINATED. PVSCSI currently returns DID_OK |
    SAM_STAT_COMMAND_TERMINATED which fails the command. Instead, set hostbyte
    to DID_RESET to allow upper layers to retry.
    
    Tested by copying a large file between two pvscsi disks on same adapter
    while performing a bus reset at 1-second intervals. Before fix, commands
    sometimes fail with DID_OK. After fix, commands observed to fail with
    DID_RESET.
    
    Signed-off-by: Jim Gill <jgill@vmware.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea0f6042693fa876f62d1597de94c65f4cbab2aa
Author: Johannes Thumshirn <jthumshirn@suse.de>
Date:   Tue Jul 31 15:46:02 2018 +0200

    scsi: fcoe: drop frames in ELS LOGO error path
    
    [ Upstream commit 63d0e3dffda311e77b9a8c500d59084e960a824a ]
    
    Drop the frames in the ELS LOGO error path instead of just returning an
    error.
    
    This fixes the following kmemleak report:
    unreferenced object 0xffff880064cb1000 (size 424):
      comm "kworker/0:2", pid 24, jiffies 4294904293 (age 68.504s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<(____ptrval____)>] _fc_frame_alloc+0x2c/0x180 [libfc]
        [<(____ptrval____)>] fc_lport_enter_logo+0x106/0x360 [libfc]
        [<(____ptrval____)>] fc_fabric_logoff+0x8c/0xc0 [libfc]
        [<(____ptrval____)>] fcoe_if_destroy+0x79/0x3b0 [fcoe]
        [<(____ptrval____)>] fcoe_destroy_work+0xd2/0x170 [fcoe]
        [<(____ptrval____)>] process_one_work+0x7ff/0x1420
        [<(____ptrval____)>] worker_thread+0x87/0xef0
        [<(____ptrval____)>] kthread+0x2db/0x390
        [<(____ptrval____)>] ret_from_fork+0x35/0x40
        [<(____ptrval____)>] 0xffffffffffffffff
    
    which can be triggered by issuing
    echo eth0 > /sys/bus/fcoe/ctlr_destroy
    
    Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ae3f84f252bf40425e2fcba1156dde245810b1c
Author: Colin Ian King <colin.king@canonical.com>
Date:   Wed Aug 1 18:22:41 2018 +0100

    drivers: net: lmc: fix case value for target abort error
    
    [ Upstream commit afb41bb039656f0cecb54eeb8b2e2088201295f5 ]
    
    Current value for a target abort error is 0x010, however, this value
    should in fact be 0x002.  As it stands, the range of error is 0..7 so
    it is currently never being detected.  This bug has been in the driver
    since the early 2.6.12 days (or before).
    
    Detected by CoverityScan, CID#744290 ("Logically dead code")
    
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0171efb2288f23ddec8389505f9243e828c0a516
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Thu Jul 26 20:16:35 2018 -0700

    arc: fix type warnings in arc/mm/cache.c
    
    [ Upstream commit ec837d620c750c0d4996a907c8c4f7febe1bbeee ]
    
    Fix type warnings in arch/arc/mm/cache.c.
    
    ../arch/arc/mm/cache.c: In function 'flush_anon_page':
    ../arch/arc/mm/cache.c:1062:55: warning: passing argument 2 of '__flush_dcache_page' makes integer from pointer without a cast [-Wint-conversion]
      __flush_dcache_page((phys_addr_t)page_address(page), page_address(page));
                                                           ^~~~~~~~~~~~~~~~~~
    ../arch/arc/mm/cache.c:1013:59: note: expected 'long unsigned int' but argument is of type 'void *'
     void __flush_dcache_page(phys_addr_t paddr, unsigned long vaddr)
                                                 ~~~~~~~~~~~~~~^~~~~
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Vineet Gupta <vgupta@synopsys.com>
    Cc: linux-snps-arc@lists.infradead.org
    Cc: Elad Kanfi <eladkan@mellanox.com>
    Cc: Leon Romanovsky <leonro@mellanox.com>
    Cc: Ofer Levi <oferle@mellanox.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04b68e45e601e86571eb6a441f4bde0735649526
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Thu Jul 26 20:16:35 2018 -0700

    arc: fix build errors in arc/include/asm/delay.h
    
    [ Upstream commit 2423665ec53f2a29191b35382075e9834288a975 ]
    
    Fix build errors in arch/arc/'s delay.h:
    - add "extern unsigned long loops_per_jiffy;"
    - add <asm-generic/types.h> for "u64"
    
    In file included from ../drivers/infiniband/hw/cxgb3/cxio_hal.c:32:
    ../arch/arc/include/asm/delay.h: In function '__udelay':
    ../arch/arc/include/asm/delay.h:61:12: error: 'u64' undeclared (first use in this function)
      loops = ((u64) usecs * 4295 * HZ * loops_per_jiffy) >> 32;
                ^~~
    
    In file included from ../drivers/infiniband/hw/cxgb3/cxio_hal.c:32:
    ../arch/arc/include/asm/delay.h: In function '__udelay':
    ../arch/arc/include/asm/delay.h:63:37: error: 'loops_per_jiffy' undeclared (first use in this function)
      loops = ((u64) usecs * 4295 * HZ * loops_per_jiffy) >> 32;
                                         ^~~~~~~~~~~~~~~
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Vineet Gupta <vgupta@synopsys.com>
    Cc: linux-snps-arc@lists.infradead.org
    Cc: Elad Kanfi <eladkan@mellanox.com>
    Cc: Leon Romanovsky <leonro@mellanox.com>
    Cc: Ofer Levi <oferle@mellanox.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5b4032baa097fd1d4ca69dba849d7717becdc60
Author: Govindarajulu Varadarajan <gvaradar@cisco.com>
Date:   Fri Jul 27 11:19:29 2018 -0700

    enic: handle mtu change for vf properly
    
    [ Upstream commit ab123fe071c9aa9680ecd62eb080eb26cff4892c ]
    
    When driver gets notification for mtu change, driver does not handle it for
    all RQs. It handles only RQ[0].
    
    Fix is to use enic_change_mtu() interface to change mtu for vf.
    
    Signed-off-by: Govindarajulu Varadarajan <gvaradar@cisco.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af47ed842dd6fec5f1255077afea55e1c6e8d624
Author: Rafał Miłecki <rafal@milecki.pl>
Date:   Fri Jul 27 13:13:39 2018 +0200

    Revert "MIPS: BCM47XX: Enable 74K Core ExternalSync for PCIe erratum"
    
    [ Upstream commit d5ea019f8a381f88545bb26993b62ec24a2796b7 ]
    
    This reverts commit 2a027b47dba6 ("MIPS: BCM47XX: Enable 74K Core
    ExternalSync for PCIe erratum").
    
    Enabling ExternalSync caused a regression for BCM4718A1 (used e.g. in
    Netgear E3000 and ASUS RT-N16): it simply hangs during PCIe
    initialization. It's likely that BCM4717A1 is also affected.
    
    I didn't notice that earlier as the only BCM47XX devices with PCIe I
    own are:
    1) BCM4706 with 2 x 14e4:4331
    2) BCM4706 with 14e4:4360 and 14e4:4331
    it appears that BCM4706 is unaffected.
    
    While BCM5300X-ES300-RDS.pdf seems to document that erratum and its
    workarounds (according to quotes provided by Tokunori) it seems not even
    Broadcom follows them.
    
    According to the provided info Broadcom should define CONF7_ES in their
    SDK's mipsinc.h and implement workaround in the si_mips_init(). Checking
    both didn't reveal such code. It *could* mean Broadcom also had some
    problems with the given workaround.
    
    Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Reported-by: Michael Marley <michael@michaelmarley.com>
    Patchwork: https://patchwork.linux-mips.org/patch/20032/
    URL: https://bugs.openwrt.org/index.php?do=details&task_id=1688
    Cc: Tokunori Ikegami <ikegami@allied-telesis.co.jp>
    Cc: Hauke Mehrtens <hauke@hauke-m.de>
    Cc: Chris Packham <chris.packham@alliedtelesis.co.nz>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 417ea4338f930e9fc51280196e3cf08bd7cd1ae6
Author: Calvin Walton <calvin.walton@kepstin.ca>
Date:   Fri Jul 27 07:50:53 2018 -0400

    tools/power turbostat: Read extended processor family from CPUID
    
    [ Upstream commit 5aa3d1a20a233d4a5f1ec3d62da3f19d9afea682 ]
    
    This fixes the reported family on modern AMD processors (e.g. Ryzen,
    which is family 0x17). Previously these processors all showed up as
    family 0xf.
    
    See the document
    https://support.amd.com/TechDocs/56255_OSRR.pdf
    section CPUID_Fn00000001_EAX for how to calculate the family
    from the BaseFamily and ExtFamily values.
    
    This matches the code in arch/x86/lib/cpu.c
    
    Signed-off-by: Calvin Walton <calvin.walton@kepstin.ca>
    Signed-off-by: Len Brown <len.brown@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33a11da050d9257e5cd9af8ae543aad2627937ec
Author: Li Wang <liwang@redhat.com>
Date:   Thu Jul 26 16:37:42 2018 -0700

    zswap: re-check zswap_is_full() after do zswap_shrink()
    
    [ Upstream commit 16e536ef47f567289a5699abee9ff7bb304bc12d ]
    
    /sys/../zswap/stored_pages keeps rising in a zswap test with
    "zswap.max_pool_percent=0" parameter.  But it should not compress or
    store pages any more since there is no space in the compressed pool.
    
    Reproduce steps:
      1. Boot kernel with "zswap.enabled=1"
      2. Set the max_pool_percent to 0
          # echo 0 > /sys/module/zswap/parameters/max_pool_percent
      3. Do memory stress test to see if some pages have been compressed
          # stress --vm 1 --vm-bytes $mem_available"M" --timeout 60s
      4. Watching the 'stored_pages' number increasing or not
    
    The root cause is:
    
      When zswap_max_pool_percent is set to 0 via kernel parameter,
      zswap_is_full() will always return true due to zswap_shrink().  But if
      the shinking is able to reclain a page successfully the code then
      proceeds to compressing/storing another page, so the value of
      stored_pages will keep changing.
    
    To solve the issue, this patch adds a zswap_is_full() check again after
      zswap_shrink() to make sure it's now under the max_pool_percent, and to
      not compress/store if we reached the limit.
    
    Link: http://lkml.kernel.org/r/20180530103936.17812-1-liwang@redhat.com
    Signed-off-by: Li Wang <liwang@redhat.com>
    Acked-by: Dan Streetman <ddstreet@ieee.org>
    Cc: Seth Jennings <sjenning@redhat.com>
    Cc: Huang Ying <huang.ying.caritas@gmail.com>
    Cc: Yu Zhao <yuzhao@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fdb2cd0ff6baa3fbe764eb02f51e52e71a19c420
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Sat Jul 14 01:28:44 2018 +0900

    selftests/ftrace: Add snapshot and tracing_on test case
    
    [ Upstream commit 82f4f3e69c5c29bce940dd87a2c0f16c51d48d17 ]
    
    Add a testcase for checking snapshot and tracing_on
    relationship. This ensures that the snapshotting doesn't
    affect current tracing on/off settings.
    
    Link: http://lkml.kernel.org/r/153149932412.11274.15289227592627901488.stgit@devbox
    
    Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
    Cc: Hiraku Toyooka <hiraku.toyooka@cybertrust.co.jp>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: linux-kselftest@vger.kernel.org
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 582db66cad1b0c02c9cf0a5d955dcfa56fa6e7f7
Author: Kiran Kumar Modukuri <kiran.modukuri@gmail.com>
Date:   Thu Jun 21 13:25:53 2018 -0700

    cachefiles: Wait rather than BUG'ing on "Unexpected object collision"
    
    [ Upstream commit c2412ac45a8f8f1cd582723c1a139608694d410d ]
    
    If we meet a conflicting object that is marked FSCACHE_OBJECT_IS_LIVE in
    the active object tree, we have been emitting a BUG after logging
    information about it and the new object.
    
    Instead, we should wait for the CACHEFILES_OBJECT_ACTIVE flag to be cleared
    on the old object (or return an error).  The ACTIVE flag should be cleared
    after it has been removed from the active object tree.  A timeout of 60s is
    used in the wait, so we shouldn't be able to get stuck there.
    
    Fixes: 9ae326a69004 ("CacheFiles: A cache that backs onto a mounted filesystem")
    Signed-off-by: Kiran Kumar Modukuri <kiran.modukuri@gmail.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4eabf1e295373af45eb0ed2048aa7eb619ec3082
Author: Kiran Kumar Modukuri <kiran.modukuri@gmail.com>
Date:   Tue Jul 18 16:25:49 2017 -0700

    cachefiles: Fix refcounting bug in backing-file read monitoring
    
    [ Upstream commit 934140ab028713a61de8bca58c05332416d037d1 ]
    
    cachefiles_read_waiter() has the right to access a 'monitor' object by
    virtue of being called under the waitqueue lock for one of the pages in its
    purview.  However, it has no ref on that monitor object or on the
    associated operation.
    
    What it is allowed to do is to move the monitor object to the operation's
    to_do list, but once it drops the work_lock, it's actually no longer
    permitted to access that object.  However, it is trying to enqueue the
    retrieval operation for processing - but it can only do this via a pointer
    in the monitor object, something it shouldn't be doing.
    
    If it doesn't enqueue the operation, the operation may not get processed.
    If the order is flipped so that the enqueue is first, then it's possible
    for the work processor to look at the to_do list before the monitor is
    enqueued upon it.
    
    Fix this by getting a ref on the operation so that we can trust that it
    will still be there once we've added the monitor to the to_do list and
    dropped the work_lock.  The op can then be enqueued after the lock is
    dropped.
    
    The bug can manifest in one of a couple of ways.  The first manifestation
    looks like:
    
     FS-Cache:
     FS-Cache: Assertion failed
     FS-Cache: 6 == 5 is false
     ------------[ cut here ]------------
     kernel BUG at fs/fscache/operation.c:494!
     RIP: 0010:fscache_put_operation+0x1e3/0x1f0
     ...
     fscache_op_work_func+0x26/0x50
     process_one_work+0x131/0x290
     worker_thread+0x45/0x360
     kthread+0xf8/0x130
     ? create_worker+0x190/0x190
     ? kthread_cancel_work_sync+0x10/0x10
     ret_from_fork+0x1f/0x30
    
    This is due to the operation being in the DEAD state (6) rather than
    INITIALISED, COMPLETE or CANCELLED (5) because it's already passed through
    fscache_put_operation().
    
    The bug can also manifest like the following:
    
     kernel BUG at fs/fscache/operation.c:69!
     ...
        [exception RIP: fscache_enqueue_operation+246]
     ...
     #7 [ffff883fff083c10] fscache_enqueue_operation at ffffffffa0b793c6
     #8 [ffff883fff083c28] cachefiles_read_waiter at ffffffffa0b15a48
     #9 [ffff883fff083c48] __wake_up_common at ffffffff810af028
    
    I'm not entirely certain as to which is line 69 in Lei's kernel, so I'm not
    entirely clear which assertion failed.
    
    Fixes: 9ae326a69004 ("CacheFiles: A cache that backs onto a mounted filesystem")
    Reported-by: Lei Xue <carmark.dlut@gmail.com>
    Reported-by: Vegard Nossum <vegard.nossum@gmail.com>
    Reported-by: Anthony DeRobertis <aderobertis@metrics.net>
    Reported-by: NeilBrown <neilb@suse.com>
    Reported-by: Daniel Axtens <dja@axtens.net>
    Reported-by: Kiran Kumar Modukuri <kiran.modukuri@gmail.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a60d0786f758051c0786a36e69ad07fcf6917b44
Author: Kiran Kumar Modukuri <kiran.modukuri@gmail.com>
Date:   Wed Jul 25 14:31:20 2018 +0100

    fscache: Allow cancelled operations to be enqueued
    
    [ Upstream commit d0eb06afe712b7b103b6361f40a9a0c638524669 ]
    
    Alter the state-check assertion in fscache_enqueue_operation() to allow
    cancelled operations to be given processing time so they can be cleaned up.
    
    Also fix a debugging statement that was requiring such operations to have
    an object assigned.
    
    Fixes: 9ae326a69004 ("CacheFiles: A cache that backs onto a mounted filesystem")
    Reported-by: Kiran Kumar Modukuri <kiran.modukuri@gmail.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 903d5b843dc6b9f25fe35033c0aa376be133c8b4
Author: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Date:   Tue Jul 24 10:09:53 2018 +0530

    net: axienet: Fix double deregister of mdio
    
    [ Upstream commit 03bc7cab7d7218088412a75e141696a89059ab00 ]
    
    If the registration fails then mdio_unregister is called.
    However at unbind the unregister ia attempted again resulting
    in the below crash
    
    [   73.544038] kernel BUG at drivers/net/phy/mdio_bus.c:415!
    [   73.549362] Internal error: Oops - BUG: 0 [#1] SMP
    [   73.554127] Modules linked in:
    [   73.557168] CPU: 0 PID: 2249 Comm: sh Not tainted 4.14.0 #183
    [   73.562895] Hardware name: xlnx,zynqmp (DT)
    [   73.567062] task: ffffffc879e41180 task.stack: ffffff800cbe0000
    [   73.572973] PC is at mdiobus_unregister+0x84/0x88
    [   73.577656] LR is at axienet_mdio_teardown+0x18/0x30
    [   73.582601] pc : [<ffffff80085fa4cc>] lr : [<ffffff8008616858>]
    pstate: 20000145
    [   73.589981] sp : ffffff800cbe3c30
    [   73.593277] x29: ffffff800cbe3c30 x28: ffffffc879e41180
    [   73.598573] x27: ffffff8008a21000 x26: 0000000000000040
    [   73.603868] x25: 0000000000000124 x24: ffffffc879efe920
    [   73.609164] x23: 0000000000000060 x22: ffffffc879e02000
    [   73.614459] x21: ffffffc879e02800 x20: ffffffc87b0b8870
    [   73.619754] x19: ffffffc879e02800 x18: 000000000000025d
    [   73.625050] x17: 0000007f9a719ad0 x16: ffffff8008195bd8
    [   73.630345] x15: 0000007f9a6b3d00 x14: 0000000000000010
    [   73.635640] x13: 74656e7265687465 x12: 0000000000000030
    [   73.640935] x11: 0000000000000030 x10: 0101010101010101
    [   73.646231] x9 : 241f394f42533300 x8 : ffffffc8799f6e98
    [   73.651526] x7 : ffffffc8799f6f18 x6 : ffffffc87b0ba318
    [   73.656822] x5 : ffffffc87b0ba498 x4 : 0000000000000000
    [   73.662117] x3 : 0000000000000000 x2 : 0000000000000008
    [   73.667412] x1 : 0000000000000004 x0 : ffffffc8799f4000
    [   73.672708] Process sh (pid: 2249, stack limit = 0xffffff800cbe0000)
    
    Fix the same by making the bus NULL on unregister.
    
    Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73b89b6f951f63b0bdecc217f29fe0f1d9f7c2f4
Author: Sudarsana Reddy Kalluru <sudarsana.kalluru@cavium.com>
Date:   Tue Jul 24 02:43:52 2018 -0700

    bnx2x: Fix invalid memory access in rss hash config path.
    
    [ Upstream commit ae2dcb28c24794a87e424a726a1cf1a61980f52d ]
    
    Rx hash/filter table configuration uses rss_conf_obj to configure filters
    in the hardware. This object is initialized only when the interface is
    brought up.
    This patch adds driver changes to configure rss params only when the device
    is in opened state. In port disabled case, the config will be cached in the
    driver structure which will be applied in the successive load path.
    
    Please consider applying it to 'net' branch.
    
    Signed-off-by: Sudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da1ab9d3f0f858c6f7c6c813b8cab06657448f9b
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Mon Jul 23 14:39:33 2018 -0700

    media: staging: omap4iss: Include asm/cacheflush.h after generic includes
    
    [ Upstream commit 0894da849f145af51bde88a6b84f95b9c9e0bc66 ]
    
    Including asm/cacheflush.h first results in the following build error
    when trying to build sparc32:allmodconfig, because 'struct page' has not
    been declared, and the function declaration ends up creating a separate
    (private) declaration of struct page (as a result of function arguments
    being in the scope of the function declaration and definition, not in
    global scope).
    
    The C scoping rules do not just affect variable visibility, they also
    affect type declaration visibility.
    
    The end result is that when the actual call site is seen in
    <linux/highmem.h>, the 'struct page' type in the caller is not the same
    'struct page' that the function was declared with, resulting in:
    
      In file included from arch/sparc/include/asm/page.h:10:0,
                       ...
                       from drivers/staging/media/omap4iss/iss_video.c:15:
      include/linux/highmem.h: In function 'clear_user_highpage':
      include/linux/highmem.h:137:31: error:
            passing argument 1 of 'sparc_flush_page_to_ram' from incompatible
            pointer type
    
    Include generic includes files first to fix the problem.
    
    Fixes: fc96d58c10162 ("[media] v4l: omap4iss: Add support for OMAP4 camera interface - Video devices")
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Acked-by: David S. Miller <davem@davemloft.net>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    [ Added explanation of C scope rules - Linus ]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b725b8a218bc103e5afe574b908533f7686295c6
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Mon Jul 9 21:16:40 2018 +0200

    can: mpc5xxx_can: check of_iomap return before use
    
    [ Upstream commit b5c1a23b17e563b656cc9bb76ce5323b997d90e8 ]
    
    of_iomap() can return NULL so that return needs to be checked and NULL
    treated as failure. While at it also take care of the missing
    of_node_put() in the error path.
    
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Fixes: commit afa17a500a36 ("net/can: add driver for mscan family & mpc52xx_mscan")
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4dafaff5d7584e7fabb13ace1068fc543a956094
Author: Florian Westphal <fw@strlen.de>
Date:   Fri Jul 20 19:30:57 2018 +0200

    atl1c: reserve min skb headroom
    
    [ Upstream commit 6e56830776828d8ca9897fc4429eeab47c3bb432 ]
    
    Got crash report with following backtrace:
    BUG: unable to handle kernel paging request at ffff8801869daffe
    RIP: 0010:[<ffffffff816429c4>]  [<ffffffff816429c4>] ip6_finish_output2+0x394/0x4c0
    RSP: 0018:ffff880186c83a98  EFLAGS: 00010283
    RAX: ffff8801869db00e ...
      [<ffffffff81644cdc>] ip6_finish_output+0x8c/0xf0
      [<ffffffff81644d97>] ip6_output+0x57/0x100
      [<ffffffff81643dc9>] ip6_forward+0x4b9/0x840
      [<ffffffff81645566>] ip6_rcv_finish+0x66/0xc0
      [<ffffffff81645db9>] ipv6_rcv+0x319/0x530
      [<ffffffff815892ac>] netif_receive_skb+0x1c/0x70
      [<ffffffffc0060bec>] atl1c_clean+0x1ec/0x310 [atl1c]
      ...
    
    The bad access is in neigh_hh_output(), at skb->data - 16 (HH_DATA_MOD).
    atl1c driver provided skb with no headroom, so 14 bytes (ethernet
    header) got pulled, but then 16 are copied.
    
    Reserve NET_SKB_PAD bytes headroom, like netdev_alloc_skb().
    
    Compile tested only; I lack hardware.
    
    Fixes: 7b7017642199 ("atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring")
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4794000789d6007de094dbbeb37feca05e05c0e2
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Thu Jul 19 10:27:13 2018 +0800

    net: caif: Add a missing rcu_read_unlock() in caif_flow_cb
    
    [ Upstream commit 64119e05f7b31e83e2555f6782e6cdc8f81c63f4 ]
    
    Add a missing rcu_read_unlock in the error path
    
    Fixes: c95567c80352 ("caif: added check for potential null return")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 944dbf3b36cffd8d180c46545a5e5dc66f360d72
Author: Len Brown <len.brown@intel.com>
Date:   Fri Jul 20 14:47:03 2018 -0400

    tools/power turbostat: fix -S on UP systems
    
    [ Upstream commit 9d83601a9cc1884d1b5706ee2acc661d558c6838 ]
    
    The -S (system summary) option failed to print any data on a 1-processor system.
    
    Reported-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b8e010e3a0c12e88adad7017f03aefd9532d2e3
Author: Eugeniu Rosca <roscaeugeniu@gmail.com>
Date:   Mon Jul 2 23:46:47 2018 +0200

    usb: gadget: f_uac2: fix endianness of 'struct cntrl_*_lay3'
    
    [ Upstream commit eec24f2a0d4dc3b1d95a3ccd2feb523ede3ba775 ]
    
    The list [1] of commits doing endianness fixes in USB subsystem is long
    due to below quote from USB spec Revision 2.0 from April 27, 2000:
    
    ------------
    8.1 Byte/Bit Ordering
    
    Multiple byte fields in standard descriptors, requests, and responses
    are interpreted as and moved over the bus in little-endian order, i.e.
    LSB to MSB.
    ------------
    
    This commit belongs to the same family.
    
    [1] Example of endianness fixes in USB subsystem:
    commit 14e1d56cbea6 ("usb: gadget: f_uac2: endianness fixes.")
    commit 42370b821168 ("usb: gadget: f_uac1: endianness fixes.")
    commit 63afd5cc7877 ("USB: chaoskey: fix Alea quirk on big-endian hosts")
    commit 74098c4ac782 ("usb: gadget: acm: fix endianness in notifications")
    commit cdd7928df0d2 ("ACM gadget: fix endianness in notifications")
    commit 323ece54e076 ("cdc-wdm: fix endianness bug in debug statements")
    commit e102609f1072 ("usb: gadget: uvc: Fix endianness mismatches")
           list goes on
    
    Fixes: 132fcb460839 ("usb: gadget: Add Audio Class 2.0 Driver")
    Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
    Reviewed-by: Ruslan Bilovol <ruslan.bilovol@gmail.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 54615755396be98de0d13eb10dca02cc3eb854b9
Author: Peter Senna Tschudin <peter.senna@gmail.com>
Date:   Tue Jul 10 16:01:45 2018 +0200

    tools: usb: ffs-test: Fix build on big endian systems
    
    [ Upstream commit a2b22dddc7bb6110ac3b5ed1a60aa9279836fadb ]
    
    The tools/usb/ffs-test.c file defines cpu_to_le16/32 by using the C
    library htole16/32 function calls. However, cpu_to_le16/32 are used when
    initializing structures, i.e in a context where a function call is not
    allowed.
    
    It works fine on little endian systems because htole16/32 are defined by
    the C library as no-ops. But on big-endian systems, they are actually
    doing something, which might involve calling a function, causing build
    failures, such as:
    
       ffs-test.c:48:25: error: initializer element is not constant
        #define cpu_to_le32(x)  htole32(x)
                                ^~~~~~~
       ffs-test.c:128:12: note: in expansion of macro ‘cpu_to_le32’
          .magic = cpu_to_le32(FUNCTIONFS_DESCRIPTORS_MAGIC_V2),
                   ^~~~~~~~~~~
    
    To solve this, we code cpu_to_le16/32 in a way that allows them to be
    used when initializing structures. This fix was imported from
    meta-openembedded/android-tools/fix-big-endian-build.patch written by
    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>.
    
    CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a438b32e424c9ebdda48244cb1620571b1cab590
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun Jul 15 10:37:37 2018 -0700

    usb/phy: fix PPC64 build errors in phy-fsl-usb.c
    
    [ Upstream commit a39ba90a1cc7010edb0a7132e1b67f3d80b994e9 ]
    
    Fix build errors when built for PPC64:
    These variables are only used on PPC32 so they don't need to be
    initialized for PPC64.
    
    ../drivers/usb/phy/phy-fsl-usb.c: In function 'usb_otg_start':
    ../drivers/usb/phy/phy-fsl-usb.c:865:3: error: '_fsl_readl' undeclared (first use in this function); did you mean 'fsl_readl'?
       _fsl_readl = _fsl_readl_be;
    ../drivers/usb/phy/phy-fsl-usb.c:865:16: error: '_fsl_readl_be' undeclared (first use in this function); did you mean 'fsl_readl'?
       _fsl_readl = _fsl_readl_be;
    ../drivers/usb/phy/phy-fsl-usb.c:866:3: error: '_fsl_writel' undeclared (first use in this function); did you mean 'fsl_writel'?
       _fsl_writel = _fsl_writel_be;
    ../drivers/usb/phy/phy-fsl-usb.c:866:17: error: '_fsl_writel_be' undeclared (first use in this function); did you mean 'fsl_writel'?
       _fsl_writel = _fsl_writel_be;
    ../drivers/usb/phy/phy-fsl-usb.c:868:16: error: '_fsl_readl_le' undeclared (first use in this function); did you mean 'fsl_readl'?
       _fsl_readl = _fsl_readl_le;
    ../drivers/usb/phy/phy-fsl-usb.c:869:17: error: '_fsl_writel_le' undeclared (first use in this function); did you mean 'fsl_writel'?
       _fsl_writel = _fsl_writel_le;
    
    and the sysfs "show" function return type should be ssize_t, not int:
    
    ../drivers/usb/phy/phy-fsl-usb.c:1042:49: error: initialization of 'ssize_t (*)(struct device *, struct device_attribute *, char *)' {aka 'long int (*)(struct device *, struct device_attribute *, char *)'} from incompatible pointer type 'int (*)(struct device *, struct device_attribute *, char *)' [-Werror=incompatible-pointer-types]
     static DEVICE_ATTR(fsl_usb2_otg_state, S_IRUGO, show_fsl_usb2_otg_state, NULL);
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Felipe Balbi <balbi@kernel.org>
    Cc: linux-usb@vger.kernel.org
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97f07e5888aa676b05e0fb17f0b18f929bc6e4e3
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Wed Jun 20 11:55:08 2018 +0800

    usb: gadget: r8a66597: Fix a possible sleep-in-atomic-context bugs in r8a66597_queue()
    
    [ Upstream commit f36b507c14c4b6e634463a610294e9cb0065c8ea ]
    
    The driver may sleep in an interrupt handler.
    The function call path (from bottom to top) in Linux-4.16.7 is:
    
    [FUNC] r8a66597_queue(GFP_KERNEL)
    drivers/usb/gadget/udc/r8a66597-udc.c, 1193:
                    r8a66597_queue in get_status
    drivers/usb/gadget/udc/r8a66597-udc.c, 1301:
                    get_status in setup_packet
    drivers/usb/gadget/udc/r8a66597-udc.c, 1381:
                    setup_packet in irq_control_stage
    drivers/usb/gadget/udc/r8a66597-udc.c, 1508:
                    irq_control_stage in r8a66597_irq (interrupt handler)
    
    To fix this bug, GFP_KERNEL is replaced with GFP_ATOMIC.
    
    This bug is found by my static analysis tool (DSAC-2) and checked by
    my code review.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c51c58d75d8f0885952a9f84f123fdb941b7e290
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Wed Jun 20 11:54:53 2018 +0800

    usb: gadget: r8a66597: Fix two possible sleep-in-atomic-context bugs in init_controller()
    
    [ Upstream commit 0602088b10a7c0b4e044a810678ef93d7cc5bf48 ]
    
    The driver may sleep with holding a spinlock.
    The function call paths (from bottom to top) in Linux-4.16.7 are:
    
    [FUNC] msleep
    drivers/usb/gadget/udc/r8a66597-udc.c, 839:
                    msleep in init_controller
    drivers/usb/gadget/udc/r8a66597-udc.c, 96:
                    init_controller in r8a66597_usb_disconnect
    drivers/usb/gadget/udc/r8a66597-udc.c, 93:
                    spin_lock in r8a66597_usb_disconnect
    
    [FUNC] msleep
    drivers/usb/gadget/udc/r8a66597-udc.c, 835:
                    msleep in init_controller
    drivers/usb/gadget/udc/r8a66597-udc.c, 96:
                    init_controller in r8a66597_usb_disconnect
    drivers/usb/gadget/udc/r8a66597-udc.c, 93:
                    spin_lock in r8a66597_usb_disconnect
    
    To fix these bugs, msleep() is replaced with mdelay().
    
    This bug is found by my static analysis tool (DSAC-2) and checked by
    my code review.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d72c0a9616b1107044ce908694606549633ba16
Author: Lucas Stach <l.stach@pengutronix.de>
Date:   Wed Apr 11 17:31:36 2018 +0200

    drm/imx: imx-ldb: check if channel is enabled before printing warning
    
    [ Upstream commit c80d673b91a6c81d765864e10f2b15110ee900ad ]
    
    If the second LVDS channel has been disabled in the DT when using dual-channel
    mode we should not print a warning.
    
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce7c57f67930a297dd576217363c4a1fee5b8c6c
Author: Lucas Stach <l.stach@pengutronix.de>
Date:   Wed Apr 11 17:31:35 2018 +0200

    drm/imx: imx-ldb: disable LDB on driver bind
    
    [ Upstream commit b58262396fabd43dc869b576e3defdd23b32fe94 ]
    
    The LVDS signal integrity is only guaranteed when the correct enable
    sequence (first IPU DI, then LDB) is used. If the LDB display output was
    active before the imx-drm driver is loaded (like when a bootsplash was
    active) the DI will be disabled by the full IPU reset we do when loading
    the driver. The LDB control registers are not part of the IPU range and
    thus will remain unchanged.
    
    This leads to the LDB still being active when the DI is getting enabled,
    effectively reversing the required enable sequence. Fix this by also
    disabling the LDB on driver bind.
    
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad020ae8a46bbc2ad6b14c83597b8f9263e3c3ca
Author: Varun Prakash <varun@chelsio.com>
Date:   Wed Jul 11 22:09:52 2018 +0530

    scsi: libiscsi: fix possible NULL pointer dereference in case of TMF
    
    [ Upstream commit a17037e7d59075053b522048742a08ac9500bde8 ]
    
    In iscsi_check_tmf_restrictions() task->hdr is dereferenced to print the
    opcode, it is possible that task->hdr is NULL.
    
    There are two cases based on opcode argument:
    
    1. ISCSI_OP_SCSI_CMD - In this case alloc_pdu() is called
    after iscsi_check_tmf_restrictions()
    
    iscsi_prep_scsi_cmd_pdu() -> iscsi_check_tmf_restrictions() -> alloc_pdu().
    
    Transport drivers allocate memory for iSCSI hdr in alloc_pdu() and assign
    it to task->hdr. In case of TMF task->hdr will be NULL resulting in NULL
    pointer dereference.
    
    2. ISCSI_OP_SCSI_DATA_OUT - In this case transport driver can free the
    memory for iSCSI hdr after transmitting the pdu so task->hdr can be NULL or
    invalid.
    
    This patch fixes this issue by removing task->hdr->opcode from the printk
    statement.
    
    Signed-off-by: Varun Prakash <varun@chelsio.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 115b73804426c303961eacf9b6585b1e1f7a4ae7
Author: Bernd Edlinger <bernd.edlinger@hotmail.de>
Date:   Sun Jul 8 09:57:22 2018 +0000

    nl80211: Add a missing break in parse_station_flags
    
    [ Upstream commit 5cf3006cc81d9aa09a10aa781fc065546b12919d ]
    
    I was looking at usually suppressed gcc warnings,
    [-Wimplicit-fallthrough=] in this case:
    
    The code definitely looks like a break is missing here.
    However I am not able to test the NL80211_IFTYPE_MESH_POINT,
    nor do I actually know what might be :)
    So please use this patch with caution and only if you are
    able to do some testing.
    
    Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
    [johannes: looks obvious enough to apply as is, interesting
     though that it never seems to have been a problem]
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 491e335a5e38e3f18a54e25b43c49593af0915da
Author: mpubbise@codeaurora.org <mpubbise@codeaurora.org>
Date:   Mon Jul 2 15:40:14 2018 +0530

    mac80211: add stations tied to AP_VLANs during hw reconfig
    
    [ Upstream commit 19103a4bfb42f320395daa5616ece3e89e759d63 ]
    
    As part of hw reconfig, only stations linked to AP interfaces are added
    back to the driver ignoring those which are tied to AP_VLAN interfaces.
    
    It is true that there could be stations tied to the AP_VLAN interface while
    serving 4addr clients or when using AP_VLAN for VLAN operations; we should
    be adding these stations back to the driver as part of hw reconfig, failing
    to do so can cause functional issues.
    
    In the case of ath10k driver, the following errors were observed.
    
    ath10k_pci : failed to install key for non-existent peer XX:XX:XX:XX:XX:XX
    Workqueue: events_freezable ieee80211_restart_work [mac80211]
    (unwind_backtrace) from (show_stack+0x10/0x14)
    (show_stack) (dump_stack+0x80/0xa0)
    (dump_stack) (warn_slowpath_common+0x68/0x8c)
    (warn_slowpath_common) (warn_slowpath_null+0x18/0x20)
    (warn_slowpath_null) (ieee80211_enable_keys+0x88/0x154 [mac80211])
    (ieee80211_enable_keys) (ieee80211_reconfig+0xc90/0x19c8 [mac80211])
    (ieee80211_reconfig]) (ieee80211_restart_work+0x8c/0xa0 [mac80211])
    (ieee80211_restart_work) (process_one_work+0x284/0x488)
    (process_one_work) (worker_thread+0x228/0x360)
    (worker_thread) (kthread+0xd8/0xec)
    (kthread) (ret_from_fork+0x14/0x24)
    
    Also while bringing down the AP VAP, WARN_ONs and errors related to peer
    removal were observed.
    
    ath10k_pci : failed to clear all peer wep keys for vdev 0: -2
    ath10k_pci : failed to disassociate station: 8c:fd:f0:0a:8c:f5 vdev 0: -2
    (unwind_backtrace) (show_stack+0x10/0x14)
    (show_stack) (dump_stack+0x80/0xa0)
    (dump_stack) (warn_slowpath_common+0x68/0x8c)
    (warn_slowpath_common) (warn_slowpath_null+0x18/0x20)
    (warn_slowpath_null) (sta_set_sinfo+0xb98/0xc9c [mac80211])
    (sta_set_sinfo [mac80211]) (__sta_info_flush+0xf0/0x134 [mac80211])
    (__sta_info_flush [mac80211]) (ieee80211_stop_ap+0xe8/0x390 [mac80211])
    (ieee80211_stop_ap [mac80211]) (__cfg80211_stop_ap+0xe0/0x3dc [cfg80211])
    (__cfg80211_stop_ap [cfg80211]) (cfg80211_stop_ap+0x30/0x44 [cfg80211])
    (cfg80211_stop_ap [cfg80211]) (genl_rcv_msg+0x274/0x30c)
    (genl_rcv_msg) (netlink_rcv_skb+0x58/0xac)
    (netlink_rcv_skb) (genl_rcv+0x20/0x34)
    (genl_rcv) (netlink_unicast+0x11c/0x204)
    (netlink_unicast) (netlink_sendmsg+0x30c/0x370)
    (netlink_sendmsg) (sock_sendmsg+0x70/0x84)
    (sock_sendmsg) (___sys_sendmsg.part.3+0x188/0x228)
    (___sys_sendmsg.part.3) (__sys_sendmsg+0x4c/0x70)
    (__sys_sendmsg) (ret_fast_syscall+0x0/0x44)
    
    These issues got fixed by adding the stations which are
    tied to AP_VLANs back to the driver.
    
    Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b389a690180b16ff614af6bb8f9f887868b02ad
Author: Florian Westphal <fw@strlen.de>
Date:   Mon Jun 25 14:00:07 2018 +0200

    xfrm: free skb if nlsk pointer is NULL
    
    [ Upstream commit 86126b77dcd551ce223e7293bb55854e3df05646 ]
    
    nlmsg_multicast() always frees the skb, so in case we cannot call
    it we must do that ourselves.
    
    Fixes: 21ee543edc0dea ("xfrm: fix race between netns cleanup and state expire notification")
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea0926cca04231dfb2f4813dd7c25748d4a31577
Author: Tommi Rantala <tommi.t.rantala@nokia.com>
Date:   Thu Jun 21 09:30:47 2018 +0300

    xfrm: fix missing dst_release() after policy blocking lbcast and multicast
    
    [ Upstream commit 8cc88773855f988d6a3bbf102bbd9dd9c828eb81 ]
    
    Fix missing dst_release() when local broadcast or multicast traffic is
    xfrm policy blocked.
    
    For IPv4 this results to dst leak: ip_route_output_flow() allocates
    dst_entry via __ip_route_output_key() and passes it to
    xfrm_lookup_route(). xfrm_lookup returns ERR_PTR(-EPERM) that is
    propagated. The dst that was allocated is never released.
    
    IPv4 local broadcast testcase:
     ping -b 192.168.1.255 &
     sleep 1
     ip xfrm policy add src 0.0.0.0/0 dst 192.168.1.255/32 dir out action block
    
    IPv4 multicast testcase:
     ping 224.0.0.1 &
     sleep 1
     ip xfrm policy add src 0.0.0.0/0 dst 224.0.0.1/32 dir out action block
    
    For IPv6 the missing dst_release() causes trouble e.g. when used in netns:
     ip netns add TEST
     ip netns exec TEST ip link set lo up
     ip link add dummy0 type dummy
     ip link set dev dummy0 netns TEST
     ip netns exec TEST ip addr add fd00::1111 dev dummy0
     ip netns exec TEST ip link set dummy0 up
     ip netns exec TEST ping -6 -c 5 ff02::1%dummy0 &
     sleep 1
     ip netns exec TEST ip xfrm policy add src ::/0 dst ff02::1 dir out action block
     wait
     ip netns del TEST
    
    After netns deletion we see:
    [  258.239097] unregister_netdevice: waiting for lo to become free. Usage count = 2
    [  268.279061] unregister_netdevice: waiting for lo to become free. Usage count = 2
    [  278.367018] unregister_netdevice: waiting for lo to become free. Usage count = 2
    [  288.375259] unregister_netdevice: waiting for lo to become free. Usage count = 2
    
    Fixes: ac37e2515c1a ("xfrm: release dst_orig in case of error in xfrm_lookup()")
    Signed-off-by: Tommi Rantala <tommi.t.rantala@nokia.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a21340d0866664fc30a449b6d9d56659075f9d9
Author: yujuan.qi <yujuan.qi@mediatek.com>
Date:   Mon Jul 31 11:23:01 2017 +0800

    Cipso: cipso_v4_optptr enter infinite loop
    
    commit 40413955ee265a5e42f710940ec78f5450d49149 upstream.
    
    in for(),if((optlen > 0) && (optptr[1] == 0)), enter infinite loop.
    
    Test: receive a packet which the ip length > 20 and the first byte of ip option is 0, produce this issue
    
    Signed-off-by: yujuan.qi <yujuan.qi@mediatek.com>
    Acked-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 319bc6ceb7c14d1d0350a8307f8a59a3fba161ae
Author: Ethan Zhao <ethan.zhao@oracle.com>
Date:   Mon Sep 4 13:59:34 2017 +0800

    sched/sysctl: Check user input value of sysctl_sched_time_avg
    
    commit 5ccba44ba118a5000cccc50076b0344632459779 upstream.
    
    System will hang if user set sysctl_sched_time_avg to 0:
    
      [root@XXX ~]# sysctl kernel.sched_time_avg_ms=0
    
      Stack traceback for pid 0
      0xffff883f6406c600 0 0 1 3 R 0xffff883f6406cf50 *swapper/3
      ffff883f7ccc3ae8 0000000000000018 ffffffff810c4dd0 0000000000000000
      0000000000017800 ffff883f7ccc3d78 0000000000000003 ffff883f7ccc3bf8
      ffffffff810c4fc9 ffff883f7ccc3c08 00000000810c5043 ffff883f7ccc3c08
      Call Trace:
      <IRQ> [<ffffffff810c4dd0>] ? update_group_capacity+0x110/0x200
      [<ffffffff810c4fc9>] ? update_sd_lb_stats+0x109/0x600
      [<ffffffff810c5507>] ? find_busiest_group+0x47/0x530
      [<ffffffff810c5b84>] ? load_balance+0x194/0x900
      [<ffffffff810ad5ca>] ? update_rq_clock.part.83+0x1a/0xe0
      [<ffffffff810c6d42>] ? rebalance_domains+0x152/0x290
      [<ffffffff810c6f5c>] ? run_rebalance_domains+0xdc/0x1d0
      [<ffffffff8108a75b>] ? __do_softirq+0xfb/0x320
      [<ffffffff8108ac85>] ? irq_exit+0x125/0x130
      [<ffffffff810b3a17>] ? scheduler_ipi+0x97/0x160
      [<ffffffff81052709>] ? smp_reschedule_interrupt+0x29/0x30
      [<ffffffff8173a1be>] ? reschedule_interrupt+0x6e/0x80
       <EOI> [<ffffffff815bc83c>] ? cpuidle_enter_state+0xcc/0x230
      [<ffffffff815bc80c>] ? cpuidle_enter_state+0x9c/0x230
      [<ffffffff815bc9d7>] ? cpuidle_enter+0x17/0x20
      [<ffffffff810cd6dc>] ? cpu_startup_entry+0x38c/0x420
      [<ffffffff81053373>] ? start_secondary+0x173/0x1e0
    
    Because divide-by-zero error happens in function:
    
    update_group_capacity()
      update_cpu_capacity()
        scale_rt_capacity()
         {
              ...
              total = sched_avg_period() + delta;
              used = div_u64(avg, total);
              ...
         }
    
    To fix this issue, check user input value of sysctl_sched_time_avg, keep
    it unchanged when hitting invalid input, and set the minimum limit of
    sysctl_sched_time_avg to 1 ms.
    
    Reported-by: James Puthukattukaran <james.puthukattukaran@oracle.com>
    Signed-off-by: Ethan Zhao <ethan.zhao@oracle.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: efault@gmx.de
    Cc: ethan.kernel@gmail.com
    Cc: keescook@chromium.org
    Cc: mcgrof@kernel.org
    Cc: <stable@vger.kernel.org>
    Link: http://lkml.kernel.org/r/1504504774-18253-1-git-send-email-ethan.zhao@oracle.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Steve Muckle <smuckle@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>