commit 9eabacaf4ce59a07baacac5f31586de4ae7e9194
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Sep 5 09:20:11 2018 +0200

    Linux 4.9.125

commit 3af20bddda6f24b5a1c0072f2f6e3bb3ed04bf78
Author: Daniel Rosenberg <drosen@google.com>
Date:   Thu Aug 30 16:09:46 2018 -0700

    staging: android: ion: check for kref overflow
    
    This patch is against 4.9. It does not apply to master due to a large
    rework of ion in 4.12 which removed the affected functions altogther.
    4c23cbff073f3b9b ("staging: android: ion: Remove import interface")
    
    Userspace can cause the kref to handles to increment
    arbitrarily high. Ensure it does not overflow.
    
    Signed-off-by: Daniel Rosenberg <drosen@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8c0e15469bab732065e64f7dffadab0b7103990
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 c1ebdbe4ccf138f87c78f58931d74526a5d76bf8
Author: H. Nikolaus Schaller <hns@goldelico.com>
Date:   Tue Jun 26 15:28:30 2018 +0200

    power: generic-adc-battery: check for duplicate properties copied from iio channels
    
    commit a427503edaaed9b75ed9746a654cece7e93e60a8 upstream.
    
    If an iio channel defines a basic property, there are duplicate entries
    in /sys/class/power/*/uevent.
    
    So add a check to avoid duplicates. Since all channels may be duplicates,
    we have to modify the related error check.
    
    Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
    Cc: stable@vger.kernel.org
    Fixes: e60fea794e6e ("power: battery: Generic battery driver using IIO")
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3702bbac9e25aef34473b0a8cd220b73024462e
Author: H. Nikolaus Schaller <hns@goldelico.com>
Date:   Tue Jun 26 15:28:29 2018 +0200

    power: generic-adc-battery: fix out-of-bounds write when copying channel properties
    
    commit 932d47448c3caa0fa99e84d7f5bc302aa286efd8 upstream.
    
    We did have sporadic problems in the pinctrl framework during boot
    where a pin group name unexpectedly became NULL leading to a NULL
    dereference in strcmp.
    
    Detailled analysis of the failing cases did reveal that there were
    two devm allocated objects close to each other. The second one was
    the affected group_desc in pinmux and the first one was the
    psy_desc->properties buffer of the gab driver.
    
    Review of the gab code showed that the address calculation for
    one memcpy() is wrong. It does
    
            properties + sizeof(type) * index
    
    but C is defined to do the index multiplication already for
    pointer + integer additions. Hence the factor was applied twice
    and the memcpy() does write outside of the properties buffer.
    Sometimes it happened to be the pinctrl and triggered the strcmp(NULL).
    
    Anyways, it is overkill to use a memcpy() here instead of a simple
    assignment, which is easier to read and has less risk for wrong
    address calculations. So we change code to a simple assignment.
    
    If we initialize the index to the first free location, we can even
    remove the local variable 'properties'.
    
    This bug seems to exist right from the beginning in 3.7-rc1 in
    
    commit e60fea794e6e ("power: battery: Generic battery driver using IIO")
    
    Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
    Cc: stable@vger.kernel.org
    Fixes: e60fea794e6e ("power: battery: Generic battery driver using IIO")
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8467a6b6ddd957147e27bb328ac753e97debcfd
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Aug 23 16:59:25 2018 +0300

    PM / clk: signedness bug in of_pm_clk_add_clks()
    
    commit 5e2e2f9f76e157063a656351728703cb02b068f1 upstream.
    
    "count" needs to be signed for the error handling to work.  I made "i"
    signed as well so they match.
    
    Fixes: 02113ba93ea4 (PM / clk: Add support for obtaining clocks from device-tree)
    Cc: 4.6+ <stable@vger.kernel.org> # 4.6+
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 072555e660f68cd7d7fc4d7d803ffb968c64669f
Author: Alberto Panizzo <alberto@amarulasolutions.com>
Date:   Fri Jul 6 15:18:51 2018 +0200

    clk: rockchip: fix clk_i2sout parent selection bits on rk3399
    
    commit a64ad008980c65d38e6cf6858429c78e6b740c41 upstream.
    
    Register, shift and mask were wrong according to datasheet.
    
    Fixes: 115510053e5e ("clk: rockchip: add clock controller for the RK3399")
    Cc: stable@vger.kernel.org
    Signed-off-by: Alberto Panizzo <alberto@amarulasolutions.com>
    Signed-off-by: Anthony Brandon <anthony@amarulasolutions.com>
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 00ee0e07c68d550e61e6e44dbeb1d589cfdb6a48
Author: Mike Christie <mchristi@redhat.com>
Date:   Thu Jul 26 12:13:49 2018 -0500

    iscsi target: fix session creation failure handling
    
    commit 26abc916a898d34c5ad159315a2f683def3c5555 upstream.
    
    The problem is that iscsi_login_zero_tsih_s1 sets conn->sess early in
    iscsi_login_set_conn_values. If the function fails later like when we
    alloc the idr it does kfree(sess) and leaves the conn->sess pointer set.
    iscsi_login_zero_tsih_s1 then returns -Exyz and we then call
    iscsi_target_login_sess_out and access the freed memory.
    
    This patch has iscsi_login_zero_tsih_s1 either completely setup the
    session or completely tear it down, so later in
    iscsi_target_login_sess_out we can just check for it being set to the
    connection.
    
    Cc: stable@vger.kernel.org
    Fixes: 0957627a9960 ("iscsi-target: Fix sess allocation leak in...")
    Signed-off-by: Mike Christie <mchristi@redhat.com>
    Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Matthew Wilcox <willy@infradead.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d70dea5113047bf1174c5efe116a946095736e3
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 8a5e02a0f46ea33ed19e48e096a8e8d28e73d10a
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 a6b728be40aef5cd66e7cbbd19c4c05db1cd0d22
Author: Paul Burton <paul.burton@mips.com>
Date:   Tue Aug 21 12:12:59 2018 -0700

    MIPS: lib: Provide MIPS64r6 __multi3() for GCC < 7
    
    commit 690d9163bf4b8563a2682e619f938e6a0443947f upstream.
    
    Some versions of GCC suboptimally generate calls to the __multi3()
    intrinsic for MIPS64r6 builds, resulting in link failures due to the
    missing function:
    
        LD      vmlinux.o
        MODPOST vmlinux.o
      kernel/bpf/verifier.o: In function `kmalloc_array':
      include/linux/slab.h:631: undefined reference to `__multi3'
      fs/select.o: In function `kmalloc_array':
      include/linux/slab.h:631: undefined reference to `__multi3'
      ...
    
    We already have a workaround for this in which we provide the
    instrinsic, but we do so selectively for GCC 7 only. Unfortunately the
    issue occurs with older GCC versions too - it has been observed with
    both GCC 5.4.0 & GCC 6.4.0.
    
    MIPSr6 support was introduced in GCC 5, so all major GCC versions prior
    to GCC 8 are affected and we extend our workaround accordingly to all
    MIPS64r6 builds using GCC versions older than GCC 8.
    
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Reported-by: Vladimir Kondratiev <vladimir.kondratiev@intel.com>
    Fixes: ebabcf17bcd7 ("MIPS: Implement __multi3 for GCC7 MIPS64r6 builds")
    Patchwork: https://patchwork.linux-mips.org/patch/20297/
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org # 4.15+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb3717fbcc3c371b0d4d173746d9c20facd33d65
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 5749cd62208707fb0ae0bf6c50477d9ee860413e
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 664a64bd6df6028a2bbd3755959aa0916649dac2
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 d519aab009a132f66eac44f4d6ae32b615e97859
Author: Martin Schwidefsky <schwidefsky@de.ibm.com>
Date:   Tue Jul 31 16:14:18 2018 +0200

    s390/numa: move initial setup of node_to_cpumask_map
    
    commit fb7d7518b0d65955f91c7b875c36eae7694c69bd upstream.
    
    The numa_init_early initcall sets the node_to_cpumask_map[0] to the
    full cpu_possible_mask. Unfortunately this early_initcall is too late,
    the NUMA setup for numa=emu is done even earlier. The order of calls
    is numa_setup() -> emu_update_cpu_topology(), then the early_initcalls(),
    followed by sched_init_domains().
    
    Starting with git commit 051f3ca02e46432c0965e8948f00c07d8a2f09c0
    "sched/topology: Introduce NUMA identity node sched domain"
    the incorrect node_to_cpumask_map[0] really screws up the domain
    setup and the kernel panics with the follow oops:
    
    Cc: <stable@vger.kernel.org> # v4.15+
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9f66a2ba6e69f1b13e968af71cc5bd9c5ccb95a
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 33a9081eaa2c608001ed6dfe6a2e58c2cdd731c6
Author: Martin Schwidefsky <schwidefsky@de.ibm.com>
Date:   Mon Aug 6 14:26:39 2018 +0200

    s390: fix br_r1_trampoline for machines without exrl
    
    commit 26f843848bae973817b3587780ce6b7b0200d3e4 upstream.
    
    For machines without the exrl instruction the BFP jit generates
    code that uses an "br %r1" instruction located in the lowcore page.
    Unfortunately there is a cut & paste error that puts an additional
    "larl %r1,.+14" instruction in the code that clobbers the branch
    target address in %r1. Remove the larl instruction.
    
    Cc: <stable@vger.kernel.org> # v4.17+
    Fixes: de5cb6eb51 ("s390: use expoline thunks in the BPF JIT")
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba064e81be70ecc013f65f65c6c083ec155afd16
Author: Jann Horn <jannh@google.com>
Date:   Tue Aug 28 20:40:33 2018 +0200

    x86/entry/64: Wipe KASAN stack shadow before rewind_stack_do_exit()
    
    commit f12d11c5c184626b4befdee3d573ec8237405a33 upstream.
    
    Reset the KASAN shadow state of the task stack before rewinding RSP.
    Without this, a kernel oops will leave parts of the stack poisoned, and
    code running under do_exit() can trip over such poisoned regions and cause
    nonsensical false-positive KASAN reports about stack-out-of-bounds bugs.
    
    This does not wipe the exception stacks; if an oops happens on an exception
    stack, it might result in random KASAN false-positives from other tasks
    afterwards. This is probably relatively uninteresting, since if the kernel
    oopses on an exception stack, there are most likely bigger things to worry
    about. It'd be more interesting if vmapped stacks and KASAN were
    compatible, since then handle_stack_overflow() would oops from exception
    stack context.
    
    Fixes: 2deb4be28077 ("x86/dumpstack: When OOPSing, rewind the stack before do_exit()")
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: kasan-dev@googlegroups.com
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180828184033.93712-1-jannh@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef3d45c9576415e657da3eca10216df1bb8d7ffa
Author: Andi Kleen <ak@linux.intel.com>
Date:   Fri Aug 24 10:03:50 2018 -0700

    x86/speculation/l1tf: Increase l1tf memory limit for Nehalem+
    
    commit cc51e5428ea54f575d49cfcede1d4cb3a72b4ec4 upstream.
    
    On Nehalem and newer core CPUs the CPU cache internally uses 44 bits
    physical address space. The L1TF workaround is limited by this internal
    cache address width, and needs to have one bit free there for the
    mitigation to work.
    
    Older client systems report only 36bit physical address space so the range
    check decides that L1TF is not mitigated for a 36bit phys/32GB system with
    some memory holes.
    
    But since these actually have the larger internal cache width this warning
    is bogus because it would only really be needed if the system had more than
    43bits of memory.
    
    Add a new internal x86_cache_bits field. Normally it is the same as the
    physical bits field reported by CPUID, but for Nehalem and newerforce it to
    be at least 44bits.
    
    Change the L1TF memory size warning to use the new cache_bits field to
    avoid bogus warnings and remove the bogus comment about memory size.
    
    Fixes: 17dbca119312 ("x86/speculation/l1tf: Add sysfs reporting for l1tf")
    Reported-by: George Anchev <studio@anchev.net>
    Reported-by: Christopher Snowhill <kode54@gmail.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86@kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: Michael Hocko <mhocko@suse.com>
    Cc: vbabka@suse.cz
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180824170351.34874-1-andi@firstfloor.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8fa9ed041d31cd3a22fcc6498f12a63b70dfbfb
Author: Andi Kleen <ak@linux.intel.com>
Date:   Fri Aug 24 10:03:51 2018 -0700

    x86/spectre: Add missing family 6 check to microcode check
    
    commit 1ab534e85c93945f7862378d8c8adcf408205b19 upstream.
    
    The check for Spectre microcodes does not check for family 6, only the
    model numbers.
    
    Add a family 6 check to avoid ambiguity with other families.
    
    Fixes: a5b296636453 ("x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes")
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86@kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180824170351.34874-2-andi@firstfloor.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c148246b87cef922d1773c21b33970fdde84809c
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Mon Aug 27 14:40:09 2018 -0700

    x86/irqflags: Mark native_restore_fl extern inline
    
    commit 1f59a4581b5ecfe9b4f049a7a2cf904d8352842d upstream.
    
    This should have been marked extern inline in order to pick up the out
    of line definition in arch/x86/kernel/irqflags.S.
    
    Fixes: 208cbb325589 ("x86/irqflags: Provide a declaration for native_save_fl")
    Reported-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180827214011.55428-1-ndesaulniers@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 597ea10b9247ba2964a70fe5b0b6f07639602a79
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 b71230cb582089e2309d25482494bc991eb51371
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 5304f2ac6b6b093a577498a3a00b3aef466b7a0c
Author: Jerome Brunet <jbrunet@baylibre.com>
Date:   Wed Jun 27 17:36:38 2018 +0200

    ASoC: dpcm: don't merge format from invalid codec dai
    
    commit 4febced15ac8ddb9cf3e603edb111842e4863d9a upstream.
    
    When merging codec formats, dpcm_runtime_base_format() should skip
    the codecs which are not supporting the current stream direction.
    
    At the moment, if a BE link has more than one codec, and only one
    of these codecs has no capture DAI, it becomes impossible to start
    a capture stream because the merged format would be 0.
    
    Skipping invalid codec DAI solves the problem.
    
    Fixes: b073ed4e2126 ("ASoC: soc-pcm: DPCM cares BE format")
    Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a92d74e4f311635d12c593b3ef2b66c460a843b
Author: Michael Buesch <m@bues.ch>
Date:   Tue Jul 31 21:14:04 2018 +0200

    b43/leds: Ensure NUL-termination of LED name string
    
    commit 2aa650d1950fce94f696ebd7db30b8830c2c946f upstream.
    
    strncpy might not NUL-terminate the string, if the name equals the buffer size.
    Use strlcpy instead.
    
    Signed-off-by: Michael Buesch <m@bues.ch>
    Cc: stable@vger.kernel.org
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8625b187d7e75af3962d0840e2595f1008ca52b
Author: Michael Buesch <m@bues.ch>
Date:   Tue Jul 31 21:14:16 2018 +0200

    b43legacy/leds: Ensure NUL-termination of LED name string
    
    commit 4d77a89e3924b12f4a5628b21237e57ab4703866 upstream.
    
    strncpy might not NUL-terminate the string, if the name equals the buffer size.
    Use strlcpy instead.
    
    Signed-off-by: Michael Buesch <m@bues.ch>
    Cc: stable@vger.kernel.org
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 268143ee0b8d71975bf16056579da57ee9e91be0
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 73aa57ac7cc31b23e67d885015a61a247b3bc862
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 e0d786f7113bd1298699b7702232bded956bce4e
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 01f0772ad0063fbf34ec04fbac2070937cc3ce06
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 263508c10106a97aba5f3e655bf145f3a671218a
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Thu Jul 26 16:13:11 2018 +0200

    fuse: Fix oops at process_init_reply()
    
    commit e8f3bd773d22f488724dffb886a1618da85c2966 upstream.
    
    syzbot is hitting NULL pointer dereference at process_init_reply().
    This is because deactivate_locked_super() is called before response for
    initial request is processed.
    
    Fix this by aborting and waiting for all requests (including FUSE_INIT)
    before resetting fc->sb.
    
    Original patch by Tetsuo Handa <penguin-kernel@I-love.SKAURA.ne.jp>.
    
    Reported-by: syzbot <syzbot+b62f08f4d5857755e3bc@syzkaller.appspotmail.com>
    Fixes: e27c9d3877a0 ("fuse: fuse: add time_gran to INIT_OUT")
    Cc: <stable@vger.kernel.org> # v3.19
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6465d7688c2d568054c174231fb1d01e3d408e08
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Thu Jul 26 16:13:11 2018 +0200

    fuse: umount should wait for all requests
    
    commit b8f95e5d13f5f0191dcb4b9113113d241636e7cb upstream.
    
    fuse_abort_conn() does not guarantee that all async requests have actually
    finished aborting (i.e. their ->end() function is called).  This could
    actually result in still used inodes after umount.
    
    Add a helper to wait until all requests are fully done.  This is done by
    looking at the "num_waiting" counter.  When this counter drops to zero, we
    can be sure that no more requests are outstanding.
    
    Fixes: 0d8e84b0432b ("fuse: simplify request abort")
    Cc: <stable@vger.kernel.org> # v4.2
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c66025c1085c5983a64ac2a8ed733b8cefe1659d
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Thu Jul 26 16:13:11 2018 +0200

    fuse: fix unlocked access to processing queue
    
    commit 45ff350bbd9d0f0977ff270a0d427c71520c0c37 upstream.
    
    fuse_dev_release() assumes that it's the only one referencing the
    fpq->processing list, but that's not true, since fuse_abort_conn() can be
    doing the same without any serialization between the two.
    
    Fixes: c3696046beb3 ("fuse: separate pqueue for clones")
    Cc: <stable@vger.kernel.org> # v4.2
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 501c4caeb3e437eb18bb95b2c58d153aadc70d6e
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Thu Jul 26 16:13:11 2018 +0200

    fuse: fix double request_end()
    
    commit 87114373ea507895a62afb10d2910bd9adac35a8 upstream.
    
    Refcounting of request is broken when fuse_abort_conn() is called and
    request is on the fpq->io list:
    
     - ref is taken too late
     - then it is not dropped
    
    Fixes: 0d8e84b0432b ("fuse: simplify request abort")
    Cc: <stable@vger.kernel.org> # v4.2
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 68fbfcb7cd4375889bb000d181dcf46aa45d06a9
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Thu Jul 26 16:13:11 2018 +0200

    fuse: fix initial parallel dirops
    
    commit 63576c13bd17848376c8ba4a98f5d5151140c4ac upstream.
    
    If parallel dirops are enabled in FUSE_INIT reply, then first operation may
    leave fi->mutex held.
    
    Reported-by: syzbot <syzbot+3f7b29af1baa9d0a55be@syzkaller.appspotmail.com>
    Fixes: 5c672ab3f0ee ("fuse: serialize dirops by default")
    Cc: <stable@vger.kernel.org> # v4.7
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 67a9e4870ce1afcb66d314c57ca839aff421557e
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 6a2346f3229495f1338b7a2a869efd16822d4ee6
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Tue Aug 14 12:32:19 2018 -0500

    x86/kvm/vmx: Remove duplicate l1d flush definitions
    
    commit 94d7a86c21a3d6046bf4616272313cb7d525075a upstream.
    
    These are already defined higher up in the file.
    
    Fixes: 7db92e165ac8 ("x86/kvm: Move l1tf setup function")
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/d7ca03ae210d07173452aeed85ffe344301219a5.1534253536.git.jpoimboe@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd4574c1b94c7158be372624a970e25c22583423
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date:   Sun Aug 12 20:41:45 2018 +0200

    KVM: x86: SVM: Call x86_spec_ctrl_set_guest/host() with interrupts disabled
    
    commit 024d83cadc6b2af027e473720f3c3da97496c318 upstream.
    
    Mikhail reported the following lockdep splat:
    
    WARNING: possible irq lock inversion dependency detected
    CPU 0/KVM/10284 just changed the state of lock:
      000000000d538a88 (&st->lock){+...}, at:
      speculative_store_bypass_update+0x10b/0x170
    
    but this lock was taken by another, HARDIRQ-safe lock
    in the past:
    
    (&(&sighand->siglock)->rlock){-.-.}
    
       and interrupts could create inverse lock ordering between them.
    
    Possible interrupt unsafe locking scenario:
    
        CPU0                    CPU1
        ----                    ----
       lock(&st->lock);
                               local_irq_disable();
                               lock(&(&sighand->siglock)->rlock);
                               lock(&st->lock);
        <Interrupt>
         lock(&(&sighand->siglock)->rlock);
         *** DEADLOCK ***
    
    The code path which connects those locks is:
    
       speculative_store_bypass_update()
       ssb_prctl_set()
       do_seccomp()
       do_syscall_64()
    
    In svm_vcpu_run() speculative_store_bypass_update() is called with
    interupts enabled via x86_virt_spec_ctrl_set_guest/host().
    
    This is actually a false positive, because GIF=0 so interrupts are
    disabled even if IF=1; however, we can easily move the invocations of
    x86_virt_spec_ctrl_set_guest/host() into the interrupt disabled region to
    cure it, and it's a good idea to keep the GIF=0/IF=1 area as small
    and self-contained as possible.
    
    Fixes: 1f50ddb4f418 ("x86/speculation: Handle HT correctly on AMD")
    Reported-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: kvm@vger.kernel.org
    Cc: x86@kernel.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 62cfd81bcf5425f6db1eed1eef045fbac970ec7e
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 2421738c164f79868d7bbe13a38129e7a3ffb6f3
Author: Vlastimil Babka <vbabka@suse.cz>
Date:   Thu Aug 23 16:21:29 2018 +0200

    x86/speculation/l1tf: Suggest what to do on systems with too much RAM
    
    commit 6a012288d6906fee1dbc244050ade1dafe4a9c8d upstream.
    
    Two users have reported [1] that they have an "extremely unlikely" system
    with more than MAX_PA/2 memory and L1TF mitigation is not effective.
    
    Make the warning more helpful by suggesting the proper mem=X kernel boot
    parameter to make it effective and a link to the L1TF document to help
    decide if the mitigation is worth the unusable RAM.
    
    [1] https://bugzilla.suse.com/show_bug.cgi?id=1105536
    
    Suggested-by: Michal Hocko <mhocko@suse.com>
    Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: "H . Peter Anvin" <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/966571f0-9d7f-43dc-92c6-a10eec7a1254@suse.cz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f8d42d5c02084c936f0a7830e011b4395f30f06e
Author: Vlastimil Babka <vbabka@suse.cz>
Date:   Thu Aug 23 15:44:18 2018 +0200

    x86/speculation/l1tf: Fix off-by-one error when warning that system has too much RAM
    
    commit b0a182f875689647b014bc01d36b340217792852 upstream.
    
    Two users have reported [1] that they have an "extremely unlikely" system
    with more than MAX_PA/2 memory and L1TF mitigation is not effective. In
    fact it's a CPU with 36bits phys limit (64GB) and 32GB memory, but due to
    holes in the e820 map, the main region is almost 500MB over the 32GB limit:
    
    [    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000081effffff] usable
    
    Suggestions to use 'mem=32G' to enable the L1TF mitigation while losing the
    500MB revealed, that there's an off-by-one error in the check in
    l1tf_select_mitigation().
    
    l1tf_pfn_limit() returns the last usable pfn (inclusive) and the range
    check in the mitigation path does not take this into account.
    
    Instead of amending the range check, make l1tf_pfn_limit() return the first
    PFN which is over the limit which is less error prone. Adjust the other
    users accordingly.
    
    [1] https://bugzilla.suse.com/show_bug.cgi?id=1105536
    
    Fixes: 17dbca119312 ("x86/speculation/l1tf: Add sysfs reporting for l1tf")
    Reported-by: George Anchev <studio@anchev.net>
    Reported-by: Christopher Snowhill <kode54@gmail.com>
    Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H . Peter Anvin" <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180823134418.17008-1-vbabka@suse.cz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe0f40491bba65d904edd0147184bd9882cb7b7f
Author: Vlastimil Babka <vbabka@suse.cz>
Date:   Mon Aug 20 11:58:35 2018 +0200

    x86/speculation/l1tf: Fix overflow in l1tf_pfn_limit() on 32bit
    
    commit 9df9516940a61d29aedf4d91b483ca6597e7d480 upstream.
    
    On 32bit PAE kernels on 64bit hardware with enough physical bits,
    l1tf_pfn_limit() will overflow unsigned long. This in turn affects
    max_swapfile_size() and can lead to swapon returning -EINVAL. This has been
    observed in a 32bit guest with 42 bits physical address size, where
    max_swapfile_size() overflows exactly to 1 << 32, thus zero, and produces
    the following warning to dmesg:
    
    [    6.396845] Truncating oversized swap area, only using 0k out of 2047996k
    
    Fix this by using unsigned long long instead.
    
    Fixes: 17dbca119312 ("x86/speculation/l1tf: Add sysfs reporting for l1tf")
    Fixes: 377eeaa8e11f ("x86/speculation/l1tf: Limit swap file size to MAX_PA/2")
    Reported-by: Dominique Leuenberger <dimstar@suse.de>
    Reported-by: Adrian Schroeter <adrian@suse.de>
    Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Andi Kleen <ak@linux.intel.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: "H . Peter Anvin" <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180820095835.5298-1-vbabka@suse.cz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd4fdbb85e7fa74ea88f2db949ceb65f0aa8295b
Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date:   Sun Aug 13 23:14:58 2017 +0200

    sparc: kernel/pcic: silence gcc 7.x warning in pcibios_fixup_bus()
    
    commit 2dc77533f1e495788d73ffa4bee4323b2646d2bb upstream.
    
    When building the kernel for Sparc using gcc 7.x, the build fails
    with:
    
    arch/sparc/kernel/pcic.c: In function ‘pcibios_fixup_bus’:
    arch/sparc/kernel/pcic.c:647:8: error: ‘cmd’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
        cmd |= PCI_COMMAND_IO;
            ^~
    
    The simplified code looks like this:
    
    unsigned int cmd;
    [...]
    pcic_read_config(dev->bus, dev->devfn, PCI_COMMAND, 2, &cmd);
    [...]
    cmd |= PCI_COMMAND_IO;
    
    I.e, the code assumes that pcic_read_config() will always initialize
    cmd. But it's not the case. Looking at pcic_read_config(), if
    bus->number is != 0 or if the size is not one of 1, 2 or 4, *val will
    not be initialized.
    
    As a simple fix, we initialize cmd to zero at the beginning of
    pcibios_fixup_bus.
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7fb227e97df9793c9d7b32962077bb3031cdb85c
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 a22bdef6b9f8482426455190f8c0ce207fcc3613
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 3fedc0cd376b34ad48b5917e64de2a0bba44deb5
Author: Greg Hackmann <ghackmann@android.com>
Date:   Fri Aug 31 13:06:27 2018 -0700

    staging: android: ion: fix ION_IOC_{MAP,SHARE} use-after-free
    
    This patch is 4.9.y only.  Kernels 4.12 and later are unaffected, since
    all the underlying ion_handle infrastructure has been ripped out.
    
    The ION_IOC_{MAP,SHARE} ioctls drop and reacquire client->lock several
    times while operating on one of the client's ion_handles.  This creates
    windows where userspace can call ION_IOC_FREE on the same client with
    the same handle, and effectively make the kernel drop its own reference.
    For example:
    
    - thread A: ION_IOC_ALLOC creates an ion_handle with refcount 1
    - thread A: starts ION_IOC_MAP and increments the refcount to 2
    - thread B: ION_IOC_FREE decrements the refcount to 1
    - thread B: ION_IOC_FREE decrements the refcount to 0 and frees the
                handle
    - thread A: continues ION_IOC_MAP with a dangling ion_handle * to
                freed memory
    
    Fix this by holding client->lock for the duration of
    ION_IOC_{MAP,SHARE}, preventing the concurrent ION_IOC_FREE.  Also
    remove ion_handle_get_by_id(), since there's literally no way to use it
    safely.
    
    Cc: stable@vger.kernel.org # v4.11-
    Signed-off-by: Greg Hackmann <ghackmann@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e85b9fbdf834c92a80e4eb2c2949f4d84e3edeb8
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 e0cfc1c92e290963dc0cda5a1b4cf2a21cd7712d
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Sun Jul 29 15:48:00 2018 -0400

    ext4: sysfs: print ext4_super_block fields as little-endian
    
    commit a4d2aadca184ece182418950d45ba4ffc7b652d2 upstream.
    
    While working on extended rand for last_error/first_error timestamps,
    I noticed that the endianess is wrong; we access the little-endian
    fields in struct ext4_super_block as native-endian when we print them.
    
    This adds a special case in ext4_attr_show() and ext4_attr_store()
    to byteswap the superblock fields if needed.
    
    In older kernels, this code was part of super.c, it got moved to
    sysfs.c in linux-4.4.
    
    Cc: stable@vger.kernel.org
    Fixes: 52c198c6820f ("ext4: add sysfs entry showing whether the fs contains errors")
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c2860f4564dfea57bbd670f3ecaf326b57180c1
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Wed Aug 1 12:36:52 2018 -0400

    ext4: check for NUL characters in extended attribute's name
    
    commit 7d95178c77014dbd8dce36ee40bbbc5e6c121ff5 upstream.
    
    Extended attribute names are defined to be NUL-terminated, so the name
    must not contain a NUL character.  This is important because there are
    places when remove extended attribute, the code uses strlen to
    determine the length of the entry.  That should probably be fixed at
    some point, but code is currently really messy, so the simplest fix
    for now is to simply validate that the extended attributes are sane.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=200401
    
    Reported-by: Wen Xu <wen.xu@gatech.edu>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ad409840b14eedd28d4e057e028515027c03aa1
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 a96371149006a872d00067c6684b487043f367ca
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 52ea94f6b328b8eb0c1a4499b1bc9ea966306cba
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Sat Apr 28 21:38:04 2018 +0900

    kprobes/arm64: Fix %p uses in error messages
    
    commit 0722867dcbc28cc9b269b57acd847c7c1aa638d6 upstream.
    
    Fix %p uses in error messages by removing it because
    those are redundant or meaningless.
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Acked-by: Will Deacon <will.deacon@arm.com>
    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: Thomas Richter <tmricht@linux.ibm.com>
    Cc: Tobin C . Harding <me@tobin.cc>
    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/152491908405.9916.12425053035317241111.stgit@devbox
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 893b282b7e4b88f2405cacf35e7109aab1cefe21
Author: Steve French <stfrench@microsoft.com>
Date:   Fri Jul 27 22:01:49 2018 -0500

    smb3: don't request leases in symlink creation and query
    
    commit 22783155f4bf956c346a81624ec9258930a6fe06 upstream.
    
    Fixes problem pointed out by Pavel in discussions about commit
    729c0c9dd55204f0c9a823ac8a7bfa83d36c7e78
    
    Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
    CC: Stable <stable@vger.kernel.org> # 3.18.x+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 707b0d2d9d3ae4b9cde197ffa1b237e29833b2a1
Author: Steve French <stfrench@microsoft.com>
Date:   Thu Aug 2 20:28:18 2018 -0500

    smb3: Do not send SMB3 SET_INFO if nothing changed
    
    commit fd09b7d3b352105f08b8e02f7afecf7e816380ef upstream.
    
    An earlier commit had a typo which prevented the
    optimization from working:
    
    commit 18dd8e1a65dd ("Do not send SMB3 SET_INFO request if nothing is changing")
    
    Thank you to Metze for noticing this.  Also clear a
    reserved field in the FILE_BASIC_INFO struct we send
    that should be zero (all the other fields in that
    struct were set or cleared explicitly already in
    cifs_set_file_info).
    
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    CC: Stable <stable@vger.kernel.org> # 4.9.x+
    Reported-by: Stefan Metzmacher <metze@samba.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a94703ff8e3647f8a9a3a92a468450299a7b77e9
Author: Steve French <stfrench@microsoft.com>
Date:   Thu Aug 9 14:33:12 2018 -0500

    smb3: enumerating snapshots was leaving part of the data off end
    
    commit e02789a53d71334b067ad72eee5d4e88a0158083 upstream.
    
    When enumerating snapshots, the last few bytes of the final
    snapshot could be left off since we were miscalculating the
    length returned (leaving off the sizeof struct SRV_SNAPSHOT_ARRAY)
    See MS-SMB2 section 2.2.32.2. In addition fixup the length used
    to allow smaller buffer to be passed in, in order to allow
    returning the size of the whole snapshot array more easily.
    
    Sample userspace output with a kernel patched with this
    (mounted to a Windows volume with two snapshots).
    Before this patch, the second snapshot would be missing a
    few bytes at the end.
    
    ~/cifs-2.6# ~/enum-snapshots /mnt/file
    press enter to issue the ioctl to retrieve snapshot information ...
    
    size of snapshot array = 102
    Num snapshots: 2 Num returned: 2 Array Size: 102
    
    Snapshot 0:@GMT-2018.06.30-19.34.17
    Snapshot 1:@GMT-2018.06.30-19.33.37
    
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c773c4fbb22b8e31699c547b28ec3fb51555a810
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Thu Aug 23 12:24:02 2018 +0200

    cifs: check kmalloc before use
    
    commit 126c97f4d0d1b5b956e8b0740c81a2b2a2ae548c upstream.
    
    The kmalloc was not being checked - if it fails issue a warning
    and return -ENOMEM to the caller.
    
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Fixes: b8da344b74c8 ("cifs: dynamic allocation of ntlmssp blob")
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    cc: Stable <stable@vger.kernel.org>`
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fbd314e29d27cb38f56e528ef06fde2b96daf7d1
Author: Steve French <stfrench@microsoft.com>
Date:   Thu Jun 28 18:46:40 2018 -0500

    cifs: add missing debug entries for kconfig options
    
    commit 950132afd59385caf6e2b84e5235d069fa10681d upstream.
    
    /proc/fs/cifs/DebugData displays the features (Kconfig options)
    used to build cifs.ko but it was missing some, and needed comma
    separator.  These can be useful in debugging certain problems
    so we know which optional features were enabled in the user's build.
    Also clarify them, by making them more closely match the
    corresponding CONFIG_CIFS_* parm.
    
    Old format:
    Features: dfs fscache posix spnego xattr acl
    
    New format:
    Features: DFS,FSCACHE,SMB_DIRECT,STATS,DEBUG2,ALLOW_INSECURE_LEGACY,CIFS_POSIX,UPCALL(SPNEGO),XATTR,ACL
    
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    Reviewed-by: Paulo Alcantara <palcantara@suse.de>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b653d47ba52d11457397a84c32c3020c32e2c49d
Author: Alexander Usyskin <alexander.usyskin@intel.com>
Date:   Mon Jul 9 12:21:44 2018 +0300

    mei: don't update offset in write
    
    commit a103af1b64d74853a5e08ca6c86aeb0e5c6ca4f1 upstream.
    
    MEI enables writes of complete messages only
    while read can be performed in parts, hence
    write should not update the file offset to
    not break interleaving partial reads with writes.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8e519f8ec33ce670abef2cfc0613ec26319841e
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 fe0034a08b49a25ad91376e03045dc2e7bcf3647
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>

commit af669a0b2d165d2a88bff0f66776327b00e7ed98
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 b88f17ee2fe315bbff767cdcf4ad6e1c952ee0ca
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 a8871571f3561251f5f92d8cb0d2cd4f11d38123
Author: Johannes Thumshirn <jthumshirn@suse.de>
Date:   Tue Jul 31 15:46:03 2018 +0200

    scsi: fcoe: clear FC_RP_STARTED flags when receiving a LOGO
    
    [ Upstream commit 1550ec458e0cf1a40a170ab1f4c46e3f52860f65 ]
    
    When receiving a LOGO request we forget to clear the FC_RP_STARTED flag
    before starting the rport delete routine.
    
    As the started flag was not cleared, we're not deleting the rport but
    waiting for a restart and thus are keeping the reference count of the rdata
    object at 1.
    
    This leads to the following kmemleak report:
    unreferenced object 0xffff88006542aa00 (size 512):
      comm "kworker/0:2", pid 24, jiffies 4294899222 (age 226.880s)
      hex dump (first 32 bytes):
        68 96 fe 65 00 88 ff ff 00 00 00 00 00 00 00 00  h..e............
        01 00 00 00 08 00 00 00 02 c5 45 24 ac b8 00 10  ..........E$....
      backtrace:
        [<(____ptrval____)>] fcoe_ctlr_vn_add.isra.5+0x7f/0x770 [libfcoe]
        [<(____ptrval____)>] fcoe_ctlr_vn_recv+0x12af/0x27f0 [libfcoe]
        [<(____ptrval____)>] fcoe_ctlr_recv_work+0xd01/0x32f0 [libfcoe]
        [<(____ptrval____)>] process_one_work+0x7ff/0x1420
        [<(____ptrval____)>] worker_thread+0x87/0xef0
        [<(____ptrval____)>] kthread+0x2db/0x390
        [<(____ptrval____)>] ret_from_fork+0x35/0x40
        [<(____ptrval____)>] 0xffffffffffffffff
    
    Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
    Reported-by: ard <ard@kwaak.net>
    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 cfbe3cabb589835e1426f0ac8339c19cf22eb005
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 f108e46efaac72dedc96204c9f235d6aa31c80fd
Author: Kirill Tkhai <ktkhai@virtuozzo.com>
Date:   Thu Aug 2 15:36:01 2018 -0700

    memcg: remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure
    
    [ Upstream commit 7e97de0b033bcac4fa9a35cef72e0c06e6a22c67 ]
    
    In case of memcg_online_kmem() failure, memcg_cgroup::id remains hashed
    in mem_cgroup_idr even after memcg memory is freed.  This leads to leak
    of ID in mem_cgroup_idr.
    
    This patch adds removal into mem_cgroup_css_alloc(), which fixes the
    problem.  For better readability, it adds a generic helper which is used
    in mem_cgroup_alloc() and mem_cgroup_id_put_many() as well.
    
    Link: http://lkml.kernel.org/r/152354470916.22460.14397070748001974638.stgit@localhost.localdomain
    Fixes 73f576c04b94 ("mm: memcontrol: fix cgroup creation failure after many small jobs")
    Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Acked-by: Vladimir Davydov <vdavydov.dev@gmail.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    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 a6c6516eee1591bc09cf3dd839f71e023dae5ddf
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 6b9882c69ee12e1a1437e3ea9fa71edb1d36313f
Author: Phillip Lougher <phillip@squashfs.org.uk>
Date:   Thu Aug 2 16:45:15 2018 +0100

    Squashfs: Compute expected length from inode size rather than block length
    
    [ Upstream commit a3f94cb99a854fa381fe7fadd97c4f61633717a5 ]
    
    Previously in squashfs_readpage() when copying data into the page
    cache, it used the length of the datablock read from the filesystem
    (after decompression).  However, if the filesystem has been corrupted
    this data block may be short, which will leave pages unfilled.
    
    The fix for this is to compute the expected number of bytes to copy
    from the inode size, and use this to detect if the block is short.
    
    Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
    Tested-by: Willy Tarreau <w@1wt.eu>
    Cc: Анатолий Тросиненко <anatoly.trosinenko@gmail.com>
    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 ab99a2bac2ea8ff6fc55437523e29a984040f505
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Aug 1 10:38:43 2018 -0700

    squashfs metadata 2: electric boogaloo
    
    [ Upstream commit cdbb65c4c7ead680ebe54f4f0d486e2847a500ea ]
    
    Anatoly continues to find issues with fuzzed squashfs images.
    
    This time, corrupt, missing, or undersized data for the page filling
    wasn't checked for, because the squashfs_{copy,read}_cache() functions
    did the squashfs_copy_data() call without checking the resulting data
    size.
    
    Which could result in the page cache pages being incompletely filled in,
    and no error indication to the user space reading garbage data.
    
    So make a helper function for the "fill in pages" case, because the
    exact same incomplete sequence existed in two places.
    
    [ I should have made a squashfs branch for these things, but I didn't
      intend to start doing them in the first place.
    
      My historical connection through cramfs is why I got into looking at
      these issues at all, and every time I (continue to) think it's a
      one-off.
    
      Because _this_ time is always the last time. Right?   - Linus ]
    
    Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
    Tested-by: Willy Tarreau <w@1wt.eu>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Phillip Lougher <phillip@squashfs.org.uk>
    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 8620db886d78954e656a47320f5d3593efac992d
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 6e64609123832dfa093ae8cce3d15d116ab3383c
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 fcc80f8ed96db26ffbf4a7c5049b7e99b0bcedbe
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun Jul 29 11:10:51 2018 -0700

    arc: [plat-eznps] fix data type errors in platform headers
    
    [ Upstream commit b1f32ce1c3d2c11959b7e6a2c58dc5197c581966 ]
    
    Add <linux/types.h> to fix build errors.
    Both ctop.h and <soc/nps/common.h> use u32 types and cause many
    errors.
    
    Examples:
    ../include/soc/nps/common.h:71:4: error: unknown type name 'u32'
        u32 __reserved:20, cluster:4, core:4, thread:4;
    ../include/soc/nps/common.h:76:3: error: unknown type name 'u32'
       u32 value;
    ../include/soc/nps/common.h:124:4: error: unknown type name 'u32'
        u32 base:8, cl_x:4, cl_y:4,
    ../include/soc/nps/common.h:127:3: error: unknown type name 'u32'
       u32 value;
    
    ../arch/arc/plat-eznps/include/plat/ctop.h:83:4: error: unknown type name 'u32'
        u32 gen:1, gdis:1, clk_gate_dis:1, asb:1,
    ../arch/arc/plat-eznps/include/plat/ctop.h:86:3: error: unknown type name 'u32'
       u32 value;
    ../arch/arc/plat-eznps/include/plat/ctop.h:93:4: error: unknown type name 'u32'
        u32 csa:22, dmsid:6, __reserved:3, cs:1;
    ../arch/arc/plat-eznps/include/plat/ctop.h:95:3: error: unknown type name 'u32'
       u32 value;
    
    Cc: linux-snps-arc@lists.infradead.org
    Cc: Ofer Levi <oferle@mellanox.com>
    Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    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 9bf9e4ad5ebef0dd00327369f804d78b166e5b61
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 5f56ddcc078dd556ee206b44bfc8c0f13f9f50b5
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 d0995e103e19a26f71a8e3c45f721d6f3af5f202
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 b55993f4b2eb14e34ccede29de892471588f2bb1
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 579381fca56b15cad7b809ab6e8a54d3d9cdcd17
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 6194fba249cd4ffc05d2b6311b5364d5b8e57338
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 75960a41a598cd279d70a6d9d92e77896c6b8248
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 1a0ffb53002914c72b358365240bedc67dc6a6a1
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 f3c28466520c5436decdae19b5d4515bad07d956
Author: Kees Cook <keescook@chromium.org>
Date:   Tue Jul 24 16:08:27 2018 -0700

    x86/boot: Fix if_changed build flip/flop bug
    
    [ Upstream commit 92a4728608a8fd228c572bc8ff50dd98aa0ddf2a ]
    
    Dirk Gouders reported that two consecutive "make" invocations on an
    already compiled tree will show alternating behaviors:
    
    $ make
      CALL    scripts/checksyscalls.sh
      DESCEND  objtool
      CHK     include/generated/compile.h
      DATAREL arch/x86/boot/compressed/vmlinux
    Kernel: arch/x86/boot/bzImage is ready  (#48)
      Building modules, stage 2.
      MODPOST 165 modules
    
    $ make
      CALL    scripts/checksyscalls.sh
      DESCEND  objtool
      CHK     include/generated/compile.h
      LD      arch/x86/boot/compressed/vmlinux
      ZOFFSET arch/x86/boot/zoffset.h
      AS      arch/x86/boot/header.o
      LD      arch/x86/boot/setup.elf
      OBJCOPY arch/x86/boot/setup.bin
      OBJCOPY arch/x86/boot/vmlinux.bin
      BUILD   arch/x86/boot/bzImage
    Setup is 15644 bytes (padded to 15872 bytes).
    System is 6663 kB
    CRC 3eb90f40
    Kernel: arch/x86/boot/bzImage is ready  (#48)
      Building modules, stage 2.
      MODPOST 165 modules
    
    He bisected it back to:
    
        commit 98f78525371b ("x86/boot: Refuse to build with data relocations")
    
    The root cause was the use of the "if_changed" kbuild function multiple
    times for the same target. It was designed to only be used once per
    target, otherwise it will effectively always trigger, flipping back and
    forth between the two commands getting recorded by "if_changed". Instead,
    this patch merges the two commands into a single function to get stable
    build artifacts (i.e. .vmlinux.cmd), and a single build behavior.
    
    Bisected-and-Reported-by: Dirk Gouders <dirk@gouders.net>
    Fix-Suggested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20180724230827.GA37823@beast
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 88adb09fe82652a87d6fdf7a721942210719cdee
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 d638725a56a38b6976d96c21564db6b8e5613bc4
Author: Aleksander Morgado <aleksander@aleksander.es>
Date:   Tue Jul 24 01:31:07 2018 +0200

    qmi_wwan: fix interface number for DW5821e production firmware
    
    [ Upstream commit f25e1392fdb556290957142ac2da33a02cbff403 ]
    
    The original mapping for the DW5821e was done using a development
    version of the firmware. Confirmed with the vendor that the final
    USB layout ends up exposing the QMI control/data ports in USB
    config #1, interface #0, not in interface #1 (which is now a HID
    interface).
    
    T:  Bus=01 Lev=03 Prnt=04 Port=00 Cnt=01 Dev#= 16 Spd=480 MxCh= 0
    D:  Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  2
    P:  Vendor=413c ProdID=81d7 Rev=03.18
    S:  Manufacturer=DELL
    S:  Product=DW5821e Snapdragon X20 LTE
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    
    Fixes: e7e197edd09c25 ("qmi_wwan: add support for the Dell Wireless 5821e module")
    Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    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 32680dc030c1ef6a1a9751be65c1eb7566b5fbdc
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 d3313fe179a2f221b9a9b309819157acc39fdcda
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 b3c2509872504a99eec049fac370906bf1864539
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Fri Jul 20 10:39:07 2018 +0200

    perf/x86/amd/ibs: Don't access non-started event
    
    [ Upstream commit d2753e6b4882a637a0e8fb3b9c2e15f33265300e ]
    
    Paul Menzel reported the following bug:
    
    > Enabling the undefined behavior sanitizer and building GNU/Linux 4.18-rc5+
    > (with some unrelated commits) with GCC 8.1.0 from Debian Sid/unstable, the
    > warning below is shown.
    >
    > > [    2.111913]
    > > ================================================================================
    > > [    2.111917] UBSAN: Undefined behaviour in arch/x86/events/amd/ibs.c:582:24
    > > [    2.111919] member access within null pointer of type 'struct perf_event'
    > > [    2.111926] CPU: 0 PID: 144 Comm: udevadm Not tainted 4.18.0-rc5-00316-g4864b68cedf2 #104
    > > [    2.111928] Hardware name: ASROCK E350M1/E350M1, BIOS TIMELESS 01/01/1970
    > > [    2.111930] Call Trace:
    > > [    2.111943]  dump_stack+0x55/0x89
    > > [    2.111949]  ubsan_epilogue+0xb/0x33
    > > [    2.111953]  handle_null_ptr_deref+0x7f/0x90
    > > [    2.111958]  __ubsan_handle_type_mismatch_v1+0x55/0x60
    > > [    2.111964]  perf_ibs_handle_irq+0x596/0x620
    
    The code dereferences event before checking the STARTED bit. Patch
    below should cure the issue.
    
    The warning should not trigger, if I analyzed the thing correctly.
    (And Paul's testing confirms this.)
    
    Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Tested-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Paul Menzel <pmenzel+linux-x86@molgen.mpg.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1807200958390.1580@nanos.tec.linutronix.de
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c5d7e5e83b2f94deacf891fba538a93ee9a6052c
Author: Alexander Sverdlin <alexander.sverdlin@nokia.com>
Date:   Fri Jul 13 17:20:17 2018 +0200

    i2c: davinci: Avoid zero value of CLKH
    
    [ Upstream commit cc8de9a68599b261244ea453b38678229f06ada7 ]
    
    If CLKH is set to 0 I2C clock is not generated at all, so avoid this value
    and stretch the clock in this case.
    
    Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
    Acked-by: Sekhar Nori <nsekhar@ti.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 82ad267b27b8c874617765eaa883885fecc12dc0
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 76a4e0e6c4e34286140fe1f827facd90268d32d9
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sat Jul 21 12:59:25 2018 -0700

    net: prevent ISA drivers from building on PPC32
    
    [ Upstream commit c9ce1fa1c24b08e13c2a3b5b1f94a19c9eaa982c ]
    
    Prevent drivers from building on PPC32 if they use isa_bus_to_virt(),
    isa_virt_to_bus(), or isa_page_to_bus(), which are not available and
    thus cause build errors.
    
    ../drivers/net/ethernet/3com/3c515.c: In function 'corkscrew_open':
    ../drivers/net/ethernet/3com/3c515.c:824:9: error: implicit declaration of function 'isa_virt_to_bus'; did you mean 'virt_to_bus'? [-Werror=implicit-function-declaration]
    
    ../drivers/net/ethernet/amd/lance.c: In function 'lance_rx':
    ../drivers/net/ethernet/amd/lance.c:1203:23: error: implicit declaration of function 'isa_bus_to_virt'; did you mean 'bus_to_virt'? [-Werror=implicit-function-declaration]
    
    ../drivers/net/ethernet/amd/ni65.c: In function 'ni65_init_lance':
    ../drivers/net/ethernet/amd/ni65.c:585:20: error: implicit declaration of function 'isa_virt_to_bus'; did you mean 'virt_to_bus'? [-Werror=implicit-function-declaration]
    
    ../drivers/net/ethernet/cirrus/cs89x0.c: In function 'net_open':
    ../drivers/net/ethernet/cirrus/cs89x0.c:897:20: error: implicit declaration of function 'isa_virt_to_bus'; did you mean 'virt_to_bus'? [-Werror=implicit-function-declaration]
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Suggested-by: Michael Ellerman <mpe@ellerman.id.au>
    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 0924ac4e7b3138959e9ece8621cd9c562fc511e3
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 13afaaecac6e015068fec10bc47c701d31a10695
Author: Sudarsana Reddy Kalluru <sudarsana.kalluru@cavium.com>
Date:   Wed Jul 18 22:50:04 2018 -0700

    qed: Correct Multicast API to reflect existence of 256 approximate buckets.
    
    [ Upstream commit 25c020a90919632b3425c19dc09188d56b9ed59a ]
    
    FW hsi contains 256 approximation buckets which are split in ramrod into
    eight u32 values, but driver is using eight 'unsigned long' variables.
    
    This patch fixes the mcast logic by making the API utilize u32.
    
    Fixes: 83aeb933 ("qed*: Trivial modifications")
    Signed-off-by: Sudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
    Signed-off-by: Ariel Elior <ariel.elior@cavium.com>
    Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4646860d187c19f62c84647e966f66de1063953b
Author: Sudarsana Reddy Kalluru <sudarsana.kalluru@cavium.com>
Date:   Wed Jul 18 22:50:03 2018 -0700

    qed: Fix possible race for the link state value.
    
    [ Upstream commit 58874c7b246109d8efb2b0099d1aa296d6bfc3fa ]
    
    There's a possible race where driver can read link status in mid-transition
    and see that virtual-link is up yet speed is 0. Since in this
    mid-transition we're guaranteed to see a mailbox from MFW soon, we can
    afford to treat this as link down.
    
    Fixes: cc875c2e ("qed: Add link support")
    Signed-off-by: Sudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
    Signed-off-by: Ariel Elior <ariel.elior@cavium.com>
    Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eca9953f31a7365767c17a4018c058951d2b056f
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 354d5a345b910fc0d4b74f0f7bec1bc6e7b6ea42
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 6e9261aac3d8216563647e0c671750783ccf1993
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Thu Jul 19 18:18:35 2018 +0200

    bpf, ppc64: fix unexpected r0=0 exit path inside bpf_xadd
    
    [ Upstream commit b9c1e60e7bf4e64ac1b4f4d6d593f0bb57886973 ]
    
    None of the JITs is allowed to implement exit paths from the BPF
    insn mappings other than BPF_JMP | BPF_EXIT. In the BPF core code
    we have a couple of rewrites in eBPF (e.g. LD_ABS / LD_IND) and
    in eBPF to cBPF translation to retain old existing behavior where
    exceptions may occur; they are also tightly controlled by the
    verifier where it disallows some of the features such as BPF to
    BPF calls when legacy LD_ABS / LD_IND ops are present in the BPF
    program. During recent review of all BPF_XADD JIT implementations
    I noticed that the ppc64 one is buggy in that it contains two
    jumps to exit paths. This is problematic as this can bypass verifier
    expectations e.g. pointed out in commit f6b1b3bf0d5f ("bpf: fix
    subprog verifier bypass by div/mod by 0 exception"). The first
    exit path is obsoleted by the fix in ca36960211eb ("bpf: allow xadd
    only on aligned memory") anyway, and for the second one we need to
    do a fetch, add and store loop if the reservation from lwarx/ldarx
    was lost in the meantime.
    
    Fixes: 156d0e290e96 ("powerpc/ebpf/jit: Implement JIT compiler for extended BPF")
    Reviewed-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Reviewed-by: Sandipan Das <sandipan@linux.vnet.ibm.com>
    Tested-by: Sandipan Das <sandipan@linux.vnet.ibm.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2838a2262fdf216c090279956375bacb2dabbba
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 3b7c96a9b0ae1c4973d93a4a30939462153c9d73
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 2b4fd19878c75b13c45cdd2c4a3478f1e687373e
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 02e8b4fb4b50de59f79aa5e31d7a9932acf47167
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 62dd6eda364145ddc918e771a4fc47017ce809cb
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 13f03bd19c9b7af30ddd12283a6345b0f88eb7e0
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 cb94b5ea2455abc66740cf7b6e4b50e53254891a
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 0a04fdb19d03408ad9bc7aecbbdb53667243ae35
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 fa1c6d2371b170a8c89de50b25612673080620c8
Author: Sean Paul <seanpaul@chromium.org>
Date:   Tue Jul 3 12:56:03 2018 -0400

    drm/bridge: adv7511: Reset registers on hotplug
    
    [ Upstream commit 5f3417569165a8ee57654217f73e0160312f409c ]
    
    The bridge loses its hw state when the cable is unplugged. If we detect
    this case in the hpd handler, reset its state.
    
    Reported-by: Rob Clark <robdclark@gmail.com>
    Tested-by: Rob Clark <robdclark@gmail.com>
    Reviewed-by: Archit Taneja <architt@codeaurora.org>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180703165648.120401-1-seanpaul@chromium.org
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fd089723f6f4bd77c67134c3643b37033e61b4d
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 f1ddbb19469bf071453928c9776e2aa28507a9e1
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 301a6da4c8bee125c0e2e2fa4380a2cf9619c6cc
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 590f312a78bf86a1c9230ef6bb43795ac71e14b1
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 ce723f865c98ac68e37815c6f9000f6ce5d2b3dd
Author: Eyal Birger <eyal.birger@gmail.com>
Date:   Thu Jun 7 10:11:02 2018 +0300

    vti6: fix PMTU caching and reporting on xmit
    
    [ Upstream commit d6990976af7c5d8f55903bfb4289b6fb030bf754 ]
    
    When setting the skb->dst before doing the MTU check, the route PMTU
    caching and reporting is done on the new dst which is about to be
    released.
    
    Instead, PMTU handling should be done using the original dst.
    
    This is aligned with IPv4 VTI.
    
    Fixes: ccd740cbc6 ("vti6: Add pmtu handling to vti6_xmit.")
    Signed-off-by: Eyal Birger <eyal.birger@gmail.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>