commit 04a3fbba60ae3422f50a63b1672970a6eb0f7018
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Oct 10 08:56:08 2018 +0200

    Linux 4.18.13

commit d9ef158adf04b81772a7e9d682a054614ebac2fd
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Oct 9 17:08:58 2018 +0200

    Revert "drm/amd/pp: Send khz clock values to DC for smu7/8"
    
    This reverts commit 93b100ddda3be284be160e9ccba28c7f8f21ab73 which was
    commit c3cb424a086921f6bb0449b10d998352a756d6d5 upstream.
    
    It was not needed for 4.18.y and caused problems there.
    
    Reported-by: Alexander Deucher <Alexander.Deucher@amd.com>
    Cc: Harry Wentland <harry.wentland@amd.com>
    Cc: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aad46f77ece040dce2a082b1aabae72bd6899561
Author: Mike Snitzer <snitzer@redhat.com>
Date:   Thu Sep 13 21:16:20 2018 -0400

    dm thin metadata: fix __udivdi3 undefined on 32-bit
    
    commit 013ad043906b2befd4a9bfb06219ed9fedd92716 upstream.
    
    sector_div() is only viable for use with sector_t.
    dm_block_t is typedef'd to uint64_t -- so use div_u64() instead.
    
    Fixes: 3ab918281 ("dm thin metadata: try to avoid ever aborting transactions")
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5319425024ab74312bdfd0f4eaee7e280812c1df
Author: Song Liu <songliubraving@fb.com>
Date:   Wed Oct 3 11:30:35 2018 -0700

    ixgbe: check return value of napi_complete_done()
    
    commit 4233cfe6ec4683497d7318f55ce7617e97f2e610 upstream.
    
    The NIC driver should only enable interrupts when napi_complete_done()
    returns true. This patch adds the check for ixgbe.
    
    Cc: stable@vger.kernel.org # 4.10+
    Suggested-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Song Liu <songliubraving@fb.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2083ef10dedd1afb7eff67bbb5624d181aee7c2c
Author: Anisse Astier <anisse@astier.eu>
Date:   Wed Sep 12 15:07:05 2018 +0200

    HID: i2c-hid: disable runtime PM operations on hantick touchpad
    
    commit 807588ac92018bde88a1958f546438e840eb0158 upstream.
    
    This hantick HTIX5288 touchpad can quickly fall in a wrong state if
    there are too many open/close operations. This will either make it stop
    reporting any input, or will shift all the input reads by a few bytes,
    making it impossible to decode.
    
    Here, we never release the probed touchpad runtime pm while the driver
    is loaded, which should disable all runtime pm suspend/resumes.
    
    This fast repetition of sleep/wakeup is also more likely to happen when
    using runtime PM, which is why the quirk is done there, and not for all
    power downs, which would include suspend or module removal.
    
    Signed-off-by: Anisse Astier <anisse@astier.eu>
    Cc: stable@vger.kernel.org
    Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Tested-by: Philip Müller <philm@manjaro.org>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f52ab52773680d116bcadf38feaa448d313f397a
Author: Ashish Samant <ashish.samant@oracle.com>
Date:   Fri Oct 5 15:52:15 2018 -0700

    ocfs2: fix locking for res->tracking and dlm->tracking_list
    
    commit cbe355f57c8074bc4f452e5b6e35509044c6fa23 upstream.
    
    In dlm_init_lockres() we access and modify res->tracking and
    dlm->tracking_list without holding dlm->track_lock.  This can cause list
    corruptions and can end up in kernel panic.
    
    Fix this by locking res->tracking and dlm->tracking_list with
    dlm->track_lock instead of dlm->spinlock.
    
    Link: http://lkml.kernel.org/r/1529951192-4686-1-git-send-email-ashish.samant@oracle.com
    Signed-off-by: Ashish Samant <ashish.samant@oracle.com>
    Reviewed-by: Changwei Ge <ge.changwei@h3c.com>
    Acked-by: Joseph Qi <jiangqi903@gmail.com>
    Acked-by: Jun Piao <piaojun@huawei.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <ge.changwei@h3c.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b89f7ad519d8e89e1602901c5a56212080ed455
Author: Jann Horn <jannh@google.com>
Date:   Fri Oct 5 15:51:58 2018 -0700

    proc: restrict kernel stack dumps to root
    
    commit f8a00cef17206ecd1b30d3d9f99e10d9fa707aa7 upstream.
    
    Currently, you can use /proc/self/task/*/stack to cause a stack walk on
    a task you control while it is running on another CPU.  That means that
    the stack can change under the stack walker.  The stack walker does
    have guards against going completely off the rails and into random
    kernel memory, but it can interpret random data from your kernel stack
    as instruction pointers and stack pointers.  This can cause exposure of
    kernel stack contents to userspace.
    
    Restrict the ability to inspect kernel stacks of arbitrary tasks to root
    in order to prevent a local attacker from exploiting racy stack unwinding
    to leak kernel task stack contents.  See the added comment for a longer
    rationale.
    
    There don't seem to be any users of this userspace API that can't
    gracefully bail out if reading from the file fails.  Therefore, I believe
    that this change is unlikely to break things.  In the case that this patch
    does end up needing a revert, the next-best solution might be to fake a
    single-entry stack based on wchan.
    
    Link: http://lkml.kernel.org/r/20180927153316.200286-1-jannh@google.com
    Fixes: 2ec220e27f50 ("proc: add /proc/*/stack")
    Signed-off-by: Jann Horn <jannh@google.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Ken Chen <kenchen@google.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Laura Abbott <labbott@redhat.com>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "H . Peter Anvin" <hpa@zytor.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a2cfcdd7b6e835bf9fa256e1f41809915def679
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Mon Sep 17 04:14:55 2018 +0000

    tools: hv: fcopy: set 'error' in case an unknown operation was requested
    
    commit c2d68afba86d1ff01e7300c68bc16a9234dcd8e9 upstream.
    
    'error' variable is left uninitialized in case we see an unknown operation.
    As we don't immediately return and proceed to pwrite() we need to set it
    to something, HV_E_FAIL sounds good enough.
    
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 54949880202494a0f443ad046d1a8d6a72d6835b
Author: Dexuan Cui <decui@microsoft.com>
Date:   Mon Sep 17 04:14:54 2018 +0000

    Drivers: hv: vmbus: Use get/put_cpu() in vmbus_connect()
    
    commit 41e270f6898e7502be9fd6920ee0a108ca259d36 upstream.
    
    With CONFIG_DEBUG_PREEMPT=y, I always see this warning:
    BUG: using smp_processor_id() in preemptible [00000000]
    
    Fix the false warning by using get/put_cpu().
    
    Here vmbus_connect() sends a message to the host and waits for the
    host's response. The host will deliver the response message and an
    interrupt on CPU msg->target_vcpu, and later the interrupt handler
    will wake up vmbus_connect(). vmbus_connect() doesn't really have
    to run on the same cpu as CPU msg->target_vcpu, so it's safe to
    call put_cpu() just here.
    
    Signed-off-by: Dexuan Cui <decui@microsoft.com>
    Cc: stable@vger.kernel.org
    Cc: K. Y. Srinivasan <kys@microsoft.com>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: Stephen Hemminger <sthemmin@microsoft.com>
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 116337deb270a9cd8838adb55b7b09a95a6a565d
Author: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Date:   Thu Sep 13 15:37:04 2018 +0200

    gpiolib: Free the last requested descriptor
    
    commit 19a4fbffc94e41abaa2a623a25ce2641d69eccf0 upstream.
    
    The current code only frees N-1 gpios if an error occurs during
    gpiod_set_transitory, gpiod_direction_output or gpiod_direction_input.
    Leading to gpios that cannot be used by userspace nor other drivers.
    
    Cc: Timur Tabi <timur@codeaurora.org>
    Cc: stable@vger.kernel.org
    Fixes: ab3dbcf78f60f46d ("gpioib: do not free unrequested descriptors)
    Reported-by: Jan Lorenzen <jl@newtec.dk>
    Reported-by: Jim Paris <jim@jtan.com>
    Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 277f800a21862ef953df07f5fc1948523113d194
Author: Horia Geantă <horia.geanta@nxp.com>
Date:   Fri Sep 14 18:34:28 2018 +0300

    crypto: caam/jr - fix ablkcipher_edesc pointer arithmetic
    
    commit 13cc6f48c7434ce46ba6dbc90003a136a263d75a upstream.
    
    In some cases the zero-length hw_desc array at the end of
    ablkcipher_edesc struct requires for 4B of tail padding.
    
    Due to tail padding and the way pointers to S/G table and IV
    are computed:
            edesc->sec4_sg = (void *)edesc + sizeof(struct ablkcipher_edesc) +
                             desc_bytes;
            iv = (u8 *)edesc->hw_desc + desc_bytes + sec4_sg_bytes;
    first 4 bytes of IV are overwritten by S/G table.
    
    Update computation of pointer to S/G table to rely on offset of hw_desc
    member and not on sizeof() operator.
    
    Cc: <stable@vger.kernel.org> # 4.13+
    Fixes: 115957bb3e59 ("crypto: caam - fix IV DMA mapping and updating")
    Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6479a45bd2940f24cdfd41859d067a9687f5bea
Author: Leonard Crestez <leonard.crestez@nxp.com>
Date:   Fri Sep 21 18:03:18 2018 +0300

    crypto: mxs-dcp - Fix wait logic on chan threads
    
    commit d80771c08363ad7fbf0f56f5301e7ca65065c582 upstream.
    
    When compiling with CONFIG_DEBUG_ATOMIC_SLEEP=y the mxs-dcp driver
    prints warnings such as:
    
    WARNING: CPU: 0 PID: 120 at kernel/sched/core.c:7736 __might_sleep+0x98/0x9c
    do not call blocking ops when !TASK_RUNNING; state=1 set at [<8081978c>] dcp_chan_thread_sha+0x3c/0x2ec
    
    The problem is that blocking ops will manipulate current->state
    themselves so it is not allowed to call them between
    set_current_state(TASK_INTERRUPTIBLE) and schedule().
    
    Fix this by converting the per-chan mutex to a spinlock (it only
    protects tiny list ops anyway) and rearranging the wait logic so that
    callbacks are called current->state as TASK_RUNNING. Those callbacks
    will indeed call blocking ops themselves so this is required.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27dff727876e4df82b548716c9d73bd40548f449
Author: Harsh Jain <harsh@chelsio.com>
Date:   Wed Sep 19 22:42:16 2018 +0530

    crypto: chelsio - Fix memory corruption in DMA Mapped buffers.
    
    commit add92a817e60e308a419693413a38d9d1e663aff upstream.
    
    Update PCI Id in "cpl_rx_phys_dsgl" header. In case pci_chan_id and
    tx_chan_id are not derived from same queue, H/W can send request
    completion indication before completing DMA Transfer.
    
    Herbert, It would be good if fix can be merge to stable tree.
    For 4.14 kernel, It requires some update to avoid mege conficts.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Harsh Jain <harsh@chelsio.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18b4a538497d919a1e96a5eceee6e1803a94f0bd
Author: Waiman Long <longman@redhat.com>
Date:   Sat Sep 22 20:41:55 2018 -0400

    crypto: qat - Fix KASAN stack-out-of-bounds bug in adf_probe()
    
    commit ba439a6cbfa2936a6713f64cb499de7943673fe3 upstream.
    
    The following KASAN warning was printed when booting a 64-bit kernel
    on some systems with Intel CPUs:
    
    [   44.512826] ==================================================================
    [   44.520165] BUG: KASAN: stack-out-of-bounds in find_first_bit+0xb0/0xc0
    [   44.526786] Read of size 8 at addr ffff88041e02fc50 by task kworker/0:2/124
    
    [   44.535253] CPU: 0 PID: 124 Comm: kworker/0:2 Tainted: G               X --------- ---  4.18.0-12.el8.x86_64+debug #1
    [   44.545858] Hardware name: Intel Corporation PURLEY/PURLEY, BIOS BKVDTRL1.86B.0005.D08.1712070559 12/07/2017
    [   44.555682] Workqueue: events work_for_cpu_fn
    [   44.560043] Call Trace:
    [   44.562502]  dump_stack+0x9a/0xe9
    [   44.565832]  print_address_description+0x65/0x22e
    [   44.570683]  ? find_first_bit+0xb0/0xc0
    [   44.570689]  kasan_report.cold.6+0x92/0x19f
    [   44.578726]  find_first_bit+0xb0/0xc0
    [   44.578737]  adf_probe+0x9eb/0x19a0 [qat_c62x]
    [   44.578751]  ? adf_remove+0x110/0x110 [qat_c62x]
    [   44.591490]  ? mark_held_locks+0xc8/0x140
    [   44.591498]  ? _raw_spin_unlock+0x30/0x30
    [   44.591505]  ? trace_hardirqs_on_caller+0x381/0x570
    [   44.604418]  ? adf_remove+0x110/0x110 [qat_c62x]
    [   44.604427]  local_pci_probe+0xd4/0x180
    [   44.604432]  ? pci_device_shutdown+0x110/0x110
    [   44.617386]  work_for_cpu_fn+0x51/0xa0
    [   44.621145]  process_one_work+0x8fe/0x16e0
    [   44.625263]  ? pwq_dec_nr_in_flight+0x2d0/0x2d0
    [   44.629799]  ? lock_acquire+0x14c/0x400
    [   44.633645]  ? move_linked_works+0x12e/0x2a0
    [   44.637928]  worker_thread+0x536/0xb50
    [   44.641690]  ? __kthread_parkme+0xb6/0x180
    [   44.645796]  ? process_one_work+0x16e0/0x16e0
    [   44.650160]  kthread+0x30c/0x3d0
    [   44.653400]  ? kthread_create_worker_on_cpu+0xc0/0xc0
    [   44.658457]  ret_from_fork+0x3a/0x50
    
    [   44.663557] The buggy address belongs to the page:
    [   44.668350] page:ffffea0010780bc0 count:0 mapcount:0 mapping:0000000000000000 index:0x0
    [   44.676356] flags: 0x17ffffc0000000()
    [   44.680023] raw: 0017ffffc0000000 ffffea0010780bc8 ffffea0010780bc8 0000000000000000
    [   44.687769] raw: 0000000000000000 0000000000000000 00000000ffffffff 0000000000000000
    [   44.695510] page dumped because: kasan: bad access detected
    
    [   44.702578] Memory state around the buggy address:
    [   44.707372]  ffff88041e02fb00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [   44.714593]  ffff88041e02fb80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [   44.721810] >ffff88041e02fc00: 00 00 00 00 00 00 f1 f1 f1 f1 04 f2 f2 f2 f2 f2
    [   44.729028]                                                  ^
    [   44.734864]  ffff88041e02fc80: f2 f2 00 00 00 00 f3 f3 f3 f3 00 00 00 00 00 00
    [   44.742082]  ffff88041e02fd00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [   44.749299] ==================================================================
    
    Looking into the code:
    
      int ret, bar_mask;
        :
      for_each_set_bit(bar_nr, (const unsigned long *)&bar_mask,
    
    It is casting a 32-bit integer pointer to a 64-bit unsigned long
    pointer. There are two problems here. First, the 32-bit pointer address
    may not be 64-bit aligned. Secondly, it is accessing an extra 4 bytes.
    
    This is fixed by changing the bar_mask type to unsigned long.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Waiman Long <longman@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23b043d513e36757fb78243a38429ccaa1a11a90
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Thu Oct 4 11:39:42 2018 +0800

    ALSA: hda/realtek - Cannot adjust speaker's volume on Dell XPS 27 7760
    
    commit 709ae62e8e6d9ac4df7dadb3b8ae432675c45ef9 upstream.
    
    The issue is the same as commit dd9aa335c880 ("ALSA: hda/realtek - Can't
    adjust speaker's volume on a Dell AIO"), the output requires to connect
    to a node with Amp-out capability.
    
    Applying the same fixup ALC298_FIXUP_SPK_VOLUME can fix the issue.
    
    BugLink: https://bugs.launchpad.net/bugs/1775068
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6abd14f40148ca9165072b50abca21dbd5dd0410
Author: Singh, Brijesh <brijesh.singh@amd.com>
Date:   Thu Oct 4 21:40:23 2018 +0000

    iommu/amd: Clear memory encryption mask from physical address
    
    commit b3e9b515b08e407ab3a026dc2e4d935c48d05f69 upstream.
    
    Boris Ostrovsky reported a memory leak with device passthrough when SME
    is active.
    
    The VFIO driver uses iommu_iova_to_phys() to get the physical address for
    an iova. This physical address is later passed into vfio_unmap_unpin() to
    unpin the memory. The vfio_unmap_unpin() uses pfn_valid() before unpinning
    the memory. The pfn_valid() check was failing because encryption mask was
    part of the physical address returned. This resulted in the memory not
    being unpinned and therefore leaked after the guest terminates.
    
    The memory encryption mask must be cleared from the physical address in
    iommu_iova_to_phys().
    
    Fixes: 2543a786aa25 ("iommu/amd: Allow the AMD IOMMU to work with memory encryption")
    Reported-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: <iommu@lists.linux-foundation.org>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: kvm@vger.kernel.org
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: <stable@vger.kernel.org> # 4.14+
    Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8cdcd02d998590fe4ceb7a0eadb33acaef335a88
Author: Aurelien Aptel <aaptel@suse.com>
Date:   Thu May 17 16:35:07 2018 +0200

    smb2: fix missing files in root share directory listing
    
    commit 0595751f267994c3c7027377058e4185b3a28e75 upstream.
    
    When mounting a Windows share that is the root of a drive (eg. C$)
    the server does not return . and .. directory entries. This results in
    the smb2 code path erroneously skipping the 2 first entries.
    
    Pseudo-code of the readdir() code path:
    
    cifs_readdir(struct file, struct dir_context)
        initiate_cifs_search            <-- if no reponse cached yet
            server->ops->query_dir_first
    
        dir_emit_dots
            dir_emit                    <-- adds "." and ".." if we're at pos=0
    
        find_cifs_entry
            initiate_cifs_search        <-- if pos < start of current response
                                             (restart search)
            server->ops->query_dir_next <-- if pos > end of current response
                                             (fetch next search res)
    
        for(...)                        <-- loops over cur response entries
                                              starting at pos
            cifs_filldir                <-- skip . and .., emit entry
                cifs_fill_dirent
                dir_emit
            pos++
    
    A) dir_emit_dots() always adds . & ..
       and sets the current dir pos to 2 (0 and 1 are done).
    
    Therefore we always want the index_to_find to be 2 regardless of if
    the response has . and ..
    
    B) smb1 code initializes index_of_last_entry with a +2 offset
    
      in cifssmb.c CIFSFindFirst():
                    psrch_inf->index_of_last_entry = 2 /* skip . and .. */ +
                            psrch_inf->entries_in_buffer;
    
    Later in find_cifs_entry() we want to find the next dir entry at pos=2
    as a result of (A)
    
            first_entry_in_buffer = cfile->srch_inf.index_of_last_entry -
                                            cfile->srch_inf.entries_in_buffer;
    
    This var is the dir pos that the first entry in the buffer will
    have therefore it must be 2 in the first call.
    
    If we don't offset index_of_last_entry by 2 (like in (B)),
    first_entry_in_buffer=0 but we were instructed to get pos=2 so this
    code in find_cifs_entry() skips the 2 first which is ok for non-root
    shares, as it skips . and .. from the response but is not ok for root
    shares where the 2 first are actual files
    
                    pos_in_buf = index_to_find - first_entry_in_buffer;
                    // pos_in_buf=2
                    // we skip 2 first response entries :(
                    for (i = 0; (i < (pos_in_buf)) && (cur_ent != NULL); i++) {
                            /* go entry by entry figuring out which is first */
                            cur_ent = nxt_dir_entry(cur_ent, end_of_smb,
                                                    cfile->srch_inf.info_level);
                    }
    
    C) cifs_filldir() skips . and .. so we can safely ignore them for now.
    
    Sample program:
    
    int main(int argc, char **argv)
    {
            const char *path = argc >= 2 ? argv[1] : ".";
            DIR *dh;
            struct dirent *de;
    
            printf("listing path <%s>\n", path);
            dh = opendir(path);
            if (!dh) {
                    printf("opendir error %d\n", errno);
                    return 1;
            }
    
            while (1) {
                    de = readdir(dh);
                    if (!de) {
                            if (errno) {
                                    printf("readdir error %d\n", errno);
                                    return 1;
                            }
                            printf("end of listing\n");
                            break;
                    }
                    printf("off=%lu <%s>\n", de->d_off, de->d_name);
            }
    
            return 0;
    }
    
    Before the fix with SMB1 on root shares:
    
    <.>            off=1
    <..>           off=2
    <$Recycle.Bin> off=3
    <bootmgr>      off=4
    
    and on non-root shares:
    
    <.>    off=1
    <..>   off=4  <-- after adding .., the offsets jumps to +2 because
    <2536> off=5       we skipped . and .. from response buffer (C)
    <411>  off=6       but still incremented pos
    <file> off=7
    <fsx>  off=8
    
    Therefore the fix for smb2 is to mimic smb1 behaviour and offset the
    index_of_last_entry by 2.
    
    Test results comparing smb1 and smb2 before/after the fix on root
    share, non-root shares and on large directories (ie. multi-response
    dir listing):
    
    PRE FIX
    =======
    pre-1-root VS pre-2-root:
            ERR pre-2-root is missing [bootmgr, $Recycle.Bin]
    pre-1-nonroot VS pre-2-nonroot:
            OK~ same files, same order, different offsets
    pre-1-nonroot-large VS pre-2-nonroot-large:
            OK~ same files, same order, different offsets
    
    POST FIX
    ========
    post-1-root VS post-2-root:
            OK same files, same order, same offsets
    post-1-nonroot VS post-2-nonroot:
            OK same files, same order, same offsets
    post-1-nonroot-large VS post-2-nonroot-large:
            OK same files, same order, same offsets
    
    REGRESSION?
    ===========
    pre-1-root VS post-1-root:
            OK same files, same order, same offsets
    pre-1-nonroot VS post-1-nonroot:
            OK same files, same order, same offsets
    
    BugLink: https://bugzilla.samba.org/show_bug.cgi?id=13107
    Signed-off-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Paulo Alcantara <palcantara@suse.deR>
    Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17e5fb7f93f8f1ce20a96187585d54ef2f4c637e
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Wed Sep 19 17:22:21 2018 -0700

    cpufreq: qcom-kryo: Fix section annotations
    
    commit d51aea13dd6753186a2bea7619029c460bdf0c4c upstream.
    
    There is currently a warning when building the Kryo cpufreq driver into
    the kernel image:
    
    WARNING: vmlinux.o(.text+0x8aa424): Section mismatch in reference from
    the function qcom_cpufreq_kryo_probe() to the function
    .init.text:qcom_cpufreq_kryo_get_msm_id()
    The function qcom_cpufreq_kryo_probe() references
    the function __init qcom_cpufreq_kryo_get_msm_id().
    This is often because qcom_cpufreq_kryo_probe lacks a __init
    annotation or the annotation of qcom_cpufreq_kryo_get_msm_id is wrong.
    
    Remove the '__init' annotation from qcom_cpufreq_kryo_get_msm_id
    so that there is no more mismatch warning.
    
    Additionally, Nick noticed that the remove function was marked as
    '__init' when it should really be marked as '__exit'.
    
    Fixes: 46e2856b8e18 (cpufreq: Add Kryo CPU scaling driver)
    Fixes: 5ad7346b4ae2 (cpufreq: kryo: Add module remove and exit)
    Reported-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Cc: 4.18+ <stable@vger.kernel.org> # 4.18+
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5105f039ef26df26b0ffd830e1e8e36221b47be9
Author: Bjorn Andersson <bjorn.andersson@linaro.org>
Date:   Wed Sep 19 18:09:38 2018 -0700

    firmware: Always initialize the fw_priv list object
    
    commit 7012040576c6ae25a47035659ee48673612c2c27 upstream.
    
    When freeing the fw_priv the item is taken off the list. This causes an
    oops in the FW_OPT_NOCACHE case as the list object is not initialized.
    
    Make sure to initialize the list object regardless of this flag.
    
    Fixes: 422b3db2a503 ("firmware: Fix security issue with request_firmware_into_buf()")
    Cc: stable@vger.kernel.org
    Cc: Rishabh Bhatnagar <rishabhb@codeaurora.org>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa26105b73b0a68524f655fc6336e05906843fc2
Author: Rishabh Bhatnagar <rishabhb@codeaurora.org>
Date:   Fri Aug 31 08:43:31 2018 -0700

    firmware: Fix security issue with request_firmware_into_buf()
    
    commit 422b3db2a5036add39a82425b1dd9fb6c96481e8 upstream.
    
    When calling request_firmware_into_buf() with the FW_OPT_NOCACHE flag
    it is expected that firmware is loaded into buffer from memory.
    But inside alloc_lookup_fw_priv every new firmware that is loaded is
    added to the firmware cache (fwc) list head. So if any driver requests
    a firmware that is already loaded the code iterates over the above
    mentioned list and it can end up giving a pointer to other device driver's
    firmware buffer.
    Also the existing copy may either be modified by drivers, remote processors
    or even freed. This causes a potential security issue with batched requests
    when using request_firmware_into_buf.
    
    Fix alloc_lookup_fw_priv to not add to the fwc head list if FW_OPT_NOCACHE
    is set, and also don't do the lookup in the list.
    
    Fixes: 0e742e9275 ("firmware: provide infrastructure to make fw caching optional")
    [mcgrof: broken since feature introduction on v4.8]
    
    Cc: stable@vger.kernel.org # v4.8+
    Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
    Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8b84e8d275d83e95b6ce831d488b8929437bf431
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Mon Aug 27 10:34:07 2018 -0500

    b43: fix DMA error related regression with proprietary firmware
    
    commit 2823c8716c687d6c7e261a3a02b3cab43809fe9c upstream.
    
    In commit 66cffd6daab7 ("b43: fix transmit failure when VT is switched"),
    a condition is noted where the network controller needs to be reset. Note
    that this situation happens when running the open-source firmware
    (http://netweb.ing.unibs.it/~openfwwf/), plus a number of other special
    conditions.
    
    for a different card model, it is reported that this change breaks
    operation running the proprietary firmware
    (https://marc.info/?l=linux-wireless&m=153504546924558&w=2). Rather
    than reverting the previous patch, the code is tweaked to avoid the
    reset unless the open-source firmware is being used.
    
    Fixes: 66cffd6daab7 ("b43: fix transmit failure when VT is switched")
    Cc: Stable <stable@vger.kernel.org> # 4.18+
    Cc: Taketo Kabe <kabe@sra-tohoku.co.jp>
    Reported-and-tested-by: D. Prabhu <d.praabhu@gmail.com>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23917913b67105e34a9c07ca66f1bf4d0a50451e
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Tue Sep 18 00:36:36 2018 -0400

    sysfs: Do not return POSIX ACL xattrs via listxattr
    
    commit ffc4c92227db5699493e43eb140b4cb5904c30ff upstream.
    
    Commit 786534b92f3c introduced a regression that caused listxattr to
    return the POSIX ACL attribute names even though sysfs doesn't support
    POSIX ACLs.  This happens because simple_xattr_list checks for NULL
    i_acl / i_default_acl, but inode_init_always initializes those fields
    to ACL_NOT_CACHED ((void *)-1).  For example:
        $ getfattr -m- -d /sys
        /sys: system.posix_acl_access: Operation not supported
        /sys: system.posix_acl_default: Operation not supported
    Fix this in simple_xattr_list by checking if the filesystem supports POSIX ACLs.
    
    Fixes: 786534b92f3c ("tmpfs: listxattr should include POSIX ACL xattrs")
    Reported-by:  Marc Aurèle La France <tsi@tuyoix.net>
    Tested-by: Marc Aurèle La France <tsi@tuyoix.net>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Cc: stable@vger.kernel.org # v4.5+
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 51da3fc5cbceab59a4b78f21f8ee799b30739b80
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Thu Oct 4 14:49:10 2018 +0200

    ovl: fix format of setxattr debug
    
    commit 1a8f8d2a443ef9ad9a3065ba8c8119df714240fa upstream.
    
    Format has a typo: it was meant to be "%.*s", not "%*s".  But at some point
    callers grew nonprintable values as well, so use "%*pE" instead with a
    maximized length.
    
    Reported-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Fixes: 3a1e819b4e80 ("ovl: store file handle of lower inode on copy up")
    Cc: <stable@vger.kernel.org> # v4.12
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c7949a5f63769c6d3a3b41326b7b0a2a43777af
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Tue Sep 18 16:34:31 2018 +0300

    ovl: fix memory leak on unlink of indexed file
    
    commit 63e132528032ce937126aba591a7b37ec593a6bb upstream.
    
    The memory leak was detected by kmemleak when running xfstests
    overlay/051,053
    
    Fixes: caf70cb2ba5d ("ovl: cleanup orphan index entries")
    Cc: <stable@vger.kernel.org> # v4.13
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c33def1bb3aa413c28da11529cb6c5a44fe35713
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Fri Sep 28 21:00:48 2018 +0300

    ovl: fix access beyond unterminated strings
    
    commit 601350ff58d5415a001769532f6b8333820e5786 upstream.
    
    KASAN detected slab-out-of-bounds access in printk from overlayfs,
    because string format used %*s instead of %.*s.
    
    > BUG: KASAN: slab-out-of-bounds in string+0x298/0x2d0 lib/vsprintf.c:604
    > Read of size 1 at addr ffff8801c36c66ba by task syz-executor2/27811
    >
    > CPU: 0 PID: 27811 Comm: syz-executor2 Not tainted 4.19.0-rc5+ #36
    ...
    >  printk+0xa7/0xcf kernel/printk/printk.c:1996
    >  ovl_lookup_index.cold.15+0xe8/0x1f8 fs/overlayfs/namei.c:689
    
    Reported-by: syzbot+376cea2b0ef340db3dd4@syzkaller.appspotmail.com
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Fixes: 359f392ca53e ("ovl: lookup index entry for copy up origin")
    Cc: <stable@vger.kernel.org> # v4.13
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a6aa74c2ad61278ebd419b36aecb7806070d1555
Author: Miklos Szeredi <miklos@szeredi.hu>
Date:   Wed Aug 22 10:55:22 2018 +0200

    ovl: set I_CREATING on inode being created
    
    commit 6faf05c2b2b4fe70d9068067437649401531de0a upstream.
    
    ...otherwise there will be list corruption due to inode_sb_list_add() being
    called for inode already on the sb list.
    
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Fixes: e950564b97fd ("vfs: don't evict uninitialized inode")
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    To: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90f06e1b81b9921290703aaf071aabb01f7ac012
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Tue Jul 24 15:01:55 2018 +0200

    vfs: don't evict uninitialized inode
    
    commit e950564b97fd0f541b02eb207685d0746f5ecf29 upstream.
    
    iput() ends up calling ->evict() on new inode, which is not yet initialized
    by owning fs.  So use destroy_inode() instead.
    
    Add to sb->s_inodes list only if inode is not in I_CREATING state (meaning
    that it wasn't allocated with new_inode(), which already does the
    insertion).
    
    Reported-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Fixes: 80ea09a002bf ("vfs: factor out inode_insert5()")
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d08d1bb535f40510709935f6ccc662c7e2c95c79
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Jun 28 15:53:17 2018 -0400

    new primitive: discard_new_inode()
    
    commit c2b6d621c4ffe9936adf7a55c8b1c769672c306f upstream.
    
            We don't want open-by-handle picking half-set-up in-core
    struct inode from e.g. mkdir() having failed halfway through.
    In other words, we don't want such inodes returned by iget_locked()
    on their way to extinction.  However, we can't just have them
    unhashed - otherwise open-by-handle immediately *after* that would've
    ended up creating a new in-core inode over the on-disk one that
    is in process of being freed right under us.
    
            Solution: new flag (I_CREATING) set by insert_inode_locked() and
    removed by unlock_new_inode() and a new primitive (discard_new_inode())
    to be used by such halfway-through-setup failure exits instead of
    unlock_new_inode() / iput() combinations.  That primitive unlocks new
    inode, but leaves I_CREATING in place.
    
            iget_locked() treats finding an I_CREATING inode as failure
    (-ESTALE, once we sort out the error propagation).
            insert_inode_locked() treats the same as instant -EBUSY.
            ilookup() treats those as icache miss.
    
    [Fix by Dan Carpenter <dan.carpenter@oracle.com> folded in]
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Miklos Szeredi <mszeredi@redhat.com>
    Cc: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 87a50a5e94e3ea15b7278f6ef46184cb032b23b3
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri Sep 14 15:10:29 2018 -0700

    x86/APM: Fix build warning when PROC_FS is not enabled
    
    [ Upstream commit 002b87d2aace62b4f3841c3aa43309d2380092be ]
    
    Fix build warning in apm_32.c when CONFIG_PROC_FS is not enabled:
    
    ../arch/x86/kernel/apm_32.c:1643:12: warning: 'proc_apm_show' defined but not used [-Wunused-function]
     static int proc_apm_show(struct seq_file *m, void *v)
    
    Fixes: 3f3942aca6da ("proc: introduce proc_create_single{,_data}")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Cc: Jiri Kosina <jikos@kernel.org>
    Link: https://lkml.kernel.org/r/be39ac12-44c2-4715-247f-4dcc3c525b8b@infradead.org
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd618fe2ffa162eaddbf651a23b6abe294a2c2be
Author: Josh Abraham <j.abraham1776@gmail.com>
Date:   Wed Sep 12 15:13:54 2018 -1000

    xen: fix GCC warning and remove duplicate EVTCHN_ROW/EVTCHN_COL usage
    
    [ Upstream commit 4dca864b59dd150a221730775e2f21f49779c135 ]
    
    This patch removes duplicate macro useage in events_base.c.
    
    It also fixes gcc warning:
    variable ‘col’ set but not used [-Wunused-but-set-variable]
    
    Signed-off-by: Joshua Abraham <j.abraham1776@gmail.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b207598b0abe517472185b94634a463dd909b712
Author: Olaf Hering <olaf@aepfle.de>
Date:   Fri Sep 7 16:31:35 2018 +0200

    xen: avoid crash in disable_hotplug_cpu
    
    [ Upstream commit 3366cdb6d350d95466ee430ac50f3c8415ca8f46 ]
    
    The command 'xl vcpu-set 0 0', issued in dom0, will crash dom0:
    
    BUG: unable to handle kernel NULL pointer dereference at 00000000000002d8
    PGD 0 P4D 0
    Oops: 0000 [#1] PREEMPT SMP NOPTI
    CPU: 7 PID: 65 Comm: xenwatch Not tainted 4.19.0-rc2-1.ga9462db-default #1 openSUSE Tumbleweed (unreleased)
    Hardware name: Intel Corporation S5520UR/S5520UR, BIOS S5500.86B.01.00.0050.050620101605 05/06/2010
    RIP: e030:device_offline+0x9/0xb0
    Code: 77 24 00 e9 ce fe ff ff 48 8b 13 e9 68 ff ff ff 48 8b 13 e9 29 ff ff ff 48 8b 13 e9 ea fe ff ff 90 66 66 66 66 90 41 54 55 53 <f6> 87 d8 02 00 00 01 0f 85 88 00 00 00 48 c7 c2 20 09 60 81 31 f6
    RSP: e02b:ffffc90040f27e80 EFLAGS: 00010203
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
    RDX: ffff8801f3800000 RSI: ffffc90040f27e70 RDI: 0000000000000000
    RBP: 0000000000000000 R08: ffffffff820e47b3 R09: 0000000000000000
    R10: 0000000000007ff0 R11: 0000000000000000 R12: ffffffff822e6d30
    R13: dead000000000200 R14: dead000000000100 R15: ffffffff8158b4e0
    FS:  00007ffa595158c0(0000) GS:ffff8801f39c0000(0000) knlGS:0000000000000000
    CS:  e033 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000000002d8 CR3: 00000001d9602000 CR4: 0000000000002660
    Call Trace:
     handle_vcpu_hotplug_event+0xb5/0xc0
     xenwatch_thread+0x80/0x140
     ? wait_woken+0x80/0x80
     kthread+0x112/0x130
     ? kthread_create_worker_on_cpu+0x40/0x40
     ret_from_fork+0x3a/0x50
    
    This happens because handle_vcpu_hotplug_event is called twice. In the
    first iteration cpu_present is still true, in the second iteration
    cpu_present is false which causes get_cpu_device to return NULL.
    In case of cpu#0, cpu_online is apparently always true.
    
    Fix this crash by checking if the cpu can be hotplugged, which is false
    for a cpu that was just removed.
    
    Also check if the cpu was actually offlined by device_remove, otherwise
    leave the cpu_present state as it is.
    
    Rearrange to code to do all work with device_hotplug_lock held.
    
    Signed-off-by: Olaf Hering <olaf@aepfle.de>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58d77fd26f83b62f09888c858a4428dc9cddbeec
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Thu Sep 6 13:26:08 2018 +0200

    xen/manage: don't complain about an empty value in control/sysrq node
    
    [ Upstream commit 87dffe86d406bee8782cac2db035acb9a28620a7 ]
    
    When guest receives a sysrq request from the host it acknowledges it by
    writing '\0' to control/sysrq xenstore node. This, however, make xenstore
    watch fire again but xenbus_scanf() fails to parse empty value with "%c"
    format string:
    
     sysrq: SysRq : Emergency Sync
     Emergency Sync complete
     xen:manage: Error -34 reading sysrq code in control/sysrq
    
    Ignore -ERANGE the same way we already ignore -ENOENT, empty value in
    control/sysrq is totally legal.
    
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Reviewed-by: Wei Liu <wei.liu2@citrix.com>
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20d06facfd2f26f8fe98659878e8fe4604623e8f
Author: Andrew Murray <andrew.murray@arm.com>
Date:   Thu Sep 13 13:48:27 2018 +0100

    asm-generic: io: Fix ioport_map() for !CONFIG_GENERIC_IOMAP && CONFIG_INDIRECT_PIO
    
    [ Upstream commit 500dd232449e7c07500e713dc6970aa713f8e4f1 ]
    
    The !CONFIG_GENERIC_IOMAP version of ioport_map uses MMIO_UPPER_LIMIT to
    prevent users from making I/O accesses outside the expected I/O range -
    however it erroneously treats MMIO_UPPER_LIMIT as a mask which is
    contradictory to its other users.
    
    The introduction of CONFIG_INDIRECT_PIO, which subtracts an arbitrary
    amount from IO_SPACE_LIMIT to form MMIO_UPPER_LIMIT, results in ioport_map
    mangling the given port rather than capping it.
    
    We address this by aligning more closely with the CONFIG_GENERIC_IOMAP
    implementation of ioport_map by using the comparison operator and
    returning NULL where the port exceeds MMIO_UPPER_LIMIT. Though note that
    we preserve the existing behavior of masking with IO_SPACE_LIMIT such that
    we don't break existing buggy drivers that somehow rely on this masking.
    
    Fixes: 5745392e0c2b ("PCI: Apply the new generic I/O management on PCI IO hosts")
    Reported-by: Will Deacon <will.deacon@arm.com>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Andrew Murray <andrew.murray@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80e4d9a5137669a5508f94a1674d960d0edc864b
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Sep 6 12:47:01 2018 +0300

    cifs: read overflow in is_valid_oplock_break()
    
    [ Upstream commit 097f5863b1a0c9901f180bbd56ae7d630655faaa ]
    
    We need to verify that the "data_offset" is within bounds.
    
    Reported-by: Dr Silvio Cesare of InfoSect <silvio.cesare@gmail.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8dcd786663890a10bf5c2b62060d101740ee8cb
Author: Julian Wiedmann <jwi@linux.ibm.com>
Date:   Wed Sep 12 15:31:35 2018 +0200

    s390/qeth: don't dump past end of unknown HW header
    
    [ Upstream commit 0ac1487c4b2de383b91ecad1be561b8f7a2c15f4 ]
    
    For inbound data with an unsupported HW header format, only dump the
    actual HW header. We have no idea how much payload follows it, and what
    it contains. Worst case, we dump past the end of the Inbound Buffer and
    access whatever is located next in memory.
    
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.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 31ae67ad9ed6800a54485c27e3b392b58ccf07aa
Author: Wenjia Zhang <wenjia@linux.ibm.com>
Date:   Wed Sep 12 15:31:34 2018 +0200

    s390/qeth: use vzalloc for QUERY OAT buffer
    
    [ Upstream commit aec45e857c5538664edb76a60dd452e3265f37d1 ]
    
    qeth_query_oat_command() currently allocates the kernel buffer for
    the SIOC_QETH_QUERY_OAT ioctl with kzalloc. So on systems with
    fragmented memory, large allocations may fail (eg. the qethqoat tool by
    default uses 132KB).
    
    Solve this issue by using vzalloc, backing the allocation with
    non-contiguous memory.
    
    Signed-off-by: Wenjia Zhang <wenjia@linux.ibm.com>
    Reviewed-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.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 d3a7c76eb49089534ec881a8ba977a98e5d6e43a
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Tue Sep 11 01:51:43 2018 +0800

    r8169: Clear RTL_FLAG_TASK_*_PENDING when clearing RTL_FLAG_TASK_ENABLED
    
    [ Upstream commit 6ad569019999300afd8e614d296fdc356550b77f ]
    
    After system suspend, sometimes the r8169 doesn't work when ethernet
    cable gets pluggued.
    
    This issue happens because rtl_reset_work() doesn't get called from
    rtl8169_runtime_resume(), after system suspend.
    
    In rtl_task(), RTL_FLAG_TASK_* only gets cleared if this condition is
    met:
    if (!netif_running(dev) ||
        !test_bit(RTL_FLAG_TASK_ENABLED, tp->wk.flags))
        ...
    
    If RTL_FLAG_TASK_ENABLED was cleared during system suspend while
    RTL_FLAG_TASK_RESET_PENDING was set, the next rtl_schedule_task() won't
    schedule task as the flag is still there.
    
    So in addition to clearing RTL_FLAG_TASK_ENABLED, also clears other
    flags.
    
    Cc: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@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 5113d730a1ee26bb13cbe38fdc10a7ebe7baf3cd
Author: Christian König <christian.koenig@amd.com>
Date:   Mon Sep 10 15:52:55 2018 +0200

    drm/amdgpu: fix error handling in amdgpu_cs_user_fence_chunk
    
    [ Upstream commit 0165de983272d1fae0809ed9db47c46a412279bc ]
    
    Slowly leaking memory one page at a time :)
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e76f7b7df8461b3ba433cb90b5ec4cf675bf147a
Author: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Date:   Sun Sep 9 17:47:31 2018 +0200

    arm64: jump_label.h: use asm_volatile_goto macro instead of "asm goto"
    
    [ Upstream commit 13aceef06adfaf93d52e01e28a8bc8a0ad471d83 ]
    
    All other uses of "asm goto" go through asm_volatile_goto, which avoids
    a miscompile when using GCC < 4.8.2. Replace our open-coded "asm goto"
    statements with the asm_volatile_goto macro to avoid issues with older
    toolchains.
    
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed14acd316bae2d3365f71ea9941490a71d3adf2
Author: Tao Zhou <tao.zhou1@amd.com>
Date:   Fri Sep 7 13:50:31 2018 +0800

    drm/amdgpu: Fix SDMA hang in prt mode v2
    
    [ Upstream commit 68ebc13ea40656fddd3803735d621921a2d74a5e ]
    
    Fix SDMA hang in prt mode, clear XNACK_WATERMARK in reg SDMA0_UTCL1_WATERMK to avoid the issue
    
    Affected ASICs: VEGA10 VEGA12 RV1 RV2
    
    v2: add reg clear for SDMA1
    
    Signed-off-by: Tao Zhou <tao.zhou1@amd.com>
    Tested-by: Yukun Li <yukun1.li@amd.com>
    Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
    Acked-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7389051d3c632301345aec7a944fe5558e68b008
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun Jul 22 16:03:58 2018 -0700

    hexagon: modify ffs() and fls() to return int
    
    [ Upstream commit 5c41aaad409c097cf1ef74f2c649fed994744ef5 ]
    
    Building drivers/mtd/nand/raw/nandsim.c on arch/hexagon/ produces a
    printk format build warning.  This is due to hexagon's ffs() being
    coded as returning long instead of int.
    
    Fix the printk format warning by changing all of hexagon's ffs() and
    fls() functions to return int instead of long.  The variables that
    they return are already int instead of long.  This return type
    matches the return type in <asm-generic/bitops/>.
    
    ../drivers/mtd/nand/raw/nandsim.c: In function 'init_nandsim':
    ../drivers/mtd/nand/raw/nandsim.c:760:2: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'long int' [-Wformat]
    
    There are no ffs() or fls() allmodconfig build errors after making this
    change.
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Richard Kuo <rkuo@codeaurora.org>
    Cc: linux-hexagon@vger.kernel.org
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Patch-mainline: linux-kernel @ 07/22/2018, 16:03
    Signed-off-by: Richard Kuo <rkuo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cbbb852e455691e929f764ac53917615f8ce945f
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri Jul 20 20:17:35 2018 -0700

    arch/hexagon: fix kernel/dma.c build warning
    
    [ Upstream commit 200f351e27f014fcbf69b544b0b4b72aeaf45fd3 ]
    
    Fix build warning in arch/hexagon/kernel/dma.c by casting a void *
    to unsigned long to match the function parameter type.
    
    ../arch/hexagon/kernel/dma.c: In function 'arch_dma_alloc':
    ../arch/hexagon/kernel/dma.c:51:5: warning: passing argument 2 of 'gen_pool_add' makes integer from pointer without a cast [enabled by default]
    ../include/linux/genalloc.h:112:19: note: expected 'long unsigned int' but argument is of type 'void *'
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Rich Felker <dalias@libc.org>
    Cc: linux-sh@vger.kernel.org
    Patch-mainline: linux-kernel @ 07/20/2018, 20:17
    [rkuo@codeaurora.org: fixed architecture name]
    Signed-off-by: Richard Kuo <rkuo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 41b2bc509cda07fceceefb3d347380a935a2098b
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Wed Sep 5 11:41:31 2018 -0700

    netfilter: xt_hashlimit: use s->file instead of s->private
    
    [ Upstream commit 1286df269f498165061e0cf8092ca212545dbb5a ]
    
    After switching to the new procfs API, it is supposed to
    retrieve the private pointer from PDE_DATA(file_inode(s->file)),
    s->private is no longer referred.
    
    Fixes: 1cd671827290 ("netfilter/x_tables: switch to proc_create_seq_private")
    Reported-by: Sami Farin <hvtaifwkbgefbaei@gmail.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Acked-by: Christoph Hellwig <hch@lst.de>
    Tested-by: Sami Farin <hvtaifwkbgefbaei@gmail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 419033c32a82dad2d093d1ecdd0d3bf83fac2ddb
Author: Michal 'vorner' Vaner <michal.vaner@avast.com>
Date:   Tue Sep 4 13:25:44 2018 +0200

    netfilter: nfnetlink_queue: Solve the NFQUEUE/conntrack clash for NF_REPEAT
    
    [ Upstream commit ad18d7bf68a3da860ebb62a59c449804a6d237b4 ]
    
    NF_REPEAT places the packet at the beginning of the iptables chain
    instead of accepting or rejecting it right away. The packet however will
    reach the end of the chain and continue to the end of iptables
    eventually, so it needs the same handling as NF_ACCEPT and NF_DROP.
    
    Fixes: 368982cd7d1b ("netfilter: nfnetlink_queue: resolve clash for unconfirmed conntracks")
    Signed-off-by: Michal 'vorner' Vaner <michal.vaner@avast.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e63d53f2835dda2f292e1266dcd2a6dabd554957
Author: Joe Thornber <ejt@redhat.com>
Date:   Mon Sep 10 16:50:09 2018 +0100

    dm thin metadata: try to avoid ever aborting transactions
    
    [ Upstream commit 3ab91828166895600efd9cdc3a0eb32001f7204a ]
    
    Committing a transaction can consume some metadata of it's own, we now
    reserve a small amount of metadata to cover this.  Free metadata
    reported by the kernel will not include this reserve.
    
    If any of the reserve has been used after a commit we enter a new
    internal state PM_OUT_OF_METADATA_SPACE.  This is reported as
    PM_READ_ONLY, so no userland changes are needed.  If the metadata
    device is resized the pool will move back to PM_WRITE.
    
    These changes mean we never need to abort and rollback a transaction due
    to running out of metadata space.  This is particularly important
    because there have been a handful of reports of data corruption against
    DM thin-provisioning that can all be attributed to the thin-pool having
    ran out of metadata space.
    
    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c995133d035921295f208185ef7fee9040c340a
Author: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Date:   Fri Aug 10 22:30:18 2018 +0530

    sched/topology: Set correct NUMA topology type
    
    [ Upstream commit e5e96fafd9028b1478b165db78c52d981c14f471 ]
    
    With the following commit:
    
      051f3ca02e46 ("sched/topology: Introduce NUMA identity node sched domain")
    
    the scheduler introduced a new NUMA level. However this leads to the NUMA topology
    on 2 node systems to not be marked as NUMA_DIRECT anymore.
    
    After this commit, it gets reported as NUMA_BACKPLANE, because
    sched_domains_numa_level is now 2 on 2 node systems.
    
    Fix this by allowing setting systems that have up to 2 NUMA levels as
    NUMA_DIRECT.
    
    While here remove code that assumes that level can be 0.
    
    Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Andre Wild <wild@linux.vnet.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linuxppc-dev <linuxppc-dev@lists.ozlabs.org>
    Fixes: 051f3ca02e46 "Introduce NUMA identity node sched domain"
    Link: http://lkml.kernel.org/r/1533920419-17410-1-git-send-email-srikar@linux.vnet.ibm.com
    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 52017328fa158bfb757a1923751d55ae446235cb
Author: Jacek Tomaka <jacek.tomaka@poczta.fm>
Date:   Thu Aug 2 09:38:30 2018 +0800

    perf/x86/intel: Add support/quirk for the MISPREDICT bit on Knights Landing CPUs
    
    [ Upstream commit 16160c1946b702dcfa95ef63389a56deb2f1c7cb ]
    
    Problem: perf did not show branch predicted/mispredicted bit in brstack.
    
    Output of perf -F brstack for profile collected
    
    Before:
    
     0x4fdbcd/0x4fdc03/-/-/-/0
     0x45f4c1/0x4fdba0/-/-/-/0
     0x45f544/0x45f4bb/-/-/-/0
     0x45f555/0x45f53c/-/-/-/0
     0x7f66901cc24b/0x45f555/-/-/-/0
     0x7f66901cc22e/0x7f66901cc23d/-/-/-/0
     0x7f66901cc1ff/0x7f66901cc20f/-/-/-/0
     0x7f66901cc1e8/0x7f66901cc1fc/-/-/-/0
    
    After:
    
     0x4fdbcd/0x4fdc03/P/-/-/0
     0x45f4c1/0x4fdba0/P/-/-/0
     0x45f544/0x45f4bb/P/-/-/0
     0x45f555/0x45f53c/P/-/-/0
     0x7f66901cc24b/0x45f555/P/-/-/0
     0x7f66901cc22e/0x7f66901cc23d/P/-/-/0
     0x7f66901cc1ff/0x7f66901cc20f/P/-/-/0
     0x7f66901cc1e8/0x7f66901cc1fc/P/-/-/0
    
    Cause:
    
    As mentioned in Software Development Manual vol 3, 17.4.8.1,
    IA32_PERF_CAPABILITIES[5:0] indicates the format of the address that is
    stored in the LBR stack. Knights Landing reports 1 (LBR_FORMAT_LIP) as
    its format. Despite that, registers containing FROM address of the branch,
    do have MISPREDICT bit but because of the format indicated in
    IA32_PERF_CAPABILITIES[5:0], LBR did not read MISPREDICT bit.
    
    Solution:
    
    Teach LBR about above Knights Landing quirk and make it read MISPREDICT bit.
    
    Signed-off-by: Jacek Tomaka <jacek.tomaka@poczta.fm>
    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>
    Link: http://lkml.kernel.org/r/20180802013830.10600-1-jacekt@dugeo.com
    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 1080c0f57e00ad1ded9961c97a3b860f844e7bb2
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Sep 9 08:15:25 2018 +0000

    net: ena: fix missing calls to READ_ONCE
    
    [ Upstream commit 28abf4e9c9201eda5c4d29ea609d07e877b464b8 ]
    
    Add READ_ONCE calls where necessary (for example when iterating
    over a memory field that gets updated by the hardware).
    
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 968759747e95d8b2c3716cbff7897ff431d13c83
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Sep 9 08:15:24 2018 +0000

    net: ena: fix missing lock during device destruction
    
    [ Upstream commit 944b28aa2982b4590d4d4dfc777cf85135dca2c0 ]
    
    acquire the rtnl_lock during device destruction to avoid
    using partially destroyed device.
    
    ena_remove() shares almost the same logic as ena_destroy_device(),
    so use ena_destroy_device() and avoid duplications.
    
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 cfa70f3c46f1120c546c7e4feaf56f4615292ebf
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Sep 9 08:15:23 2018 +0000

    net: ena: fix potential double ena_destroy_device()
    
    [ Upstream commit fe870c77efdf8682252545cbd3d29800d8379efc ]
    
    ena_destroy_device() can potentially be called twice.
    To avoid this, check that the device is running and
    only then proceed destroying it.
    
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 023ae1b4c0253e97c2e036c1de700749b2382481
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Sep 9 08:15:22 2018 +0000

    net: ena: fix device destruction to gracefully free resources
    
    [ Upstream commit cfa324a514233b28a6934de619183eee941f02d7 ]
    
    When ena_destroy_device() is called from ena_suspend(), the device is
    still reachable from the driver. Therefore, the driver can send a command
    to the device to free all resources.
    However, in all other cases of calling ena_destroy_device(), the device is
    potentially in an error state and unreachable from the driver. In these
    cases the driver must not send commands to the device.
    
    The current implementation does not request resource freeing from the
    device even when possible. We add the graceful parameter to
    ena_destroy_device() to enable resource freeing when possible, and
    use it in ena_suspend().
    
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 3953e192748f1251d7b38c0045c6bbc7441afb5d
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Sep 9 08:15:21 2018 +0000

    net: ena: fix driver when PAGE_SIZE == 64kB
    
    [ Upstream commit ef5b0771d247379c90c8bf1332ff32f7f74bff7f ]
    
    The buffer length field in the ena rx descriptor is 16 bit, and the
    current driver passes a full page in each ena rx descriptor.
    When PAGE_SIZE equals 64kB or more, the buffer length field becomes
    zero.
    To solve this issue, limit the ena Rx descriptor to use 16kB even
    when allocating 64kB kernel pages. This change would not impact ena
    device functionality, as 16kB is still larger than maximum MTU.
    
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 0728c271d5188e53c527e931ddbac0ec4b02646d
Author: Netanel Belgazal <netanel@amazon.com>
Date:   Sun Sep 9 08:15:20 2018 +0000

    net: ena: fix surprise unplug NULL dereference kernel crash
    
    [ Upstream commit 772ed869f535b4ec2b134645c951ff22de4d3f79 ]
    
    Starting with driver version 1.5.0, in case of a surprise device
    unplug, there is a race caused by invoking ena_destroy_device()
    from two different places. As a result, the readless register might
    be accessed after it was destroyed.
    
    Signed-off-by: Netanel Belgazal <netanel@amazon.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 3a035b70eb920e584aedf6bc1a960af81834f74c
Author: Stephen Rothwell <sfr@canb.auug.org.au>
Date:   Mon Sep 3 13:15:58 2018 +1000

    fs/cifs: suppress a string overflow warning
    
    [ Upstream commit bcfb84a996f6fa90b5e6e2954b2accb7a4711097 ]
    
    A powerpc build of cifs with gcc v8.2.0 produces this warning:
    
    fs/cifs/cifssmb.c: In function ‘CIFSSMBNegotiate’:
    fs/cifs/cifssmb.c:605:3: warning: ‘strncpy’ writing 16 bytes into a region of size 1 overflows the destination [-Wstringop-overflow=]
       strncpy(pSMB->DialectsArray+count, protocols[i].name, 16);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Since we are already doing a strlen() on the source, change the strncpy
    to a memcpy().
    
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07d1b1058aea815101299761d00b7790ba88f2c7
Author: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Date:   Fri Sep 7 20:15:22 2018 +0200

    r8169: set TxConfig register after TX / RX is enabled, just like RxConfig
    
    [ Upstream commit f74dd480cf4e31e12971c58a1d832044db945670 ]
    
    Commit 3559d81e76bf ("r8169: simplify rtl_hw_start_8169") changed order of
    two register writes:
    1) Caused RxConfig to be written before TX / RX is enabled,
    2) Caused TxConfig to be written before TX / RX is enabled.
    
    At least on XIDs 10000000 ("RTL8169sb/8110sb") and
    18000000 ("RTL8169sc/8110sc") such writes are ignored by the chip, leaving
    values in these registers intact.
    
    Change 1) was reverted by
    commit 05212ba8132b42 ("r8169: set RxConfig after tx/rx is enabled for RTL8169sb/8110sb devices"),
    however change 2) wasn't.
    
    In practice, this caused TxConfig's "InterFrameGap time" and "Max DMA Burst
    Size per Tx DMA Burst" bits to be zero dramatically reducing TX performance
    (in my tests it dropped from around 500Mbps to around 50Mbps).
    
    This patch fixes the issue by moving TxConfig register write a bit later in
    the code so it happens after TX / RX is already enabled.
    
    Fixes: 05212ba8132b42 ("r8169: set RxConfig after tx/rx is enabled for RTL8169sb/8110sb devices")
    Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
    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 8a100be2813a4807c3a9f20e878478972e2a27db
Author: Heinz Mauelshagen <heinzm@redhat.com>
Date:   Thu Sep 6 22:54:29 2018 +0200

    dm raid: fix RAID leg rebuild errors
    
    [ Upstream commit 36a240a706d43383bbdd377522501ddd2e5771f6 ]
    
    On fast devices such as NVMe, a flaw in rs_get_progress() results in
    false target status output when userspace lvm2 requests leg rebuilds
    (symptom of the failure is device health chars 'aaaaaaaa' instead of
    expected 'aAaAAAAA' causing lvm2 to fail).
    
    The correct sync action state definitions already exist in
    decipher_sync_action() so fix rs_get_progress() to use it.
    
    Change decipher_sync_action() to return an enum rather than a string for
    the sync states and call it from rs_get_progress().  Introduce
    sync_str() to translate from enum to the string that is needed by
    raid_status().
    
    Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 659cd50c8acead411de4b90493e9ab63d3e30e53
Author: Heinz Mauelshagen <heinzm@redhat.com>
Date:   Thu Sep 6 18:33:40 2018 +0200

    dm raid: fix rebuild of specific devices by updating superblock
    
    [ Upstream commit c44a5ee803d2b7ed8c2e6ce24a5c4dd60778886e ]
    
    Update superblock when particular devices are requested via rebuild
    (e.g. lvconvert --replace ...) to avoid spurious failure with the "New
    device injected into existing raid set without 'delta_disks' or
    'rebuild' parameter specified" error message.
    
    Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 895fe22aa4d6f8a246938be770f52102336cd71c
Author: Heinz Mauelshagen <heinzm@redhat.com>
Date:   Thu Sep 6 18:33:39 2018 +0200

    dm raid: fix stripe adding reshape deadlock
    
    [ Upstream commit 644e2537fdc77baeeefc829524937bca64329f82 ]
    
    When initiating a stripe adding reshape, a deadlock between
    md_stop_writes() waiting for the sync thread to stop and the running
    sync thread waiting for inactive stripes occurs (this frequently happens
    on single-core but rarely on multi-core systems).
    
    Fix this deadlock by setting MD_RECOVERY_WAIT to have the main MD
    resynchronization thread worker (md_do_sync()) bail out when initiating
    the reshape via constructor arguments.
    
    Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 00063fa09bc1b3ad872ce558dd1308baf276185f
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Sep 4 15:57:11 2018 +1000

    drm/nouveau/disp/gm200-: enforce identity-mapped SOR assignment for LVDS/eDP panels
    
    [ Upstream commit 53b0cc46f27cfc2cadca609b503a7d92b5185a47 ]
    
    Fixes eDP backlight issues on more recent laptops.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6978b0eb61c0484a3ae7ea84b341d401fc8554ad
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Sep 4 15:57:09 2018 +1000

    drm/nouveau/disp: fix DP disable race
    
    [ Upstream commit e04cfdc9b7398c60dbc70212415ea63b6c6a93ae ]
    
    If a HPD pulse signalling the need to retrain the link occurs between
    the KMS driver releasing the output and the supervisor interrupt that
    finishes the teardown, it was possible get a NULL-ptr deref.
    
    Avoid this by marking the link as inactive earlier.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c65768326592f7c3abd63a1d754f085a5cc86683
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Sep 4 15:56:57 2018 +1000

    drm/nouveau/TBDdevinit: don't fail when PMU/PRE_OS is missing from VBIOS
    
    [ Upstream commit 0a6986c6595e9afd20ff7280dab36431c1e467f8 ]
    
    This Falcon application doesn't appear to be present on some newer
    systems, so let's not fail init if we can't find it.
    
    TBD: is there a way to determine whether it *should* be there?
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e4a75379e8eb409474682b754e3ffa9052e3c366
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Aug 28 14:10:42 2018 +1000

    drm/nouveau/mmu: don't attempt to dereference vmm without valid instance pointer
    
    [ Upstream commit 51ed833c881b9d96557c773f6a37018d79e29a46 ]
    
    Fixes oopses in certain failure paths.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f0e9912e82c4fd33232b371954ee58529be8bca
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Aug 28 14:10:34 2018 +1000

    drm/nouveau: fix oops in client init failure path
    
    [ Upstream commit a43b16dda2d7485f5c5aed075c1dc9785e339515 ]
    
    The NV_ERROR macro requires drm->client to be initialised, which it may not
    be at this stage of the init process.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d097790cec561d32f3dd973629c37774f2412669
Author: Heinz Mauelshagen <heinzm@redhat.com>
Date:   Thu Sep 6 18:33:38 2018 +0200

    dm raid: fix reshape race on small devices
    
    [ Upstream commit 38b0bd0cda07d34ad6f145fce675ead74739c44e ]
    
    Loading a new mapping table, the dm-raid target's constructor
    retrieves the volatile reshaping state from the raid superblocks.
    
    When the new table is activated in a following resume, the actual
    reshape position is retrieved.  The reshape driven by the previous
    mapping can already have finished on small and/or fast devices thus
    updating raid superblocks about the new raid layout.
    
    This causes the actual array state (e.g. stripe size reshape finished)
    to be inconsistent with the one in the new mapping, causing hangs with
    left behind devices.
    
    This race does not occur with usual raid device sizes but with small
    ones (e.g. those created by the lvm2 test suite).
    
    Fix by no longer transferring stale/inconsistent raid_set state during
    preresume.
    
    Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 816f7c26eee3e7db37185a47ac15a41d58699b1a
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Thu Sep 6 10:55:18 2018 +0800

    HID: i2c-hid: Don't reset device upon system resume
    
    [ Upstream commit 52cf93e63ee672a92f349edc6ddad86ec8808fd8 ]
    
    Raydium touchscreen triggers interrupt storm after system-wide suspend:
    
            [ 179.085033] i2c_hid i2c-CUST0000:00: i2c_hid_get_input: incomplete report (58/65535)
    
    According to Raydium, Windows driver does not reset the device after system
    resume.
    
    The HID over I2C spec does specify a reset should be used at intialization, but
    it doesn't specify if reset is required for system suspend.
    
    Tested this patch on other i2c-hid touchpanels I have and those touchpanels do
    work after S3 without doing reset. If any regression happens to other
    touchpanel vendors, we can use quirk for Raydium devices.
    
    There's still one device uses I2C_HID_QUIRK_RESEND_REPORT_DESCR so keep it
    there.
    
    Cc: Aaron Ma <aaron.ma@canonical.com>
    Cc: AceLan Kao <acelan.kao@canonical.com>
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfe18751bf8a9f8254e29543752aa0bb93ad8006
Author: Daniel Jurgens <danielj@mellanox.com>
Date:   Mon Aug 27 09:09:46 2018 -0500

    net/mlx5: Consider PCI domain in search for next dev
    
    [ Upstream commit df7ddb2396cd162e64aaff9401be05e31e438961 ]
    
    The PCI BDF is not unique. PCI domain must also be considered when
    searching for the next physical device during lag setup. Example below:
    
    mlx5_core 0000:01:00.0: MLX5E: StrdRq(1) RqSz(8) StrdSz(128) RxCqeCmprss(0)
    mlx5_core 0000:01:00.1: MLX5E: StrdRq(1) RqSz(8) StrdSz(128) RxCqeCmprss(0)
    mlx5_core 0001:01:00.0: MLX5E: StrdRq(1) RqSz(8) StrdSz(128) RxCqeCmprss(0)
    mlx5_core 0001:01:00.1: MLX5E: StrdRq(1) RqSz(8) StrdSz(128) RxCqeCmprss(0)
    
    Signed-off-by: Daniel Jurgens <danielj@mellanox.com>
    Reviewed-by: Aviv Heller <avivh@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3029f6d6608da004e0d46b84f0b43504bf97e8b0
Author: Somnath Kotur <somnath.kotur@broadcom.com>
Date:   Wed Sep 5 13:20:34 2018 +0530

    bnxt_re: Fix couple of memory leaks that could lead to IOMMU call traces
    
    [ Upstream commit f40f299bbe806a2e2c8b0d7cdda822fa3bdd171b ]
    
    1. DMA-able memory allocated for Shadow QP was not being freed.
    2. bnxt_qplib_alloc_qp_hdr_buf() had a bug wherein the SQ pointer was
       erroneously pointing to the RQ. But since the corresponding
       free_qp_hdr_buf() was correct, memory being free was less than what was
       allocated.
    
    Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
    Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80b6e9d538463028626ee814ed343fab777adefe
Author: Sagi Grimberg <sagi@grimberg.me>
Date:   Mon Sep 3 03:47:07 2018 -0700

    nvmet-rdma: fix possible bogus dereference under heavy load
    
    [ Upstream commit 8407879c4e0d7731f6e7e905893cecf61a7762c7 ]
    
    Currently we always repost the recv buffer before we send a response
    capsule back to the host. Since ordering is not guaranteed for send
    and recv completions, it is posible that we will receive a new request
    from the host before we got a send completion for the response capsule.
    
    Today, we pre-allocate 2x rsps the length of the queue, but in reality,
    under heavy load there is nothing that is really preventing the gap to
    expand until we exhaust all our rsps.
    
    To fix this, if we don't have any pre-allocated rsps left, we dynamically
    allocate a rsp and make sure to free it when we are done. If under memory
    pressure we fail to allocate a rsp, we silently drop the command and
    wait for the host to retry.
    
    Reported-by: Steve Wise <swise@opengridcomputing.com>
    Tested-by: Steve Wise <swise@opengridcomputing.com>
    Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
    [hch: dropped a superflous assignment]
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d44f7f5bc07127743e9d4a4f968bcbaf3b95ee9
Author: Ben Hutchings <ben.hutchings@codethink.co.uk>
Date:   Wed Aug 15 21:45:37 2018 +0100

    USB: yurex: Check for truncation in yurex_read()
    
    [ Upstream commit 14427b86837a4baf1c121934c6599bdb67dfa9fc ]
    
    snprintf() always returns the full length of the string it could have
    printed, even if it was truncated because the buffer was too small.
    So in case the counter value is truncated, we will over-read from
    in_buffer and over-write to the caller's buffer.
    
    I don't think it's actually possible for this to happen, but in case
    truncation occurs, WARN and return -EIO.
    
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6ecfa261ae6f4bdfe5a431c7ca8d623335827d2
Author: Anurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>
Date:   Fri Aug 31 17:24:42 2018 +0300

    usb: host: xhci-plat: Iterate over parent nodes for finding quirks
    
    [ Upstream commit 222471f7640d9771a993218d825d84825adc805d ]
    
    In xhci_plat_probe() both sysdev and pdev->dev are being used
    for finding quirks. There are some drivers(like dwc3 host.c)
    which adds quirks(like usb3-lpm-capable) into pdev and the logic
    present in xhci_plat_probe() checks for quirks in either sysdev
    or pdev for finding the quirks. Because of this logic, some of
    the quirks are getting missed(usb3-lpm-capable quirk added by dwc3
    host.c driver is getting missed).This patch fixes this by iterating
    over all the available parents for finding the quirks. In this way
    all the quirks which are present in child or parent are correctly
    updated.
    
    Signed-off-by: Anurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f97eca3c822dad2c47e98812db39a98cfee25bd
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Aug 18 10:12:08 2018 +0200

    HID: sensor-hub: Restore fixup for Lenovo ThinkPad Helix 2 sensor hub report
    
    [ Upstream commit ade573eb1e03d1ee5abcb3359b1259469ab6e8ed ]
    
    Commit b0f847e16c1e ("HID: hid-sensor-hub: Force logical minimum to 1 for
    power and report state") not only replaced the descriptor fixup done for
    devices with the HID_SENSOR_HUB_ENUM_QUIRK with a generic fix, but also
    accidentally removed the unrelated descriptor fixup for the Lenovo ThinkPad
    Helix 2 sensor hub. This commit restores this fixup.
    
    Restoring this fixup not only fixes the Lenovo ThinkPad Helix 2's sensors,
    but also the Lenovo ThinkPad 8's sensors.
    
    Fixes: b0f847e16c1e ("HID: hid-sensor-hub: Force logical minimum ...")
    Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Cc: Fernando D S Lima <fernandodsl@gmail.com>
    Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 027f315487ef57a4651b53fb4b3b4970e847a926
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Tue Aug 28 17:33:46 2018 -0700

    riscv: Do not overwrite initrd_start and initrd_end
    
    [ Upstream commit e866d3e84eb7c9588afb77604d417e8cc49fe216 ]
    
    setup_initrd() overwrites initrd_start and initrd_end if __initramfs_size
    is larger than 0, which is always true even if there is no embedded
    initramfs. This prevents booting qemu with "-initrd" parameter.
    Overwriting initrd_start and initrd_end is not necessary since
    __initramfs_start and __initramfs_size are used directly in
    populate_rootfs() to load the built-in initramfs, so just drop
    that code.
    
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59db47dd566b6f31a8d1202a52b3c80297666950
Author: Jann Horn <jannh@google.com>
Date:   Mon Sep 3 18:54:14 2018 +0200

    RDMA/ucma: check fd type in ucma_migrate_id()
    
    [ Upstream commit 0d23ba6034b9cf48b8918404367506da3e4b3ee5 ]
    
    The current code grabs the private_data of whatever file descriptor
    userspace has supplied and implicitly casts it to a `struct ucma_file *`,
    potentially causing a type confusion.
    
    This is probably fine in practice because the pointer is only used for
    comparisons, it is never actually dereferenced; and even in the
    comparisons, it is unlikely that a file from another filesystem would have
    a ->private_data pointer that happens to also be valid in this context.
    But ->private_data is not always guaranteed to be a valid pointer to an
    object owned by the file's filesystem; for example, some filesystems just
    cram numbers in there.
    
    Check the type of the supplied file descriptor to be safe, analogous to how
    other places in the kernel do it.
    
    Fixes: 88314e4dda1e ("RDMA/cma: add support for rdma_migrate_id()")
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d77c7de489ff136ec6ab57631bf47d04362de103
Author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Date:   Fri Aug 31 10:51:14 2018 +0200

    iio: imu: st_lsm6dsx: take into account ts samples in wm configuration
    
    [ Upstream commit a13bf65f3f2e36008ea60b49d3bda2527e09fd9c ]
    
    Take into account hw timer samples in pattern length computation done
    in st_lsm6dsx_update_watermark routine for watermark configuration.
    Moreover use samples in pattern (sip) already computed in
    st_lsm6dsx_update_decimators routine
    
    Fixes: 213451076bd3 ("iio: imu: st_lsm6dsx: add hw timestamp support")
    Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86716fd6b985f45689ca0e04936e95bfb420990a
Author: Matt Ranostay <matt.ranostay@konsulko.com>
Date:   Sat Aug 25 02:00:48 2018 -0700

    Revert "iio: temperature: maxim_thermocouple: add MAX31856 part"
    
    [ Upstream commit 65099ea85e885c3ea1272eca8774b771419d8ce8 ]
    
    This reverts commit 535fba29b3e1afef4ba201b3c69a6992583ec0bd.
    
    Seems the submitter (er me, hang head in shame) didn't look at the datasheet
    enough to see that the registers are quite different.
    
    This needs to be reverted because a) would never work b) to open it  be added
    to a Maxim RTDs (Resistance Temperature Detectors) under development by author
    
    Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c296c887f743bf5e967480376b07f28d0e589178
Author: Taehee Yoo <ap420073@gmail.com>
Date:   Sun Aug 26 02:35:44 2018 +0900

    netfilter: nf_tables: release chain in flushing set
    
    [ Upstream commit 7acfda539c0b9636a58bfee56abfb3aeee806d96 ]
    
    When element of verdict map is deleted, the delete routine should
    release chain. however, flush element of verdict map routine doesn't
    release chain.
    
    test commands:
       %nft add table ip filter
       %nft add chain ip filter c1
       %nft add map ip filter map1 { type ipv4_addr : verdict \; }
       %nft add element ip filter map1 { 1 : jump c1 }
       %nft flush map ip filter map1
       %nft flush ruleset
    
    splat looks like:
    [ 4895.170899] kernel BUG at net/netfilter/nf_tables_api.c:1415!
    [ 4895.178114] invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN PTI
    [ 4895.178880] CPU: 0 PID: 1670 Comm: nft Not tainted 4.18.0+ #55
    [ 4895.178880] RIP: 0010:nf_tables_chain_destroy.isra.28+0x39/0x220 [nf_tables]
    [ 4895.178880] Code: fc ff df 53 48 89 fb 48 83 c7 50 48 89 fa 48 c1 ea 03 0f b6 04 02 84 c0 74 09 3c 03 7f 05 e8 3e 4c 25 e1 8b 43 50 85 c0 74 02 <0f> 0b 48 89 da 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 80 3c 02
    [ 4895.228342] RSP: 0018:ffff88010b98f4c0 EFLAGS: 00010202
    [ 4895.234841] RAX: 0000000000000001 RBX: ffff8801131c6968 RCX: ffff8801146585b0
    [ 4895.234841] RDX: 1ffff10022638d37 RSI: ffff8801191a9348 RDI: ffff8801131c69b8
    [ 4895.234841] RBP: ffff8801146585a8 R08: 1ffff1002323526a R09: 0000000000000000
    [ 4895.234841] R10: 0000000000000000 R11: 0000000000000000 R12: dead000000000200
    [ 4895.234841] R13: dead000000000100 R14: ffffffffa3638af8 R15: dffffc0000000000
    [ 4895.234841] FS:  00007f6d188e6700(0000) GS:ffff88011b600000(0000) knlGS:0000000000000000
    [ 4895.234841] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 4895.234841] CR2: 00007ffe72b8df88 CR3: 000000010e2d4000 CR4: 00000000001006f0
    [ 4895.234841] Call Trace:
    [ 4895.234841]  nf_tables_commit+0x2704/0x2c70 [nf_tables]
    [ 4895.234841]  ? nfnetlink_rcv_batch+0xa4f/0x11b0 [nfnetlink]
    [ 4895.234841]  ? nf_tables_setelem_notify.constprop.48+0x1a0/0x1a0 [nf_tables]
    [ 4895.323824]  ? __lock_is_held+0x9d/0x130
    [ 4895.323824]  ? kasan_unpoison_shadow+0x30/0x40
    [ 4895.333299]  ? kasan_kmalloc+0xa9/0xc0
    [ 4895.333299]  ? kmem_cache_alloc_trace+0x2c0/0x310
    [ 4895.333299]  ? nfnetlink_rcv_batch+0xa4f/0x11b0 [nfnetlink]
    [ 4895.333299]  nfnetlink_rcv_batch+0xdb9/0x11b0 [nfnetlink]
    [ 4895.333299]  ? debug_show_all_locks+0x290/0x290
    [ 4895.333299]  ? nfnetlink_net_init+0x150/0x150 [nfnetlink]
    [ 4895.333299]  ? sched_clock_cpu+0xe5/0x170
    [ 4895.333299]  ? sched_clock_local+0xff/0x130
    [ 4895.333299]  ? sched_clock_cpu+0xe5/0x170
    [ 4895.333299]  ? find_held_lock+0x39/0x1b0
    [ 4895.333299]  ? sched_clock_local+0xff/0x130
    [ 4895.333299]  ? memset+0x1f/0x40
    [ 4895.333299]  ? nla_parse+0x33/0x260
    [ 4895.333299]  ? ns_capable_common+0x6e/0x110
    [ 4895.333299]  nfnetlink_rcv+0x2c0/0x310 [nfnetlink]
    [ ... ]
    
    Fixes: 591054469b3e ("netfilter: nf_tables: revisit chain/object refcounting from elements")
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e8fc7dcb4d6e7339519c9ba5cd976574f593bac
Author: Florian Westphal <fw@strlen.de>
Date:   Sat Aug 25 01:14:46 2018 +0200

    netfilter: kconfig: nat related expression depend on nftables core
    
    [ Upstream commit e0758412208960be9de11e6d2350c81ffd88410f ]
    
    NF_TABLES_IPV4 is now boolean so it is possible to set
    
    NF_TABLES=m
    NF_TABLES_IPV4=y
    NFT_CHAIN_NAT_IPV4=y
    
    which causes:
    nft_chain_nat_ipv4.c:(.text+0x6d): undefined reference to `nft_do_chain'
    
    Wrap NFT_CHAIN_NAT_IPV4 and related nat expressions with NF_TABLES to
    restore the dependency.
    
    Reported-by: Randy Dunlap <rdunlap@infradead.org>
    Fixes: 02c7b25e5f54 ("netfilter: nf_tables: build-in filter chain type")
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Acked-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3501b899ff9329aad8efb3ef6b839d18a8fe44a
Author: Kim Phillips <kim.phillips@arm.com>
Date:   Mon Aug 27 12:53:40 2018 -0500

    perf annotate: Fix parsing aarch64 branch instructions after objdump update
    
    [ Upstream commit 4e67b2a5df5d3f341776d12ee575e00ca3ef92de ]
    
    Starting with binutils 2.28, aarch64 objdump adds comments to the
    disassembly output to show the alternative names of a condition code
    [1].
    
    It is assumed that commas in objdump comments could occur in other
    arches now or in the future, so this fix is arch-independent.
    
    The fix could have been done with arm64 specific jump__parse and
    jump__scnprintf functions, but the jump__scnprintf instruction would
    have to have its comment character be a literal, since the scnprintf
    functions cannot receive a struct arch easily.
    
    This inconvenience also applies to the generic jump__scnprintf, which is
    why we add a raw_comment pointer to struct ins_operands, so the __parse
    function assigns it to be re-used by its corresponding __scnprintf
    function.
    
    Example differences in 'perf annotate --stdio2' output on an aarch64
    perf.data file:
    
    BEFORE: → b.cs   ffff200008133d1c <unwind_frame+0x18c>  // b.hs, dffff7ecc47b
    AFTER : ↓ b.cs   18c
    
    BEFORE: → b.cc   ffff200008d8d9cc <get_alloc_profile+0x31c>  // b.lo, b.ul, dffff727295b
    AFTER : ↓ b.cc   31c
    
    The branch target labels 18c and 31c also now appear in the output:
    
    BEFORE:        add    x26, x29, #0x80
    AFTER : 18c:   add    x26, x29, #0x80
    
    BEFORE:        add    x21, x21, #0x8
    AFTER : 31c:   add    x21, x21, #0x8
    
    The Fixes: tag below is added so stable branches will get the update; it
    doesn't necessarily mean that commit was broken at the time, rather it
    didn't withstand the aarch64 objdump update.
    
    Tested no difference in output for sample x86_64, power arch perf.data files.
    
    [1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=bb7eff5206e4795ac79c177a80fe9f4630aaf730
    
    Signed-off-by: Kim Phillips <kim.phillips@arm.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Anton Blanchard <anton@samba.org>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Cc: Taeung Song <treeze.taeung@gmail.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Fixes: b13bbeee5ee6 ("perf annotate: Fix branch instruction with multiple operands")
    Link: http://lkml.kernel.org/r/20180827125340.a2f7e291901d17cea05daba4@arm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3cc1b441a4b9164c63620915f7b46b9edbd7158e
Author: Sandipan Das <sandipan@linux.ibm.com>
Date:   Tue Aug 28 14:38:48 2018 +0530

    perf probe powerpc: Ignore SyS symbols irrespective of endianness
    
    [ Upstream commit fa694160cca6dbba17c57dc7efec5f93feaf8795 ]
    
    This makes sure that the SyS symbols are ignored for any powerpc system,
    not just the big endian ones.
    
    Reported-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
    Reviewed-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
    Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
    Fixes: fb6d59423115 ("perf probe ppc: Use the right prefix when ignoring SyS symbols on ppc")
    Link: http://lkml.kernel.org/r/20180828090848.1914-1-sandipan@linux.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f8073072f7b237c139699a2d267b2b619e2a5a7
Author: Chris Phlipot <cphlipot0@gmail.com>
Date:   Tue Aug 28 23:19:54 2018 -0700

    perf util: Fix bad memory access in trace info.
    
    [ Upstream commit a72f64261359b7451f8478f2a2bf357b4e6c757f ]
    
    In the write to the output_fd in the error condition of
    record_saved_cmdline(), we are writing 8 bytes from a memory location on
    the stack that contains a primitive that is only 4 bytes in size.
    Change the primitive to 8 bytes in size to match the size of the write
    in order to avoid reading unknown memory from the stack.
    
    Signed-off-by: Chris Phlipot <cphlipot0@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20180829061954.18871-1-cphlipot0@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 56b4732271c775bff9497d47728b851d82d4520b
Author: Hisao Tanabe <xtanabe@gmail.com>
Date:   Sat Aug 25 00:45:56 2018 +0900

    perf evsel: Fix potential null pointer dereference in perf_evsel__new_idx()
    
    [ Upstream commit fd8d2702791a970c751f8b526a17d8e725a05b46 ]
    
    If evsel is NULL, we should return NULL to avoid a NULL pointer
    dereference a bit later in the code.
    
    Signed-off-by: Hisao Tanabe <xtanabe@gmail.com>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Fixes: 03e0a7df3efd ("perf tools: Introduce bpf-output event")
    LPU-Reference: 20180824154556.23428-1-xtanabe@gmail.com
    Link: https://lkml.kernel.org/n/tip-e5plzjhx6595a5yjaf22jss3@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ac14f4b31799184c8eaf69aca4b9bac95f4c019
Author: Martin Liška <mliska@suse.cz>
Date:   Thu Aug 23 14:29:34 2018 +0200

    perf annotate: Properly interpret indirect call
    
    [ Upstream commit 1dc27f63303db58ce1b1a6932d1825305f86d574 ]
    
    The patch changes the parsing of:
    
            callq  *0x8(%rbx)
    
    from:
    
      0.26 │     → callq  *8
    
    to:
    
      0.26 │     → callq  *0x8(%rbx)
    
    in this case an address is followed by a register, thus one can't parse
    only the address.
    
    Committer testing:
    
    1) run 'perf record sleep 10'
    2) before applying the patch, run:
    
         perf annotate --stdio2 > /tmp/before
    
    3) after applying the patch, run:
    
         perf annotate --stdio2 > /tmp/after
    
    4) diff /tmp/before /tmp/after:
    #  --- /tmp/before 2018-08-28 11:16:03.238384143 -0300
    #  +++ /tmp/after  2018-08-28 11:15:39.335341042 -0300
    #  @@ -13274,7 +13274,7 @@
    #                ↓ jle    128
    #                  hash_value = hash_table->hash_func (key);
    #                  mov    0x8(%rsp),%rdi
    #  -  0.91       → callq  *30
    #  +  0.91       → callq  *0x30(%r12)
    #                  mov    $0x2,%r8d
    #                  cmp    $0x2,%eax
    #                  node_hash = hash_table->hashes[node_index];
    #  @@ -13848,7 +13848,7 @@
    #                   mov    %r14,%rdi
    #                   sub    %rbx,%r13
    #                   mov    %r13,%rdx
    #  -              → callq  *38
    #  +              → callq  *0x38(%r15)
    #                   cmp    %rax,%r13
    #     1.91        ↓ je     240
    #            1b4:   mov    $0xffffffff,%r13d
    #  @@ -14026,7 +14026,7 @@
    #                   mov    %rcx,-0x500(%rbp)
    #                   mov    %r15,%rsi
    #                   mov    %r14,%rdi
    #  -              → callq  *38
    #  +              → callq  *0x38(%rax)
    #                   mov    -0x500(%rbp),%rcx
    #                   cmp    %rax,%rcx
    #                 ↓ jne    9b0
    <SNIP tons of other such cases>
    
    Signed-off-by: Martin Liška <mliska@suse.cz>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Tested-by: Kim Phillips <kim.phillips@arm.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Link: http://lkml.kernel.org/r/bd1f3932-be2b-85f9-7582-111ee0a43b07@suse.cz
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dbd0ea4cfa2af92724b04e0f63fdf59349e1f9c8
Author: Nilesh Javali <nilesh.javali@cavium.com>
Date:   Wed Aug 29 23:55:53 2018 -0700

    scsi: qedi: Add the CRC size within iSCSI NVM image
    
    [ Upstream commit c77a2fa3ff8f73d1a485e67e6f81c64823739d59 ]
    
    The QED driver commit, 1ac4329a1cff ("qed: Add configuration information
    to register dump and debug data"), removes the CRC length validation
    causing nvm_get_image failure while loading qedi driver:
    
    [qed_mcp_get_nvm_image:2700(host_10-0)]Image [0] is too big - 00006008 bytes
    where only 00006004 are available
    [qedi_get_boot_info:2253]:10: Could not get NVM image. ret = -12
    
    Hence add and adjust the CRC size to iSCSI NVM image to read boot info at
    qedi load time.
    
    Signed-off-by: Nilesh Javali <nilesh.javali@cavium.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 319949c5e4a8a9622a96f9a1d23ca7f036c473f3
Author: Mike Christie <mchristi@redhat.com>
Date:   Mon Aug 27 14:45:16 2018 -0500

    scsi: iscsi: target: Fix conn_ops double free
    
    [ Upstream commit 05a86e78ea9823ec25b3515db078dd8a76fc263c ]
    
    If iscsi_login_init_conn fails it can free conn_ops.
    __iscsi_target_login_thread will then call iscsi_target_login_sess_out
    which will also free it.
    
    This fixes the problem by organizing conn allocation/setup into parts that
    are needed through the life of the conn and parts that are only needed for
    the login. The free functions then release what was allocated in the alloc
    functions.
    
    With this patch we have:
    
    iscsit_alloc_conn/iscsit_free_conn - allocs/frees the conn we need for the
    entire life of the conn.
    
    iscsi_login_init_conn/iscsi_target_nego_release - allocs/frees the parts
    of the conn that are only needed during login.
    
    Signed-off-by: Mike Christie <mchristi@redhat.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 27fbee89e1194bfac1b58cbe259b6f52a8ef590f
Author: Vincent Pelletier <plr.vincent@gmail.com>
Date:   Mon Aug 27 14:45:15 2018 -0500

    scsi: iscsi: target: Set conn->sess to NULL when iscsi_login_set_conn_values fails
    
    [ Upstream commit 7915919bb94e12460c58e27c708472e6f85f6699 ]
    
    Fixes a use-after-free reported by KASAN when later
    iscsi_target_login_sess_out gets called and it tries to access
    conn->sess->se_sess:
    
    Disabling lock debugging due to kernel taint
    iSCSI Login timeout on Network Portal [::]:3260
    iSCSI Login negotiation failed.
    ==================================================================
    BUG: KASAN: use-after-free in
    iscsi_target_login_sess_out.cold.12+0x58/0xff [iscsi_target_mod]
    Read of size 8 at addr ffff880109d070c8 by task iscsi_np/980
    
    CPU: 1 PID: 980 Comm: iscsi_np Tainted: G           O
    4.17.8kasan.sess.connops+ #4
    Hardware name: To be filled by O.E.M. To be filled by O.E.M./Aptio CRB,
    BIOS 5.6.5 05/19/2014
    Call Trace:
     dump_stack+0x71/0xac
     print_address_description+0x65/0x22e
     ? iscsi_target_login_sess_out.cold.12+0x58/0xff [iscsi_target_mod]
     kasan_report.cold.6+0x241/0x2fd
     iscsi_target_login_sess_out.cold.12+0x58/0xff [iscsi_target_mod]
     iscsi_target_login_thread+0x1086/0x1710 [iscsi_target_mod]
     ? __sched_text_start+0x8/0x8
     ? iscsi_target_login_sess_out+0x250/0x250 [iscsi_target_mod]
     ? __kthread_parkme+0xcc/0x100
     ? parse_args.cold.14+0xd3/0xd3
     ? iscsi_target_login_sess_out+0x250/0x250 [iscsi_target_mod]
     kthread+0x1a0/0x1c0
     ? kthread_bind+0x30/0x30
     ret_from_fork+0x35/0x40
    
    Allocated by task 980:
     kasan_kmalloc+0xbf/0xe0
     kmem_cache_alloc_trace+0x112/0x210
     iscsi_target_login_thread+0x816/0x1710 [iscsi_target_mod]
     kthread+0x1a0/0x1c0
     ret_from_fork+0x35/0x40
    
    Freed by task 980:
     __kasan_slab_free+0x125/0x170
     kfree+0x90/0x1d0
     iscsi_target_login_thread+0x1577/0x1710 [iscsi_target_mod]
     kthread+0x1a0/0x1c0
     ret_from_fork+0x35/0x40
    
    The buggy address belongs to the object at ffff880109d06f00
     which belongs to the cache kmalloc-512 of size 512
    The buggy address is located 456 bytes inside of
     512-byte region [ffff880109d06f00, ffff880109d07100)
    The buggy address belongs to the page:
    page:ffffea0004274180 count:1 mapcount:0 mapping:0000000000000000
    index:0x0 compound_mapcount: 0
    flags: 0x17fffc000008100(slab|head)
    raw: 017fffc000008100 0000000000000000 0000000000000000 00000001000c000c
    raw: dead000000000100 dead000000000200 ffff88011b002e00 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff880109d06f80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff880109d07000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    >ffff880109d07080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                                  ^
     ffff880109d07100: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff880109d07180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    ==================================================================
    
    Signed-off-by: Vincent Pelletier <plr.vincent@gmail.com>
    [rebased against idr/ida changes and to handle ret review comments from Matthew]
    Signed-off-by: Mike Christie <mchristi@redhat.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Reviewed-by: Matthew Wilcox <willy@infradead.org>
    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 820c01bcca8267efb4b61e5167f6bb4277280a50
Author: Harry Mallon <hjmallon@gmail.com>
Date:   Tue Aug 28 22:51:29 2018 +0100

    HID: hid-saitek: Add device ID for RAT 7 Contagion
    
    [ Upstream commit 43822c98f2ebb2cbd5e467ab72bbcdae7f0caa22 ]
    
    Signed-off-by: Harry Mallon <hjmallon@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f2822e4daddc17f4fb5ee57cdc7451dfb2d4d89
Author: Anton Vasilyev <vasilyev@ispras.ru>
Date:   Tue Aug 7 14:44:48 2018 +0300

    usb: gadget: fotg210-udc: Fix memory leak of fotg210->ep[i]
    
    [ Upstream commit c37bd52836296ecc9a0fc8060b819089aebdbcde ]
    
    There is no deallocation of fotg210->ep[i] elements, allocated at
    fotg210_udc_probe.
    
    The patch adds deallocation of fotg210->ep array elements and simplifies
    error path of fotg210_udc_probe().
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
    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 386562cba8c2b5de706884158419da45f0213299
Author: Sean O'Brien <seobrien@chromium.org>
Date:   Mon Aug 27 13:02:15 2018 -0700

    HID: add support for Apple Magic Keyboards
    
    [ Upstream commit ee345492437043a79db058a3d4f029ebcb52089a ]
    
    USB device
            Vendor 05ac (Apple)
            Device 026c (Magic Keyboard with Numeric Keypad)
    
    Bluetooth devices
            Vendor 004c (Apple)
            Device 0267 (Magic Keyboard)
            Device 026c (Magic Keyboard with Numeric Keypad)
    
    Support already exists for the Magic Keyboard over USB connection.
    Add support for the Magic Keyboard over Bluetooth connection, and for
    the Magic Keyboard with Numeric Keypad over Bluetooth and USB
    connection.
    
    Signed-off-by: Sean O'Brien <seobrien@chromium.org>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11c069b7eb848a8029b7d50671df7d0be47ad85e
Author: Andreas Bosch <linux@progandy.de>
Date:   Fri Aug 17 22:16:00 2018 +0200

    HID: intel-ish-hid: Enable Sunrise Point-H ish driver
    
    [ Upstream commit e0ab8b26aa9661df0541a657e2b2416d90488809 ]
    
    Added PCI ID for Sunrise Point-H ISH.
    
    Signed-off-by: Andreas Bosch <linux@progandy.de>
    Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3403eaa94cfcdff3dcfc8b0db573458dd9ecbdae
Author: Florian Westphal <fw@strlen.de>
Date:   Wed Aug 22 11:33:27 2018 +0200

    netfilter: xt_checksum: ignore gso skbs
    
    [ Upstream commit 10568f6c5761db24249c610c94d6e44d5505a0ba ]
    
    Satish Patel reports a skb_warn_bad_offload() splat caused
    by -j CHECKSUM rules:
    
    -A POSTROUTING -p tcp -m tcp --sport 80 -j CHECKSUM
    
    The CHECKSUM target has never worked with GSO skbs, and the above rule
    makes no sense as kernel will handle checksum updates on transmit.
    
    Unfortunately, there are 3rd party tools that install such rules, so we
    cannot reject this from the config plane without potential breakage.
    
    Amend Kconfig text to clarify that the CHECKSUM target is only useful
    in virtualized environments, where old dhcp clients that use AF_PACKET
    used to discard UDP packets with a 'bad' header checksum and add a
    one-time warning in case such rule isn't restricted to UDP.
    
    v2: check IP6T_F_PROTO flag before cmp (Michal Kubecek)
    
    Reported-by: Satish Patel <satish.txt@gmail.com>
    Reported-by: Markos Chandras <markos.chandras@suse.com>
    Reported-by: Michal Kubecek <mkubecek@suse.cz>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Reviewed-by: Michal Kubecek <mkubecek@suse.cz>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d569211070e223cbc3a118ebdcc468723cc07d4
Author: Martin Willi <martin@strongswan.org>
Date:   Wed Aug 22 10:27:17 2018 +0200

    netfilter: xt_cluster: add dependency on conntrack module
    
    [ Upstream commit c1dc2912059901f97345d9e10c96b841215fdc0f ]
    
    The cluster match requires conntrack for matching packets. If the
    netns does not have conntrack hooks registered, the match does not
    work at all.
    
    Implicitly load the conntrack hook for the family, exactly as many
    other extensions do. This ensures that the match works even if the
    hooks have not been registered by other means.
    
    Signed-off-by: Martin Willi <martin@strongswan.org>
    Acked-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11b165210c7214645c183dc7f74aca8d51381691
Author: Jann Horn <jannh@google.com>
Date:   Fri Oct 5 18:17:59 2018 +0200

    bpf: 32-bit RSH verification must truncate input before the ALU op
    
    commit b799207e1e1816b09e7a5920fbb2d5fcf6edd681 upstream.
    
    When I wrote commit 468f6eafa6c4 ("bpf: fix 32-bit ALU op verification"), I
    assumed that, in order to emulate 64-bit arithmetic with 32-bit logic, it
    is sufficient to just truncate the output to 32 bits; and so I just moved
    the register size coercion that used to be at the start of the function to
    the end of the function.
    
    That assumption is true for almost every op, but not for 32-bit right
    shifts, because those can propagate information towards the least
    significant bit. Fix it by always truncating inputs for 32-bit ops to 32
    bits.
    
    Also get rid of the coerce_reg_to_size() after the ALU op, since that has
    no effect.
    
    Fixes: 468f6eafa6c4 ("bpf: fix 32-bit ALU op verification")
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f69ad066fb2b5006871251209bcc48febef4b8cb
Author: Daniel Black <daniel@linux.ibm.com>
Date:   Fri Oct 5 15:52:19 2018 -0700

    mm: madvise(MADV_DODUMP): allow hugetlbfs pages
    
    commit d41aa5252394c065d1f04d1ceea885b70d00c9c6 upstream.
    
    Reproducer, assuming 2M of hugetlbfs available:
    
    Hugetlbfs mounted, size=2M and option user=testuser
    
      # mount | grep ^hugetlbfs
      hugetlbfs on /dev/hugepages type hugetlbfs (rw,pagesize=2M,user=dan)
      # sysctl vm.nr_hugepages=1
      vm.nr_hugepages = 1
      # grep Huge /proc/meminfo
      AnonHugePages:         0 kB
      ShmemHugePages:        0 kB
      HugePages_Total:       1
      HugePages_Free:        1
      HugePages_Rsvd:        0
      HugePages_Surp:        0
      Hugepagesize:       2048 kB
      Hugetlb:            2048 kB
    
    Code:
    
      #include <sys/mman.h>
      #include <stddef.h>
      #define SIZE 2*1024*1024
      int main()
      {
        void *ptr;
        ptr = mmap(NULL, SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_HUGETLB | MAP_ANONYMOUS, -1, 0);
        madvise(ptr, SIZE, MADV_DONTDUMP);
        madvise(ptr, SIZE, MADV_DODUMP);
      }
    
    Compile and strace:
    
      mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB, -1, 0) = 0x7ff7c9200000
      madvise(0x7ff7c9200000, 2097152, MADV_DONTDUMP) = 0
      madvise(0x7ff7c9200000, 2097152, MADV_DODUMP) = -1 EINVAL (Invalid argument)
    
    hugetlbfs pages have VM_DONTEXPAND in the VmFlags driver pages based on
    author testing with analysis from Florian Weimer[1].
    
    The inclusion of VM_DONTEXPAND into the VM_SPECIAL defination was a
    consequence of the large useage of VM_DONTEXPAND in device drivers.
    
    A consequence of [2] is that VM_DONTEXPAND marked pages are unable to be
    marked DODUMP.
    
    A user could quite legitimately madvise(MADV_DONTDUMP) their hugetlbfs
    memory for a while and later request that madvise(MADV_DODUMP) on the same
    memory.  We correct this omission by allowing madvice(MADV_DODUMP) on
    hugetlbfs pages.
    
    [1] https://stackoverflow.com/questions/52548260/madvisedodump-on-the-same-ptr-size-as-a-successful-madvisedontdump-fails-wit
    [2] commit 0103bd16fb90 ("mm: prepare VM_DONTDUMP for using in drivers")
    
    Link: http://lkml.kernel.org/r/20180930054629.29150-1-daniel@linux.ibm.com
    Link: https://lists.launchpad.net/maria-discuss/msg05245.html
    Fixes: 0103bd16fb90 ("mm: prepare VM_DONTDUMP for using in drivers")
    Reported-by: Kenneth Penza <kpenza@gmail.com>
    Signed-off-by: Daniel Black <daniel@linux.ibm.com>
    Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Konstantin Khlebnikov <khlebnikov@openvz.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 53df63ddc5997c4b4086cab2f3a341c4256ce714
Author: David Howells <dhowells@redhat.com>
Date:   Fri Sep 7 23:55:17 2018 +0100

    afs: Fix cell specification to permit an empty address list
    
    [ Upstream commit ecfe951f0c1b169ea4b7dd6f3a404dfedd795bc2 ]
    
    Fix the cell specification mechanism to allow cells to be pre-created
    without having to specify at least one address (the addresses will be
    upcalled for).
    
    This allows the cell information preload service to avoid the need to issue
    loads of DNS lookups during boot to get the addresses for each cell (500+
    lookups for the 'standard' cell list[*]).  The lookups can be done later as
    each cell is accessed through the filesystem.
    
    Also remove the print statement that prints a line every time a new cell is
    added.
    
    [*] There are 144 cells in the list.  Each cell is first looked up for an
        SRV record, and if that fails, for an AFSDB record.  These get a list
        of server names, each of which then has to be looked up to get the
        addresses for that server.  E.g.:
    
            dig srv _afs3-vlserver._udp.grand.central.org
    
    Signed-off-by: David Howells <dhowells@redhat.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 784ce43a54fad28f43fd202f8e3bab9ce4c3ca99
Author: Sudeep Holla <sudeep.holla@arm.com>
Date:   Thu Sep 6 16:10:39 2018 +0100

    firmware: arm_scmi: fix divide by zero when sustained_perf_level is zero
    
    [ Upstream commit 96d529bac562574600eda85726fcfa3eef6dde8e ]
    
    Firmware can provide zero as values for sustained performance level and
    corresponding sustained frequency in kHz in order to hide the actual
    frequencies and provide only abstract values. It may endup with divide
    by zero scenario resulting in kernel panic.
    
    Let's set the multiplication factor to one if either one or both of them
    (sustained_perf_level and sustained_freq) are set to zero.
    
    Fixes: a9e3fbfaa0ff ("firmware: arm_scmi: add initial support for performance protocol")
    Reported-by: Ionela Voinescu <ionela.voinescu@arm.com>
    Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 131a6926fa4d923802ba02832ff546cb1c5d145e
Author: Ilya Dryomov <idryomov@gmail.com>
Date:   Fri Aug 24 15:32:43 2018 +0200

    ceph: avoid a use-after-free in ceph_destroy_options()
    
    [ Upstream commit 8aaff15168cfbc7c8980fdb0e8a585f1afe56ec0 ]
    
    syzbot reported a use-after-free in ceph_destroy_options(), called from
    ceph_mount().  The problem was that create_fs_client() consumed the opt
    pointer on some errors, but not on all of them.  Make sure it always
    consumes both libceph and ceph options.
    
    Reported-by: syzbot+8ab6f1042021b4eed062@syzkaller.appspotmail.com
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Reviewed-by: "Yan, Zheng" <zyan@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5f09c519ea04a5651bc309552da3c70e370abb5
Author: Greentime Hu <greentime@andestech.com>
Date:   Tue Sep 4 14:25:57 2018 +0800

    nds32: linker script: GCOV kernel may refers data in __exit
    
    [ Upstream commit 3350139c0ff3c95724b784f7109987d533cb3ecd ]
    
    This patch is used to fix nds32 allmodconfig/allyesconfig build error
    because GCOV kernel embeds counters in the kernel for each line
    and a part of that embed in __exit text. So we need to keep the
    EXIT_TEXT and EXIT_DATA  if CONFIG_GCOV_KERNEL=y.
    
    Link: https://lkml.org/lkml/2018/9/1/125
    Signed-off-by: Greentime Hu <greentime@andestech.com>
    Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20107ca73afeeb40e758e13f88247c3d426cf64f
Author: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date:   Tue Sep 4 15:45:51 2018 -0700

    tools/vm/page-types.c: fix "defined but not used" warning
    
    [ Upstream commit 7ab660f8baecfe26c1c267fa8e64d2073feae2bb ]
    
    debugfs_known_mountpoints[] is not used any more, so let's remove it.
    
    Link: http://lkml.kernel.org/r/1535102651-19418-1-git-send-email-n-horiguchi@ah.jp.nec.com
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Matthew Wilcox <willy@infradead.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 9f62a57c667018cf884cef8125c31580aa87759c
Author: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date:   Tue Sep 4 15:45:48 2018 -0700

    tools/vm/slabinfo.c: fix sign-compare warning
    
    [ Upstream commit 904506562e0856f2535d876407d087c9459d345b ]
    
    Currently we get the following compiler warning:
    
        slabinfo.c:854:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
           if (s->object_size < min_objsize)
                              ^
    
    due to the mismatch of signed/unsigned comparison.  ->object_size and
    ->slab_size are never expected to be negative, so let's define them as
    unsigned int.
    
    [n-horiguchi@ah.jp.nec.com: convert everything - none of these can be negative]
      Link: http://lkml.kernel.org/r/20180826234947.GA9787@hori1.linux.bs1.fc.nec.co.jp
    Link: http://lkml.kernel.org/r/1535103134-20239-1-git-send-email-n-horiguchi@ah.jp.nec.com
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Matthew Wilcox <willy@infradead.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 8474b701d459ec2363f522378cf6a4e05e3a0827
Author: Greentime Hu <greentime@andestech.com>
Date:   Tue Aug 28 16:07:39 2018 +0800

    nds32: fix build error because of wrong semicolon
    
    [ Upstream commit ec865393292f5ad8d52da20788b3685ebce44c48 ]
    
    It shall be removed in the define usage. We shall not put a semicolon there.
    
    /kisskb/src/arch/nds32/include/asm/elf.h:126:29: error: expected '}' before ';' token
     #define ELF_DATA ELFDATA2LSB;
                                 ^
    /kisskb/src/fs/proc/kcore.c:318:17: note: in expansion of macro 'ELF_DATA'
         [EI_DATA] = ELF_DATA,
                     ^~~~~~~~
    /kisskb/src/fs/proc/kcore.c:312:15: note: to match this '{'
        .e_ident = {
                   ^
    /kisskb/src/scripts/Makefile.build:307: recipe for target 'fs/proc/kcore.o' failed
    
    Signed-off-by: Greentime Hu <greentime@andestech.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 392a9a4a1c1ef7d654f733931cdaf23effa730b0
Author: Zong Li <zong@andestech.com>
Date:   Mon Aug 13 14:48:49 2018 +0800

    nds32: Fix get_user/put_user macro expand pointer problem
    
    [ Upstream commit 6cce95a6c7d288ac2126eee4b95df448b9015b84 ]
    
    The pointer argument of macro need to be taken out once first, and then
    use the new pointer in the macro body.
    
    In kernel/trace/trace.c, get_user(ch, ubuf++) causes the unexpected
    increment after expand the macro.
    
    Signed-off-by: Zong Li <zong@andestech.com>
    Acked-by: Greentime Hu <greentime@andestech.com>
    Signed-off-by: Greentime Hu <greentime@andestech.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 447ec6add595de63d391c9e270c0a4c3484e8fb8
Author: Zong Li <zong@andestech.com>
Date:   Mon Aug 13 13:28:23 2018 +0800

    nds32: Fix empty call trace
    
    [ Upstream commit c17df7960534357fb74074c2f514c831d4a9cf5a ]
    
    The compiler predefined macro 'NDS32_ABI_2' had been removed, it should
    use the '__NDS32_ABI_2' here.
    
    Signed-off-by: Zong Li <zong@andestech.com>
    Acked-by: Greentime Hu <greentime@andestech.com>
    Signed-off-by: Greentime Hu <greentime@andestech.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 76d9688fbebbaf616d003eda44da8f4f52b5535d
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Tue Aug 7 12:03:13 2018 +0800

    nds32: add NULL entry to the end of_device_id array
    
    [ Upstream commit 1944a50859ec2b570b42b459ac25d607fc7c31f0 ]
    
    Make sure of_device_id tables are NULL terminated.
    Found by coccinelle spatch "misc/of_table.cocci"
    
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Acked-by: Greentime Hu <greentime@andestech.com>
    Signed-off-by: Greentime Hu <greentime@andestech.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b847f91abb81b8d3c3e2b491288a23767d81c9b
Author: Greentime Hu <greentime@andestech.com>
Date:   Wed Jul 18 09:54:55 2018 +0800

    nds32: fix logic for module
    
    [ Upstream commit 1dfdf99106668679b0de5a62fd4f42c1a11c9445 ]
    
    This bug is report by Dan Carpenter. We shall use ~loc_mask instead of
    !loc_mask because we need to and(&) the bits of ~loc_mask.
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Fixes: c9a4a8da6baa ("nds32: Loadable modules")
    Signed-off-by: Greentime Hu <greentime@andestech.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5bdcac88df0bbe80c636dce61cb211641a4e879c
Author: Ivan Mikhaylov <ivan@de.ibm.com>
Date:   Mon Sep 3 10:26:28 2018 +0300

    net/ibm/emac: wrong emac_calc_base call was used by typo
    
    [ Upstream commit bf68066fccb10fce6bbffdda24ee2ae314c9c5b2 ]
    
    __emac_calc_base_mr1 was used instead of __emac4_calc_base_mr1
    by copy-paste mistake for emac4syn.
    
    Fixes: 45d6e545505fd32edb812f085be7de45b6a5c0af ("net/ibm/emac: add 8192 rx/tx fifo size")
    Signed-off-by: Ivan Mikhaylov <ivan@de.ibm.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 a06e07ce6f61fb3280615965fdc1652779df248d
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Sat Sep 1 09:40:01 2018 +0300

    fsnotify: fix ignore mask logic in fsnotify()
    
    [ Upstream commit 9bdda4e9cf2dcecb60a0683b10ffb8cd7e5f2f45 ]
    
    Commit 92183a42898d ("fsnotify: fix ignore mask logic in
    send_to_group()") acknoledges the use case of ignoring an event on
    an inode mark, because of an ignore mask on a mount mark of the same
    group (i.e. I want to get all events on this file, except for the events
    that came from that mount).
    
    This change depends on correctly merging the inode marks and mount marks
    group lists, so that the mount mark ignore mask would be tested in
    send_to_group(). Alas, the merging of the lists did not take into
    account the case where event in question is not in the mask of any of
    the mount marks.
    
    To fix this, completely remove the tests for inode and mount event masks
    from the lists merging code.
    
    Fixes: 92183a42898d ("fsnotify: fix ignore mask logic in send_to_group")
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ce55b0915e764cb474b0663c1f794d2a3d64b65
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Fri Aug 31 11:31:13 2018 +0300

    mac80211: shorten the IBSS debug messages
    
    [ Upstream commit c6e57b3896fc76299913b8cfd82d853bee8a2c84 ]
    
    When tracing is enabled, all the debug messages are recorded and must
    not exceed MAX_MSG_LEN (100) columns. Longer debug messages grant the
    user with:
    
    WARNING: CPU: 3 PID: 32642 at /tmp/wifi-core-20180806094828/src/iwlwifi-stack-dev/net/mac80211/./trace_msg.h:32 trace_event_raw_event_mac80211_msg_event+0xab/0xc0 [mac80211]
    Workqueue: phy1 ieee80211_iface_work [mac80211]
     RIP: 0010:trace_event_raw_event_mac80211_msg_event+0xab/0xc0 [mac80211]
     Call Trace:
      __sdata_dbg+0xbd/0x120 [mac80211]
      ieee80211_ibss_rx_queued_mgmt+0x15f/0x510 [mac80211]
      ieee80211_iface_work+0x21d/0x320 [mac80211]
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    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 3bcf74fdbd500ec731c24cae800c6b56c5a515c3
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Fri Aug 31 11:31:12 2018 +0300

    mac80211: don't Tx a deauth frame if the AP forbade Tx
    
    [ Upstream commit 6c18b27d6e5c6a7206364eae2b47bc8d8b2fa68f ]
    
    If the driver fails to properly prepare for the channel
    switch, mac80211 will disconnect. If the CSA IE had mode
    set to 1, it means that the clients are not allowed to send
    any Tx on the current channel, and that includes the
    deauthentication frame.
    
    Make sure that we don't send the deauthentication frame in
    this case.
    
    In iwlwifi, this caused a failure to flush queues since the
    firmware already closed the queues after having parsed the
    CSA IE. Then mac80211 would wait until the deauthentication
    frame would go out (drv_flush(drop=false)) and that would
    never happen.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    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 7cd6df93a29264b4bccd5786894813295c0db65b
Author: Ilan Peer <ilan.peer@intel.com>
Date:   Fri Aug 31 11:31:10 2018 +0300

    mac80211: Fix station bandwidth setting after channel switch
    
    [ Upstream commit 0007e94355fdb71a1cf5dba0754155cba08f0666 ]
    
    When performing a channel switch flow for a managed interface, the
    flow did not update the bandwidth of the AP station and the rate
    scale algorithm. In case of a channel width downgrade, this would
    result with the rate scale algorithm using a bandwidth that does not
    match the interface channel configuration.
    
    Fix this by updating the AP station bandwidth and rate scaling algorithm
    before the actual channel change in case of a bandwidth downgrade, or
    after the actual channel change in case of a bandwidth upgrade.
    
    Signed-off-by: Ilan Peer <ilan.peer@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    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 07715e528d188a681b10471fd19c91efaaa8c585
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Fri Aug 31 11:31:06 2018 +0300

    mac80211: fix a race between restart and CSA flows
    
    [ Upstream commit f3ffb6c3a28963657eb8b02a795d75f2ebbd5ef4 ]
    
    We hit a problem with iwlwifi that was caused by a bug in
    mac80211. A bug in iwlwifi caused the firwmare to crash in
    certain cases in channel switch. Because of that bug,
    drv_pre_channel_switch would fail and trigger the restart
    flow.
    Now we had the hw restart worker which runs on the system's
    workqueue and the csa_connection_drop_work worker that runs
    on mac80211's workqueue that can run together. This is
    obviously problematic since the restart work wants to
    reconfigure the connection, while the csa_connection_drop_work
    worker does the exact opposite: it tries to disconnect.
    
    Fix this by cancelling the csa_connection_drop_work worker
    in the restart worker.
    
    Note that this can sound racy: we could have:
    
    driver   iface_work   CSA_work   restart_work
    +++++++++++++++++++++++++++++++++++++++++++++
                  |
     <--drv_cs ---|
    <FW CRASH!>
    -CS FAILED-->
                  |                       |
                  |                 cancel_work(CSA)
               schedule                   |
               CSA work                   |
                             |            |
                            Race between those 2
    
    But this is not possible because we flush the workqueue
    in the restart worker before we cancel the CSA worker.
    That would be bullet proof if we could guarantee that
    we schedule the CSA worker only from the iface_work
    which runs on the workqueue (and not on the system's
    workqueue), but unfortunately we do have an instance
    in which we schedule the CSA work outside the context
    of the workqueue (ieee80211_chswitch_done).
    
    Note also that we should probably cancel other workers
    like beacon_connection_loss_work and possibly others
    for different types of interfaces, at the very least,
    IBSS should suffer from the exact same problem, but for
    now, do the minimum to fix the actual bug that was actually
    experienced and reproduced.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    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 040695971ce1a17a2a30401e60d17122958d2aba
Author: Dreyfuss, Haim <haim.dreyfuss@intel.com>
Date:   Fri Aug 31 11:31:04 2018 +0300

    mac80211: fix WMM TXOP calculation
    
    [ Upstream commit abd76d255d69d70206c01b9cb19ba36a9c1df6a1 ]
    
    In commit 9236c4523e5b ("mac80211: limit wmm params to comply
    with ETSI requirements"), we have limited the WMM parameters to
    comply with 802.11 and ETSI standard.  Mistakenly the TXOP value
    was caluclated wrong.  Fix it by taking the minimum between
    802.11 to ETSI to make sure we are not violating both.
    
    Fixes: e552af058148 ("mac80211: limit wmm params to comply with ETSI requirements")
    Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    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 71f1b196fb29b712829915418018bf089f772998
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Aug 31 11:10:55 2018 +0300

    cfg80211: fix a type issue in ieee80211_chandef_to_operating_class()
    
    [ Upstream commit 8442938c3a2177ba16043b3a935f2c78266ad399 ]
    
    The "chandef->center_freq1" variable is a u32 but "freq" is a u16 so we
    are truncating away the high bits.  I noticed this bug because in commit
    9cf0a0b4b64a ("cfg80211: Add support for 60GHz band channels 5 and 6")
    we made "freq <= 56160 + 2160 * 6" a valid requency when before it was
    only "freq <= 56160 + 2160 * 4" that was valid.  It introduces a static
    checker warning:
    
        net/wireless/util.c:1571 ieee80211_chandef_to_operating_class()
        warn: always true condition '(freq <= 56160 + 2160 * 6) => (0-u16max <= 69120)'
    
    But really we probably shouldn't have been truncating the high bits
    away to begin with.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    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 39bcc4406f8385a9b67bdb64dc2d30efbc3c0d1f
Author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Date:   Fri Aug 31 01:04:13 2018 +0200

    mac80211: fix an off-by-one issue in A-MSDU max_subframe computation
    
    [ Upstream commit 66eb02d839e8495ae6b612e2d09ff599374b80e2 ]
    
    Initialize 'n' to 2 in order to take into account also the first
    packet in the estimation of max_subframe limit for a given A-MSDU
    since frag_tail pointer is NULL when ieee80211_amsdu_aggregate
    routine analyzes the second frame.
    
    Fixes: 6e0456b54545 ("mac80211: add A-MSDU tx support")
    Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
    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 05166cf09a6e71a7dcda746294e138957f5a93c0
Author: Jon Kuhn <jkuhn@barracuda.com>
Date:   Mon Jul 9 14:33:14 2018 +0000

    fs/cifs: don't translate SFM_SLASH (U+F026) to backslash
    
    [ Upstream commit c15e3f19a6d5c89b1209dc94b40e568177cb0921 ]
    
    When a Mac client saves an item containing a backslash to a file server
    the backslash is represented in the CIFS/SMB protocol as as U+F026.
    Before this change, listing a directory containing an item with a
    backslash in its name will return that item with the backslash
    represented with a true backslash character (U+005C) because
    convert_sfm_character mapped U+F026 to U+005C when interpretting the
    CIFS/SMB protocol response.  However, attempting to open or stat the
    path using a true backslash will result in an error because
    convert_to_sfm_char does not map U+005C back to U+F026 causing the
    CIFS/SMB request to be made with the backslash represented as U+005C.
    
    This change simply prevents the U+F026 to U+005C conversion from
    happenning.  This is analogous to how the code does not do any
    translation of UNI_SLASH (U+F000).
    
    Signed-off-by: Jon Kuhn <jkuhn@barracuda.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43160392b3eb437934e1e193e2097562f1b7d222
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Sat Sep 1 20:11:05 2018 +0800

    net: cadence: Fix a sleep-in-atomic-context bug in macb_halt_tx()
    
    [ Upstream commit 16fe10cf92783ed9ceb182d6ea2b8adf5e8ec1b8 ]
    
    The kernel module may sleep with holding a spinlock.
    
    The function call paths (from bottom to top) in Linux-4.16 are:
    
    [FUNC] usleep_range
    drivers/net/ethernet/cadence/macb_main.c, 648:
            usleep_range in macb_halt_tx
    drivers/net/ethernet/cadence/macb_main.c, 730:
            macb_halt_tx in macb_tx_error_task
    drivers/net/ethernet/cadence/macb_main.c, 721:
            _raw_spin_lock_irqsave in macb_tx_error_task
    
    To fix this bug, usleep_range() is replaced with udelay().
    
    This bug is found by my static analysis tool DSAC.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.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 26c9b6f0c19619cc8cbc5a6999002d86e0e57508
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Fri Aug 31 23:30:48 2018 +0900

    i2c: uniphier-f: issue STOP only for last message or I2C_M_STOP
    
    [ Upstream commit 4c85609b08c4761eca0a40fd7beb06bc650f252d ]
    
    This driver currently emits a STOP if the next message is not
    I2C_MD_RD.  It should not do it because it disturbs the I2C_RDWR
    ioctl, where read/write transactions are combined without STOP
    between.
    
    Issue STOP only when the message is the last one _or_ flagged with
    I2C_M_STOP.
    
    Fixes: 6a62974b667f ("i2c: uniphier_f: add UniPhier FIFO-builtin I2C driver")
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.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 182ae0d8643f2479ac5672e29c2d92b4c1bbbb37
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Fri Aug 31 23:30:47 2018 +0900

    i2c: uniphier: issue STOP only for last message or I2C_M_STOP
    
    [ Upstream commit 38f5d8d8cbb2ffa2b54315118185332329ec891c ]
    
    This driver currently emits a STOP if the next message is not
    I2C_MD_RD.  It should not do it because it disturbs the I2C_RDWR
    ioctl, where read/write transactions are combined without STOP
    between.
    
    Issue STOP only when the message is the last one _or_ flagged with
    I2C_M_STOP.
    
    Fixes: dd6fd4a32793 ("i2c: uniphier: add UniPhier FIFO-less I2C driver")
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.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 abb518640aaf758145c55dae868353247b23e30f
Author: John Fastabend <john.fastabend@gmail.com>
Date:   Thu Aug 30 21:25:02 2018 -0700

    bpf: avoid misuse of psock when TCP_ULP_BPF collides with another ULP
    
    [ Upstream commit 597222f72a94118f593e4f32bf58ae7e049a0df1 ]
    
    Currently we check sk_user_data is non NULL to determine if the sk
    exists in a map. However, this is not sufficient to ensure the psock
    or the ULP ops are not in use by another user, such as kcm or TLS. To
    avoid this when adding a sock to a map also verify it is of the
    correct ULP type. Additionally, when releasing a psock verify that
    it is the TCP_ULP_BPF type before releasing the ULP. The error case
    where we abort an update due to ULP collision can cause this error
    path.
    
    For example,
    
      __sock_map_ctx_update_elem()
         [...]
         err = tcp_set_ulp_id(sock, TCP_ULP_BPF) <- collides with TLS
         if (err)                                <- so err out here
            goto out_free
         [...]
      out_free:
         smap_release_sock() <- calling tcp_cleanup_ulp releases the
                                TLS ULP incorrectly.
    
    Fixes: 2f857d04601a ("bpf: sockmap, remove STRPARSER map_flags and add multi-map support")
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23fa01c0fcb50519c53ac2c834c29d9b1dca3e25
Author: Tushar Dave <tushar.n.dave@oracle.com>
Date:   Fri Aug 31 23:45:16 2018 +0200

    bpf: Fix bpf_msg_pull_data()
    
    [ Upstream commit 9db39f4d4f94b61e4b64b077f6ddb2bdfb533a88 ]
    
    Helper bpf_msg_pull_data() mistakenly reuses variable 'offset' while
    linearizing multiple scatterlist elements. Variable 'offset' is used
    to find first starting scatterlist element
        i.e. msg->data = sg_virt(&sg[first_sg]) + start - offset"
    
    Use different variable name while linearizing multiple scatterlist
    elements so that value contained in variable 'offset' won't get
    overwritten.
    
    Fixes: 015632bb30da ("bpf: sk_msg program helper bpf_sk_msg_pull_data")
    Signed-off-by: Tushar Dave <tushar.n.dave@oracle.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e2069153a586a6fdaaf75f30428cf62f45dd737
Author: Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
Date:   Thu Aug 30 13:19:53 2018 -0500

    ibmvnic: Include missing return code checks in reset function
    
    [ Upstream commit f611a5b4a51fa36a0aa792be474f5d6aacaef7e3 ]
    
    Check the return codes of these functions and halt reset
    in case of failure. The driver will remain in a dormant state
    until the next reset event, when device initialization will be
    re-attempted.
    
    Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.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 005caa1288d96773c5090d48120cc3c160e5a772
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Thu Aug 30 16:01:18 2018 +0200

    selftests: pmtu: detect correct binary to ping ipv6 addresses
    
    [ Upstream commit c81c7012e0c769b5704c2b07bd5224965e76fb70 ]
    
    Some systems don't have the ping6 binary anymore, and use ping for
    everything. Detect the absence of ping6 and try to use ping instead.
    
    Fixes: d1f1b9cbf34c ("selftests: net: Introduce first PMTU test")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Acked-by: Stefano Brivio <sbrivio@redhat.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 ec0029c2aca1faa88f8239e5ff07bd1499af34cf
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Thu Aug 30 16:01:17 2018 +0200

    selftests: pmtu: maximum MTU for vti4 is 2^16-1-20
    
    [ Upstream commit 902b5417f28d955cdb4898df6ffaab15f56c5cff ]
    
    Since commit 82612de1c98e ("ip_tunnel: restore binding to ifaces with a
    large mtu"), the maximum MTU for vti4 is based on IP_MAX_MTU instead of
    the mysterious constant 0xFFF8.  This makes this selftest fail.
    
    Fixes: 82612de1c98e ("ip_tunnel: restore binding to ifaces with a large mtu")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Acked-by: Stefano Brivio <sbrivio@redhat.com>
    Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.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 d65d1dd8be058511d7d5241b8a2955051c4b876e
Author: Xiao Ni <xni@redhat.com>
Date:   Thu Aug 30 15:57:09 2018 +0800

    RAID10 BUG_ON in raise_barrier when force is true and conf->barrier is 0
    
    [ Upstream commit 1d0ffd264204eba1861865560f1f7f7a92919384 ]
    
    In raid10 reshape_request it gets max_sectors in read_balance. If the underlayer disks
    have bad blocks, the max_sectors is less than last. It will call goto read_more many
    times. It calls raise_barrier(conf, sectors_done != 0) every time. In this condition
    sectors_done is not 0. So the value passed to the argument force of raise_barrier is
    true.
    
    In raise_barrier it checks conf->barrier when force is true. If force is true and
    conf->barrier is 0, it panic. In this case reshape_request submits bio to under layer
    disks. And in the callback function of the bio it calls lower_barrier. If the bio
    finishes before calling raise_barrier again, it can trigger the BUG_ON.
    
    Add one pair of raise_barrier/lower_barrier to fix this bug.
    
    Signed-off-by: Xiao Ni <xni@redhat.com>
    Suggested-by: Neil Brown <neilb@suse.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 34ff707ac863877de46242c19892815e216c8a09
Author: Shaohua Li <shli@fb.com>
Date:   Wed Aug 29 11:05:42 2018 -0700

    md/raid5-cache: disable reshape completely
    
    [ Upstream commit e254de6bcf3f5b6e78a92ac95fb91acef8adfe1a ]
    
    We don't support reshape yet if an array supports log device. Previously we
    determine the fact by checking ->log. However, ->log could be NULL after a log
    device is removed, but the array is still marked to support log device. Don't
    allow reshape in this case too. User can disable log device support by setting
    'consistency_policy' to 'resync' then do reshape.
    
    Reported-by: Xiao Ni <xni@redhat.com>
    Tested-by: Xiao Ni <xni@redhat.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 561deb108ca412c2986afc6e7c0d4c2bc2072f62
Author: Dennis Zhou (Facebook) <dennisszhou@gmail.com>
Date:   Fri Aug 31 16:22:42 2018 -0400

    Revert "blk-throttle: fix race between blkcg_bio_issue_check() and cgroup_rmdir()"
    
    [ Upstream commit 6b06546206868f723f2061d703a3c3c378dcbf4c ]
    
    This reverts commit 4c6994806f708559c2812b73501406e21ae5dcd0.
    
    Destroying blkgs is tricky because of the nature of the relationship. A
    blkg should go away when either a blkcg or a request_queue goes away.
    However, blkg's pin the blkcg to ensure they remain valid. To break this
    cycle, when a blkcg is offlined, blkgs put back their css ref. This
    eventually lets css_free() get called which frees the blkcg.
    
    The above commit (4c6994806f70) breaks this order of events by trying to
    destroy blkgs in css_free(). As the blkgs still hold references to the
    blkcg, css_free() is never called.
    
    The race between blkcg_bio_issue_check() and cgroup_rmdir() will be
    addressed in the following patch by delaying destruction of a blkg until
    all writeback associated with the blkcg has been finished.
    
    Fixes: 4c6994806f70 ("blk-throttle: fix race between blkcg_bio_issue_check() and cgroup_rmdir()")
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
    Cc: Jiufei Xue <jiufei.xue@linux.alibaba.com>
    Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8dbbc215f2baccc0fe37cdf92c91a6ed0655f293
Author: Will Deacon <will.deacon@arm.com>
Date:   Thu Aug 30 13:52:38 2018 -0700

    ARC: atomics: unbork atomic_fetch_##op()
    
    [ Upstream commit 3fcbb8260a87efb691d837e8cd24e81f65b3eb70 ]
    
    In 4.19-rc1, Eugeniy reported weird boot and IO errors on ARC HSDK
    
    | INFO: task syslogd:77 blocked for more than 10 seconds.
    |       Not tainted 4.19.0-rc1-00007-gf213acea4e88 #40
    | "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this
    | message.
    | syslogd         D    0    77     76 0x00000000
    |
    | Stack Trace:
    |  __switch_to+0x0/0xac
    |  __schedule+0x1b2/0x730
    |  io_schedule+0x5c/0xc0
    |  __lock_page+0x98/0xdc
    |  find_lock_entry+0x38/0x100
    |  shmem_getpage_gfp.isra.3+0x82/0xbfc
    |  shmem_fault+0x46/0x138
    |  handle_mm_fault+0x5bc/0x924
    |  do_page_fault+0x100/0x2b8
    |  ret_from_exception+0x0/0x8
    
    He bisected to 84c6591103db ("locking/atomics,
    asm-generic/bitops/lock.h: Rewrite using atomic_fetch_*()")
    
    This commit however only unmasked the real issue introduced by commit
    4aef66c8ae9 ("locking/atomic, arch/arc: Fix build") which missed the
    retry-if-scond-failed branch in atomic_fetch_##op() macros.
    
    The bisected commit started using atomic_fetch_##op() macros for building
    the rest of atomics.
    
    Fixes: 4aef66c8ae9 ("locking/atomic, arch/arc: Fix build")
    Reported-by: Eugeniy Paltsev <paltsev@synopsys.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    [vgupta: wrote changelog]
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29c9e7e73dda7636dd5d6ccb0a2d59d290d1dc7b
Author: Vincent Whitchurch <vincent.whitchurch@axis.com>
Date:   Fri Aug 31 09:04:18 2018 +0200

    gpio: Fix crash due to registration race
    
    [ Upstream commit d49b48f088c323dbacae44dfbe56d9c985c8a2a1 ]
    
    gpiochip_add_data_with_key() adds the gpiochip to the gpio_devices list
    before of_gpiochip_add() is called, but it's only the latter which sets
    the ->of_xlate function pointer.  gpiochip_find() can be called by
    someone else between these two actions, and it can find the chip and
    call of_gpiochip_match_node_and_xlate() which leads to the following
    crash due to a NULL ->of_xlate().
    
     Unhandled prefetch abort: page domain fault (0x01b) at 0x00000000
     Modules linked in: leds_gpio(+) gpio_generic(+)
     CPU: 0 PID: 830 Comm: insmod Not tainted 4.18.0+ #43
     Hardware name: ARM-Versatile Express
     PC is at   (null)
     LR is at of_gpiochip_match_node_and_xlate+0x2c/0x38
     Process insmod (pid: 830, stack limit = 0x(ptrval))
      (of_gpiochip_match_node_and_xlate) from  (gpiochip_find+0x48/0x84)
      (gpiochip_find) from  (of_get_named_gpiod_flags+0xa8/0x238)
      (of_get_named_gpiod_flags) from  (gpiod_get_from_of_node+0x2c/0xc8)
      (gpiod_get_from_of_node) from  (devm_fwnode_get_index_gpiod_from_child+0xb8/0x144)
      (devm_fwnode_get_index_gpiod_from_child) from  (gpio_led_probe+0x208/0x3c4 [leds_gpio])
      (gpio_led_probe [leds_gpio]) from  (platform_drv_probe+0x48/0x9c)
      (platform_drv_probe) from  (really_probe+0x1d0/0x3d4)
      (really_probe) from  (driver_probe_device+0x78/0x1c0)
      (driver_probe_device) from  (__driver_attach+0x120/0x13c)
      (__driver_attach) from  (bus_for_each_dev+0x68/0xb4)
      (bus_for_each_dev) from  (bus_add_driver+0x1a8/0x268)
      (bus_add_driver) from  (driver_register+0x78/0x10c)
      (driver_register) from  (do_one_initcall+0x54/0x1fc)
      (do_one_initcall) from  (do_init_module+0x64/0x1f4)
      (do_init_module) from  (load_module+0x2198/0x26ac)
      (load_module) from  (sys_finit_module+0xe0/0x110)
      (sys_finit_module) from  (ret_fast_syscall+0x0/0x54)
    
    One way to fix this would be to rework the hairy registration sequence
    in gpiochip_add_data_with_key(), but since I'd probably introduce a
    couple of new bugs if I attempted that, simply add a check for a
    non-NULL of_xlate function pointer in
    of_gpiochip_match_node_and_xlate().  This works since the driver looking
    for the gpio will simply fail to find the gpio and defer its probe and
    be reprobed when the driver which is registering the gpiochip has fully
    completed its probe.
    
    Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8f38e4e22168595d18de1065407d101ceeb61b8
Author: Stefan Raspl <stefan.raspl@de.ibm.com>
Date:   Fri Aug 24 14:03:57 2018 +0200

    tools/kvm_stat: fix updates for dead guests
    
    [ Upstream commit 710ab11ad9329d2d4b044405e328c994b19a2aa9 ]
    
    With pid filtering active, when a guest is removed e.g. via virsh shutdown,
    successive updates produce garbage.
    Therefore, we add code to detect this case and prevent further body updates.
    Note that when displaying the help dialog via 'h' in this case, once we exit
    we're stuck with the 'Collecting data...' message till we remove the filter.
    
    Signed-off-by: Stefan Raspl <raspl@linux.ibm.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52ff1e423ec99997651ddde3dd0657d7d8708135
Author: Stefan Raspl <stefan.raspl@de.ibm.com>
Date:   Fri Aug 24 14:03:56 2018 +0200

    tools/kvm_stat: fix handling of invalid paths in debugfs provider
    
    [ Upstream commit 617c66b9f236d20f11cecbb3f45e6d5675b2fae1 ]
    
    When filtering by guest, kvm_stat displays garbage when the guest is
    destroyed - see sample output below.
    We add code to remove the invalid paths from the providers, so at least
    no more garbage is displayed.
    Here's a sample output to illustrate:
    
      kvm statistics - pid 13986 (foo)
    
       Event                                         Total %Total CurAvg/s
       diagnose_258                                     -2    0.0        0
       deliver_program_interruption                     -3    0.0        0
       diagnose_308                                     -4    0.0        0
       halt_poll_invalid                               -91    0.0       -6
       deliver_service_signal                         -244    0.0      -16
       halt_successful_poll                           -250    0.1      -17
       exit_pei                                       -285    0.1      -19
       exit_external_request                          -312    0.1      -21
       diagnose_9c                                    -328    0.1      -22
       userspace_handled                              -713    0.1      -47
       halt_attempted_poll                            -939    0.2      -62
       deliver_emergency_signal                      -3126    0.6     -208
       halt_wakeup                                   -7199    1.5     -481
       exit_wait_state                               -7379    1.5     -493
       diagnose_500                                 -56499   11.5    -3757
       exit_null                                    -85491   17.4    -5685
       diagnose_44                                 -133300   27.1    -8874
       exit_instruction                            -195898   39.8   -13037
       Total                                       -492063
    
    Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9ffbadacc94cb3e7906fcb0bb17404a1e6a1c89
Author: Stefan Raspl <stefan.raspl@de.ibm.com>
Date:   Fri Aug 24 14:03:55 2018 +0200

    tools/kvm_stat: fix python3 issues
    
    [ Upstream commit 58f33cfe73076b6497bada4f7b5bda961ed68083 ]
    
    Python3 returns a float for a regular division - switch to a division
    operator that returns an integer.
    Furthermore, filters return a generator object instead of the actual
    list - wrap result in yet another list, which makes it still work in
    both, Python2 and 3.
    
    Signed-off-by: Stefan Raspl <raspl@linux.ibm.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58ec0839af0dcbcfda4a20fbde2326d2a98bf080
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Aug 30 10:55:49 2018 +0200

    mac80211: always account for A-MSDU header changes
    
    [ Upstream commit aa58acf325b4aadeecae2bfc90658273b47dbace ]
    
    In the error path of changing the SKB headroom of the second
    A-MSDU subframe, we would not account for the already-changed
    length of the first frame that just got converted to be in
    A-MSDU format and thus is a bit longer now.
    
    Fix this by doing the necessary accounting.
    
    It would be possible to reorder the operations, but that would
    make the code more complex (to calculate the necessary pad),
    and the headroom expansion should not fail frequently enough
    to make that worthwhile.
    
    Fixes: 6e0456b54545 ("mac80211: add A-MSDU tx support")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Acked-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
    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 511edc415c6cc3df8896f84cfdf80a39c189ee4e
Author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Date:   Wed Aug 29 21:03:25 2018 +0200

    mac80211: do not convert to A-MSDU if frag/subframe limited
    
    [ Upstream commit 1eb507903665442360a959136dfa3234c43db085 ]
    
    Do not start to aggregate packets in a A-MSDU frame (converting the
    first subframe to A-MSDU, adding the header) if max_tx_fragments or
    max_amsdu_subframes limits are already exceeded by it. In particular,
    this happens when drivers set the limit to 1 to avoid A-MSDUs at all.
    
    Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
    [reword commit message to be more precise]
    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 6f01b1a3c4ad4b9048d676b6cd2a8df9b6b49c0b
Author: Arunk Khandavalli <akhandav@codeaurora.org>
Date:   Thu Aug 30 00:40:16 2018 +0300

    cfg80211: nl80211_update_ft_ies() to validate NL80211_ATTR_IE
    
    [ Upstream commit 4f0223bfe9c3e62d8f45a85f1ef1b18a8a263ef9 ]
    
    nl80211_update_ft_ies() tried to validate NL80211_ATTR_IE with
    is_valid_ie_attr() before dereferencing it, but that helper function
    returns true in case of NULL pointer (i.e., attribute not included).
    This can result to dereferencing a NULL pointer. Fix that by explicitly
    checking that NL80211_ATTR_IE is included.
    
    Fixes: 355199e02b83 ("cfg80211: Extend support for IEEE 802.11r Fast BSS Transition")
    Signed-off-by: Arunk Khandavalli <akhandav@codeaurora.org>
    Signed-off-by: Jouni Malinen <jouni@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 aadc5d1ee02dccdf5ff4f0d73cacda4c8cc475b3
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Wed Aug 29 10:22:34 2018 +0200

    tc-testing: add test-cases for numeric and invalid control action
    
    [ Upstream commit 25a8238f4cc8425d4aade4f9041be468d0e8aa2e ]
    
    Only the police action allows us to specify an arbitrary numeric value
    for the control action. This change introduces an explicit test case
    for the above feature and then leverage it for testing the kernel behavior
    for invalid control actions (reject).
    
    Signed-off-by: Paolo Abeni <pabeni@redhat.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 468bcedcd85065ce1549055c46acb8de0a1ddb04
Author: Baruch Siach <baruch@tkos.co.il>
Date:   Wed Aug 29 09:44:39 2018 +0300

    net: mvpp2: initialize port of_node pointer
    
    [ Upstream commit c4053ef322081554765e1b708d6cdd8855e1d72d ]
    
    Without a valid of_node in struct device we can't find the mvpp2 port
    device by its DT node. Specifically, this breaks
    of_find_net_device_by_node().
    
    For example, the Armada 8040 based Clearfog GT-8K uses Marvell 88E6141
    switch connected to the &cp1_eth2 port:
    
    &cp1_mdio {
            ...
    
            switch0: switch0@4 {
                    compatible = "marvell,mv88e6085";
                    ...
    
                    ports {
                            ...
    
                            port@5 {
                                    reg = <5>;
                                    label = "cpu";
                                    ethernet = <&cp1_eth2>;
                            };
                    };
            };
    };
    
    Without this patch, dsa_register_switch() returns -EPROBE_DEFER because
    of_find_net_device_by_node() can't find the device_node of the &cp1_eth2
    device.
    
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Baruch Siach <baruch@tkos.co.il>
    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 4abef73b07703e96adc1542eef17a970e423fb95
Author: Chris Brandt <chris.brandt@renesas.com>
Date:   Mon Aug 27 12:42:02 2018 -0500

    sh_eth: Add R7S9210 support
    
    [ Upstream commit 6e0bb04d0e4f597d8d8f4f21401a9636f2809fd1 ]
    
    Add support for the R7S9210 which is part of the RZ/A2 series.
    
    Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
    Acked-by: Rob Herring <robh@kernel.org>
    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 4440af5a7e453a7abb66debafd9cdab6c9159462
Author: Peng Li <lipeng321@huawei.com>
Date:   Mon Aug 27 09:59:30 2018 +0800

    net: hns: add netif_carrier_off before change speed and duplex
    
    [ Upstream commit 455c4401fe7a538facaffb35b906ce19f1ece474 ]
    
    If there are packets in hardware when changing the speed
    or duplex, it may cause hardware hang up.
    
    This patch adds netif_carrier_off before change speed and
    duplex in ethtool_ops.set_link_ksettings, and adds
    netif_carrier_on after complete the change.
    
    Signed-off-by: Peng Li <lipeng321@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 f97a366fdbadf359bb27749901d45f56474e7678
Author: Peng Li <lipeng321@huawei.com>
Date:   Mon Aug 27 09:59:29 2018 +0800

    net: hns: add the code for cleaning pkt in chip
    
    [ Upstream commit 31fabbee8f5c658c3fa1603c66e9e4f51ea8c2c6 ]
    
    If there are packets in hardware when changing the speed
    or duplex, it may cause hardware hang up.
    
    This patch adds the code for waiting chip to clean the all
    pkts(TX & RX) in chip when the driver uses the function named
    "adjust link".
    
    This patch cleans the pkts as follows:
    1) close rx of chip, close tx of protocol stack.
    2) wait rcb, ppe, mac to clean.
    3) adjust link
    4) open rx of chip, open tx of protocol stack.
    
    Signed-off-by: Peng Li <lipeng321@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 7d3acb1372f6a5ccadcf1d3e0e309a3ef6e54493
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Fri Aug 24 12:28:06 2018 -0700

    tipc: switch to rhashtable iterator
    
    [ Upstream commit 9a07efa9aea2f4a59f35da0785a4e6a6b5a96192 ]
    
    syzbot reported a use-after-free in tipc_group_fill_sock_diag(),
    where tipc_group_fill_sock_diag() still reads tsk->group meanwhile
    tipc_group_delete() just deletes it in tipc_release().
    
    tipc_nl_sk_walk() aims to lock this sock when walking each sock
    in the hash table to close race conditions with sock changes like
    this one, by acquiring tsk->sk.sk_lock.slock spinlock, unfortunately
    this doesn't work at all. All non-BH call path should take
    lock_sock() instead to make it work.
    
    tipc_nl_sk_walk() brutally iterates with raw rht_for_each_entry_rcu()
    where RCU read lock is required, this is the reason why lock_sock()
    can't be taken on this path. This could be resolved by switching to
    rhashtable iterator API's, where taking a sleepable lock is possible.
    Also, the iterator API's are friendly for restartable calls like
    diag dump, the last position is remembered behind the scence,
    all we need to do here is saving the iterator into cb->args[].
    
    I tested this with parallel tipc diag dump and thousands of tipc
    socket creation and release, no crash or memory leak.
    
    Reported-by: syzbot+b9c8f3ab2994b7cd1625@syzkaller.appspotmail.com
    Cc: Jon Maloy <jon.maloy@ericsson.com>
    Cc: Ying Xue <ying.xue@windriver.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.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 cf09d1f5a507d0e609992ad9b502fd0a10e9b2b8
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Wed Aug 29 16:50:36 2018 +0200

    bpf: fix sg shift repair start offset in bpf_msg_pull_data
    
    [ Upstream commit a8cf76a9023bc6709b1361d06bb2fae5227b9d68 ]
    
    When we perform the sg shift repair for the scatterlist ring, we
    currently start out at i = first_sg + 1. However, this is not
    correct since the first_sg could point to the sge sitting at slot
    MAX_SKB_FRAGS - 1, and a subsequent i = MAX_SKB_FRAGS will access
    the scatterlist ring (sg) out of bounds. Add the sk_msg_iter_var()
    helper for iterating through the ring, and apply the same rule
    for advancing to the next ring element as we do elsewhere. Later
    work will use this helper also in other places.
    
    Fixes: 015632bb30da ("bpf: sk_msg program helper bpf_sk_msg_pull_data")
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    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 89826ce1bbcad04c17d65f7d8fa7b457c3bdce7c
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Wed Aug 29 16:50:35 2018 +0200

    bpf: fix shift upon scatterlist ring wrap-around in bpf_msg_pull_data
    
    [ Upstream commit 2e43f95dd8ee62bc8bf57f2afac37fbd70c8d565 ]
    
    If first_sg and last_sg wraps around in the scatterlist ring, then we
    need to account for that in the shift as well. E.g. crafting such msgs
    where this is the case leads to a hang as shift becomes negative. E.g.
    consider the following scenario:
    
      first_sg := 14     |=>    shift := -12     msg->sg_start := 10
      last_sg  :=  3     |                       msg->sg_end   :=  5
    
    round  1:  i := 15, move_from :=   3, sg[15] := sg[  3]
    round  2:  i :=  0, move_from := -12, sg[ 0] := sg[-12]
    round  3:  i :=  1, move_from := -11, sg[ 1] := sg[-11]
    round  4:  i :=  2, move_from := -10, sg[ 2] := sg[-10]
    [...]
    round 13:  i := 11, move_from :=  -1, sg[ 2] := sg[ -1]
    round 14:  i := 12, move_from :=   0, sg[ 2] := sg[  0]
    round 15:  i := 13, move_from :=   1, sg[ 2] := sg[  1]
    round 16:  i := 14, move_from :=   2, sg[ 2] := sg[  2]
    round 17:  i := 15, move_from :=   3, sg[ 2] := sg[  3]
    [...]
    
    This means we will loop forever and never hit the msg->sg_end condition
    to break out of the loop. When we see that the ring wraps around, then
    the shift should be MAX_SKB_FRAGS - first_sg + last_sg - 1. Meaning,
    the remainder slots from the tail of the ring and the head until last_sg
    combined.
    
    Fixes: 015632bb30da ("bpf: sk_msg program helper bpf_sk_msg_pull_data")
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    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 0920815e24f0b5adc3223fc4d14b0c8f4926c5f3
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Wed Aug 29 16:50:34 2018 +0200

    bpf: fix msg->data/data_end after sg shift repair in bpf_msg_pull_data
    
    [ Upstream commit 0e06b227c5221dd51b5569de93f3b9f532be4a32 ]
    
    In the current code, msg->data is set as sg_virt(&sg[i]) + start - offset
    and msg->data_end relative to it as msg->data + bytes. Using iterator i
    to point to the updated starting scatterlist element holds true for some
    cases, however not for all where we'd end up pointing out of bounds. It
    is /correct/ for these ones:
    
    1) When first finding the starting scatterlist element (sge) where we
       find that the page is already privately owned by the msg and where
       the requested bytes and headroom fit into the sge's length.
    
    However, it's /incorrect/ for the following ones:
    
    2) After we made the requested area private and updated the newly allocated
       page into first_sg slot of the scatterlist ring; when we find that no
       shift repair of the ring is needed where we bail out updating msg->data
       and msg->data_end. At that point i will point to last_sg, which in this
       case is the next elem of first_sg in the ring. The sge at that point
       might as well be invalid (e.g. i == msg->sg_end), which we use for
       setting the range of sg_virt(&sg[i]). The correct one would have been
       first_sg.
    
    3) Similar as in 2) but when we find that a shift repair of the ring is
       needed. In this case we fix up all sges and stop once we've reached the
       end. In this case i will point to will point to the new msg->sg_end,
       and the sge at that point will be invalid. Again here the requested
       range sits in first_sg.
    
    Fixes: 015632bb30da ("bpf: sk_msg program helper bpf_sk_msg_pull_data")
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    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 34930327c610fe16c7fef04170a6b04f3c7144e9
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Tue Aug 28 23:40:26 2018 +0300

    gpio: dwapb: Fix error handling in dwapb_gpio_probe()
    
    [ Upstream commit a618cf4800970d260871c159b7eec014a1da2e81 ]
    
    If dwapb_gpio_add_port() fails in dwapb_gpio_probe(),
    gpio->clk is left undisabled.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c5cdd4730b155c59113e7fd5423a993fe7a56ff
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Aug 14 16:07:03 2018 +0200

    gpiolib-acpi: Register GpioInt ACPI event handlers from a late_initcall
    
    [ Upstream commit 78d3a92edbfb02e8cb83173cad84c3f2d5e1f070 ]
    
    GpioInt ACPI event handlers may see there IRQ triggered immediately
    after requesting the IRQ (esp. level triggered ones). This means that they
    may run before any other (builtin) drivers have had a chance to register
    their OpRegion handlers, leading to errors like this:
    
    [    1.133274] ACPI Error: No handler for Region [PMOP] ((____ptrval____)) [UserDefinedRegion] (20180531/evregion-132)
    [    1.133286] ACPI Error: Region UserDefinedRegion (ID=141) has no handler (20180531/exfldio-265)
    [    1.133297] ACPI Error: Method parse/execution failed \_SB.GPO2._L01, AE_NOT_EXIST (20180531/psparse-516)
    
    We already defer the manual initial trigger of edge triggered interrupts
    by running it from a late_initcall handler, this commit replaces this with
    deferring the entire acpi_gpiochip_request_interrupts() call till then,
    fixing the problem of some OpRegions not being registered yet.
    
    Note that this removes the need to have a list of edge triggered handlers
    which need to run, since the entire acpi_gpiochip_request_interrupts() call
    is now delayed, acpi_gpiochip_request_interrupt() can call these directly
    now.
    
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13db4478a11e1eba2fce50d74cb7068e3e06a522
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Mon Aug 13 19:00:27 2018 +0300

    gpiolib: acpi: Switch to cansleep version of GPIO library call
    
    [ Upstream commit 993b9bc5c47fda86f8ab4e53d68c6fea5ff2764a ]
    
    The commit ca876c7483b6
    
      ("gpiolib-acpi: make sure we trigger edge events at least once on boot")
    
    added a initial value check for pin which is about to be locked as IRQ.
    Unfortunately, not all GPIO drivers can do that atomically. Thus,
    switch to cansleep version of the call. Otherwise we have a warning:
    
    ...
      WARNING: CPU: 2 PID: 1408 at drivers/gpio/gpiolib.c:2883 gpiod_get_value+0x46/0x50
    ...
      RIP: 0010:gpiod_get_value+0x46/0x50
    ...
    
    The change tested on Intel Broxton with Whiskey Cove PMIC GPIO controller.
    
    Fixes: ca876c7483b6 ("gpiolib-acpi: make sure we trigger edge events at least once on boot")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Hans de Goede <hdegoede@redhat.com>
    Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06a62b7a0c5e6409e2112fab7ec32a772ba80185
Author: Sara Sharon <sara.sharon@intel.com>
Date:   Wed Aug 29 08:57:02 2018 +0200

    mac80211: avoid kernel panic when building AMSDU from non-linear SKB
    
    [ Upstream commit 166ac9d55b0ab70b644e429be1f217fe8393cbd7 ]
    
    When building building AMSDU from non-linear SKB, we hit a
    kernel panic when trying to push the padding to the tail.
    Instead, put the padding at the head of the next subframe.
    This also fixes the A-MSDU subframes to not have the padding
    accounted in the length field and not have pad at all for
    the last subframe, both required by the spec.
    
    Fixes: 6e0456b54545 ("mac80211: add A-MSDU tx support")
    Signed-off-by: Sara Sharon <sara.sharon@intel.com>
    Reviewed-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
    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 d935ea54dbd8f086f8f8203b8b959c6e940a0d24
Author: Yuan-Chi Pang <fu3mo6goo@gmail.com>
Date:   Wed Aug 29 09:30:08 2018 +0800

    mac80211: mesh: fix HWMP sequence numbering to follow standard
    
    [ Upstream commit 1f631c3201fe5491808df143d8fcba81b3197ffd ]
    
    IEEE 802.11-2016 14.10.8.3 HWMP sequence numbering says:
    If it is a target mesh STA, it shall update its own HWMP SN to
    maximum (current HWMP SN, target HWMP SN in the PREQ element) + 1
    immediately before it generates a PREP element in response to a
    PREQ element.
    
    Signed-off-by: Yuan-Chi Pang <fu3mo6goo@gmail.com>
    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 a1f9ac32509a116e5f0bb1ac763ba42046ad1f75
Author: Michael Hennerich <michael.hennerich@analog.com>
Date:   Mon Aug 13 15:57:44 2018 +0200

    gpio: adp5588: Fix sleep-in-atomic-context bug
    
    [ Upstream commit 6537886cdc9a637711fd6da980dbb87c2c87c9aa ]
    
    This fixes:
    [BUG] gpio: gpio-adp5588: A possible sleep-in-atomic-context bug
                              in adp5588_gpio_write()
    [BUG] gpio: gpio-adp5588: A possible sleep-in-atomic-context bug
                              in adp5588_gpio_direction_input()
    
    Reported-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f84a6c18fcebca084023a2dfe873851147943f2
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Tue Aug 28 16:15:35 2018 +0200

    bpf: fix several offset tests in bpf_msg_pull_data
    
    [ Upstream commit 5b24109b0563d45094c470684c1f8cea1af269f8 ]
    
    While recently going over bpf_msg_pull_data(), I noticed three
    issues which are fixed in here:
    
    1) When we attempt to find the first scatterlist element (sge)
       for the start offset, we add len to the offset before we check
       for start < offset + len, whereas it should come after when
       we iterate to the next sge to accumulate the offsets. For
       example, given a start offset of 12 with a sge length of 8
       for the first sge in the list would lead us to determine this
       sge as the first sge thinking it covers first 16 bytes where
       start is located, whereas start sits in subsequent sges so
       we would end up pulling in the wrong data.
    
    2) After figuring out the starting sge, we have a short-cut test
       in !msg->sg_copy[i] && bytes <= len. This checks whether it's
       not needed to make the page at the sge private where we can
       just exit by updating msg->data and msg->data_end. However,
       the length test is not fully correct. bytes <= len checks
       whether the requested bytes (end - start offsets) fit into the
       sge's length. The part that is missing is that start must not
       be sge length aligned. Meaning, the start offset into the sge
       needs to be accounted as well on top of the requested bytes
       as otherwise we can access the sge out of bounds. For example
       the sge could have length of 8, our requested bytes could have
       length of 8, but at a start offset of 4, so we also would need
       to pull in 4 bytes of the next sge, when we jump to the out
       label we do set msg->data to sg_virt(&sg[i]) + start - offset
       and msg->data_end to msg->data + bytes which would be oob.
    
    3) The subsequent bytes < copy test for finding the last sge has
       the same issue as in point 2) but also it tests for less than
       rather than less or equal to. Meaning if the sge length is of
       8 and requested bytes of 8 while having the start aligned with
       the sge, we would unnecessarily go and pull in the next sge as
       well to make it private.
    
    Fixes: 015632bb30da ("bpf: sk_msg program helper bpf_sk_msg_pull_data")
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    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 bd266daa9fe1c15fbc7d02c4c9fa9bfc8d5e3f90
Author: Haim Dreyfuss <haim.dreyfuss@intel.com>
Date:   Tue Aug 21 09:22:20 2018 +0300

    nl80211: Pass center frequency in kHz instead of MHz
    
    [ Upstream commit b88d26d97c41680f7327e5fb8061ad0037877f40 ]
    
    freq_reg_info expects to get the frequency in kHz. Instead we
    accidently pass it in MHz.  Thus, currently the function always
    return ERR rule. Fix that.
    
    Fixes: 50f32718e125 ("nl80211: Add wmm rule attribute to NL80211_CMD_GET_WIPHY dump command")
    Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    [fix kHz/MHz in commit message]
    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 5955b8ec20d7928f0750e2c2b5c76f7caca51eb9
Author: Haim Dreyfuss <haim.dreyfuss@intel.com>
Date:   Tue Aug 21 09:22:19 2018 +0300

    nl80211: Fix nla_put_u8 to u16 for NL80211_WMMR_TXOP
    
    [ Upstream commit d3c89bbc7491d5e288ca2993e999d24ba9ff52ad ]
    
    TXOP (also known as Channel Occupancy Time) is u16 and should be
    added using nla_put_u16 instead of u8, fix that.
    
    Fixes: 50f32718e125 ("nl80211: Add wmm rule attribute to NL80211_CMD_GET_WIPHY dump command")
    Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    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 03950ebc945ca242c5c970237a1780402a1b9c74
Author: Jinbum Park <jinb.park7@gmail.com>
Date:   Tue Jul 31 23:10:40 2018 +0900

    mac80211_hwsim: Fix possible Spectre-v1 for hwsim_world_regdom_custom
    
    [ Upstream commit 3a2af7cccbbaf2362db9053a946a6084e12bfa73 ]
    
    User controls @idx which to be used as index of hwsim_world_regdom_custom.
    So, It can be exploited via Spectre-like attack. (speculative execution)
    
    This kind of attack leaks address of hwsim_world_regdom_custom,
    It leads an attacker to bypass security mechanism such as KASLR.
    
    So sanitize @idx before using it to prevent attack.
    
    I leveraged strategy [1] to find and exploit this gadget.
    
    [1] https://github.com/jinb-park/linux-exploit/tree/master/exploit-remaining-spectre-gadget/
    
    Signed-off-by: Jinbum Park <jinb.park7@gmail.com>
    [johannes: unwrap URL]
    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 bfcb6097e5f326bc867670528087419c8bab0fbf
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Wed Aug 22 13:52:21 2018 +0200

    cfg80211: make wmm_rule part of the reg_rule structure
    
    [ Upstream commit 38cb87ee47fb825f6c9d645c019f75b3905c0ab2 ]
    
    Make wmm_rule be part of the reg_rule structure. This simplifies the
    code a lot at the cost of having bigger memory usage. However in most
    cases we have only few reg_rule's and when we do have many like in
    iwlwifi we do not save memory as it allocates a separate wmm_rule for
    each channel anyway.
    
    This also fixes a bug reported in various places where somewhere the
    pointers were corrupted and we ended up doing a null-dereference.
    
    Fixes: 230ebaa189af ("cfg80211: read wmm rules from regulatory database")
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    [rephrase commit message slightly]
    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 9df4febf5e9124a765a8addc340cdc8715212895
Author: Danek Duvall <duvall@comfychair.org>
Date:   Wed Aug 22 16:01:05 2018 -0700

    mac80211_hwsim: correct use of IEEE80211_VHT_CAP_RXSTBC_X
    
    [ Upstream commit d7c863a2f65e48f442379f4ee1846d52e0c5d24d ]
    
    The mac80211_hwsim driver intends to say that it supports up to four
    STBC receive streams, but instead it ends up saying something undefined.
    The IEEE80211_VHT_CAP_RXSTBC_X macros aren't independent bits that can
    be ORed together, but values.  In this case, _4 is the appropriate one
    to use.
    
    Signed-off-by: Danek Duvall <duvall@comfychair.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 3d0d794ca9efd670d4a9841d5334dbbdb3d86eb7
Author: Danek Duvall <duvall@comfychair.org>
Date:   Wed Aug 22 16:01:04 2018 -0700

    mac80211: correct use of IEEE80211_VHT_CAP_RXSTBC_X
    
    [ Upstream commit 67d1ba8a6dc83d90cd58b89fa6cbf9ae35a0cf7f ]
    
    The mod mask for VHT capabilities intends to say that you can override
    the number of STBC receive streams, and it does, but only by accident.
    The IEEE80211_VHT_CAP_RXSTBC_X aren't bits to be set, but values (albeit
    left-shifted).  ORing the bits together gets the right answer, but we
    should use the _MASK macro here instead.
    
    Signed-off-by: Danek Duvall <duvall@comfychair.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 36de3d48270d530be6e5fb916a3bb52c36b87aba
Author: John Fastabend <john.fastabend@gmail.com>
Date:   Fri Aug 24 17:37:00 2018 -0700

    bpf: sockmap, decrement copied count correctly in redirect error case
    
    [ Upstream commit 501ca81760c204ec59b73e4a00bee5971fc0f1b1 ]
    
    Currently, when a redirect occurs in sockmap and an error occurs in
    the redirect call we unwind the scatterlist once in the error path
    of bpf_tcp_sendmsg_do_redirect() and then again in sendmsg(). Then
    in the error path of sendmsg we decrement the copied count by the
    send size.
    
    However, its possible we partially sent data before the error was
    generated. This can happen if do_tcp_sendpages() partially sends the
    scatterlist before encountering a memory pressure error. If this
    happens we need to decrement the copied value (the value tracking
    how many bytes were actually sent to TCP stack) by the number of
    remaining bytes _not_ the entire send size. Otherwise we risk
    confusing userspace.
    
    Also we don't need two calls to free the scatterlist one is
    good enough. So remove the one in bpf_tcp_sendmsg_do_redirect() and
    then properly reduce copied by the number of remaining bytes which
    may in fact be the entire send size if no bytes were sent.
    
    To do this use bool to indicate if free_start_sg() should do mem
    accounting or not.
    
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7feb1f2b5d8d2b878adb7afcc23b6cb3df0eebbe
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Fri Aug 24 22:08:51 2018 +0200

    bpf, sockmap: fix psock refcount leak in bpf_tcp_recvmsg
    
    [ Upstream commit 15c480efab01197c965ce0562a43ffedd852b8f9 ]
    
    In bpf_tcp_recvmsg() we first took a reference on the psock, however
    once we find that there are skbs in the normal socket's receive queue
    we return with processing them through tcp_recvmsg(). Problem is that
    we leak the taken reference on the psock in that path. Given we don't
    really do anything with the psock at this point, move the skb_queue_empty()
    test before we fetch the psock to fix this case.
    
    Fixes: 8934ce2fd081 ("bpf: sockmap redirect ingress support")
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    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 427e7707d9325a2cbf308221cc24e2761fa7245d
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Fri Aug 24 22:08:50 2018 +0200

    bpf, sockmap: fix potential use after free in bpf_tcp_close
    
    [ Upstream commit e06fa9c16ce4b740996189fa5610eabcee734e6c ]
    
    bpf_tcp_close() we pop the psock linkage to a map via psock_map_pop().
    A parallel update on the sock hash map can happen between psock_map_pop()
    and lookup_elem_raw() where we override the element under link->hash /
    link->key. In bpf_tcp_close()'s lookup_elem_raw() we subsequently only
    test whether an element is present, but we do not test whether the
    element is infact the element we were looking for.
    
    We lock the sock in bpf_tcp_close() during that time, so do we hold
    the lock in sock_hash_update_elem(). However, the latter locks the
    sock which is newly updated, not the one we're purging from the hash
    table. This means that while one CPU is doing the lookup from bpf_tcp_close(),
    another CPU is doing the map update in parallel, dropped our sock from
    the hlist and released the psock.
    
    Subsequently the first CPU will find the new sock and attempts to drop
    and release the old sock yet another time. Fix is that we need to check
    the elements for a match after lookup, similar as we do in the sock map.
    Note that the hash tab elems are freed via RCU, so access to their
    link->hash / link->key is fine since we're under RCU read side there.
    
    Fixes: e9db4ef6bf4c ("bpf: sockhash fix omitted bucket lock in sock_close")
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    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 0dcf1bcde827e6ac96c52cc08e4b01f8aa110f73
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Aug 27 12:23:01 2018 +0300

    scsi: aacraid: fix a signedness bug
    
    [ Upstream commit b9eb3b14f1dbf16bf27b6c1ffe6b8c00ec945c9b ]
    
    The problem is that ->reset_state is a u8 but it can be set to -1 or -2 in
    aac_tmf_callback() and the error handling in aac_eh_target_reset() relies
    on it to be signed.
    
    [mkp: fixed typo]
    
    Fixes: 0d643ff3c353 ("scsi: aacraid: use aac_tmf_callback for reset fib")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.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 c08d2054307f7fbc0fc7ed98dac6933792057fba
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Thu Aug 23 23:23:06 2018 +0200

    scsi: libata: Add missing newline at end of file
    
    [ Upstream commit 4e8065aa6c6f50765290be27ab8a64a4e44cb009 ]
    
    With gcc 4.1.2:
    
        drivers/ata/libata-core.c:7396:33: warning: no newline at end of file
    
    Fixes: 2fa4a32613c9182b ("scsi: libsas: dynamically allocate and free ata host")
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    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 4f3e708120f30ac8899516558a540ddf3bc90f11
Author: Varun Prakash <varun@chelsio.com>
Date:   Sat Aug 11 21:14:08 2018 +0530

    scsi: csiostor: fix incorrect port capabilities
    
    [ Upstream commit 68bdc630721c40e908d22cffe07b5ca225a69f6e ]
    
     - use be32_to_cpu() instead of ntohs() for 32 bit port capabilities.
    
     - add a new function fwcaps32_to_caps16() to convert 32 bit port
       capabilities to 16 bit port capabilities.
    
    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 74a3017016596f489eb63bb4e5739bd984e0e9da
Author: Varun Prakash <varun@chelsio.com>
Date:   Sat Aug 11 21:03:58 2018 +0530

    scsi: csiostor: add a check for NULL pointer after kmalloc()
    
    [ Upstream commit 89809b028b6f54187b7d81a0c69b35d394c52e62 ]
    
    Reported-by: Colin Ian King <colin.king@canonical.com>
    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 c31c8008c75756816f9a571eb8656180f1295577
Author: Anand Jain <anand.jain@oracle.com>
Date:   Mon Aug 6 18:12:37 2018 +0800

    btrfs: btrfs_shrink_device should call commit transaction at the end
    
    [ Upstream commit 801660b040d132f67fac6a95910ad307c5929b49 ]
    
    Test case btrfs/164 reports use-after-free:
    
    [ 6712.084324] general protection fault: 0000 [#1] PREEMPT SMP
    ..
    [ 6712.195423]  btrfs_update_commit_device_size+0x75/0xf0 [btrfs]
    [ 6712.201424]  btrfs_commit_transaction+0x57d/0xa90 [btrfs]
    [ 6712.206999]  btrfs_rm_device+0x627/0x850 [btrfs]
    [ 6712.211800]  btrfs_ioctl+0x2b03/0x3120 [btrfs]
    
    Reason for this is that btrfs_shrink_device adds the resized device to
    the fs_devices::resized_devices after it has called the last commit
    transaction.
    
    So the list fs_devices::resized_devices is not empty when
    btrfs_shrink_device returns.  Now the parent function
    btrfs_rm_device calls:
    
            btrfs_close_bdev(device);
            call_rcu(&device->rcu, free_device_rcu);
    
    and then does the transactio ncommit. It goes through the
    fs_devices::resized_devices in btrfs_update_commit_device_size and
    leads to use-after-free.
    
    Fix this by making sure btrfs_shrink_device calls the last needed
    btrfs_commit_transaction before the return. This is consistent with what
    the grow counterpart does and this makes sure the on-disk state is
    persistent when the function returns.
    
    Reported-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
    Tested-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
    Signed-off-by: Anand Jain <anand.jain@oracle.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    [ update changelog ]
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d6ba1ecba26c8033bc4adc5f9723d029f524131
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Jun 18 09:29:57 2018 +0200

    cfg80211: remove division by size of sizeof(struct ieee80211_wmm_rule)
    
    [ Upstream commit 8a54d8fc160e67ad485d95a0322ce1221f80770a ]
    
    Pointer arithmetic already adjusts by the size of the struct,
    so the sizeof() calculation is wrong. This is basically the
    same as Colin King's patch for similar code in the iwlwifi
    driver.
    
    Fixes: 230ebaa189af ("cfg80211: read wmm rules from regulatory database")
    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 1f0f925f98b4aa818b20ac6c4f7c4a7603a3d89c
Author: Paul Mackerras <paulus@ozlabs.org>
Date:   Mon Aug 20 16:05:45 2018 +1000

    KVM: PPC: Book3S HV: Don't truncate HPTE index in xlate function
    
    [ Upstream commit 46dec40fb741f00f1864580130779aeeaf24fb3d ]
    
    This fixes a bug which causes guest virtual addresses to get translated
    to guest real addresses incorrectly when the guest is using the HPT MMU
    and has more than 256GB of RAM, or more specifically has a HPT larger
    than 2GB.  This has showed up in testing as a failure of the host to
    emulate doorbell instructions correctly on POWER9 for HPT guests with
    more than 256GB of RAM.
    
    The bug is that the HPTE index in kvmppc_mmu_book3s_64_hv_xlate()
    is stored as an int, and in forming the HPTE address, the index gets
    shifted left 4 bits as an int before being signed-extended to 64 bits.
    The simple fix is to make the variable a long int, matching the
    return type of kvmppc_hv_find_lock_hpte(), which is what calculates
    the index.
    
    Fixes: 697d3899dcb4 ("KVM: PPC: Implement MMIO emulation support for Book3S HV guests")
    Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e07d06651bc72a7a0449ed9961cbc56ad4b41fe
Author: Robbie Ko <robbieko@synology.com>
Date:   Mon Aug 6 10:30:30 2018 +0800

    Btrfs: fix unexpected failure of nocow buffered writes after snapshotting when low on space
    
    [ Upstream commit 8ecebf4d767e2307a946c8905278d6358eda35c3 ]
    
    Commit e9894fd3e3b3 ("Btrfs: fix snapshot vs nocow writting") forced
    nocow writes to fallback to COW, during writeback, when a snapshot is
    created. This resulted in writes made before creating the snapshot to
    unexpectedly fail with ENOSPC during writeback when success (0) was
    returned to user space through the write system call.
    
    The steps leading to this problem are:
    
    1. When it's not possible to allocate data space for a write, the
       buffered write path checks if a NOCOW write is possible.  If it is,
       it will not reserve space and success (0) is returned to user space.
    
    2. Then when a snapshot is created, the root's will_be_snapshotted
       atomic is incremented and writeback is triggered for all inode's that
       belong to the root being snapshotted. Incrementing that atomic forces
       all previous writes to fallback to COW during writeback (running
       delalloc).
    
    3. This results in the writeback for the inodes to fail and therefore
       setting the ENOSPC error in their mappings, so that a subsequent
       fsync on them will report the error to user space. So it's not a
       completely silent data loss (since fsync will report ENOSPC) but it's
       a very unexpected and undesirable behaviour, because if a clean
       shutdown/unmount of the filesystem happens without previous calls to
       fsync, it is expected to have the data present in the files after
       mounting the filesystem again.
    
    So fix this by adding a new atomic named snapshot_force_cow to the
    root structure which prevents this behaviour and works the following way:
    
    1. It is incremented when we start to create a snapshot after triggering
       writeback and before waiting for writeback to finish.
    
    2. This new atomic is now what is used by writeback (running delalloc)
       to decide whether we need to fallback to COW or not. Because we
       incremented this new atomic after triggering writeback in the
       snapshot creation ioctl, we ensure that all buffered writes that
       happened before snapshot creation will succeed and not fallback to
       COW (which would make them fail with ENOSPC).
    
    3. The existing atomic, will_be_snapshotted, is kept because it is used
       to force new buffered writes, that start after we started
       snapshotting, to reserve data space even when NOCOW is possible.
       This makes these writes fail early with ENOSPC when there's no
       available space to allocate, preventing the unexpected behaviour of
       writeback later failing with ENOSPC due to a fallback to COW mode.
    
    Fixes: e9894fd3e3b3 ("Btrfs: fix snapshot vs nocow writting")
    Signed-off-by: Robbie Ko <robbieko@synology.com>
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32c7667fbcbd058f8e5c055e48de5bcd282c2463
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Aug 15 18:17:03 2018 +0200

    mac80211_hwsim: require at least one channel
    
    [ Upstream commit 484004339d4514fde425f6e8a9f6a6cc979bb0c3 ]
    
    Syzbot continues to try to create mac80211_hwsim radios, and
    manages to pass parameters that are later checked with WARN_ON
    in cfg80211 - catch another one in hwsim directly.
    
    Reported-by: syzbot+2a12f11c306afe871c1f@syzkaller.appspotmail.com
    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 2466b26094bc775ad73e2830de97f47511d83d66
Author: Toke Høiland-Jørgensen <toke@toke.dk>
Date:   Mon Aug 13 14:16:25 2018 +0200

    mac80211: Run TXQ teardown code before de-registering interfaces
    
    [ Upstream commit 77cfaf52eca5cac30ed029507e0cab065f888995 ]
    
    The TXQ teardown code can reference the vif data structures that are
    stored in the netdev private memory area if there are still packets on
    the queue when it is being freed. Since the TXQ teardown code is run
    after the netdevs are freed, this can lead to a use-after-free. Fix this
    by moving the TXQ teardown code to earlier in ieee80211_unregister_hw().
    
    Reported-by: Ben Greear <greearb@candelatech.com>
    Tested-by: Ben Greear <greearb@candelatech.com>
    Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
    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 3964f22686a64dd1cecba43a8e68266abe787a55
Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date:   Thu Sep 27 14:39:19 2018 -0400

    rseq/selftests: fix parametrized test with -fpie
    
    commit ce01a1575f45bf319e374592656441021a7f5823 upstream.
    
    On x86-64, the parametrized selftest code for rseq crashes with a
    segmentation fault when compiled with -fpie. This happens when the
    param_test binary is loaded at an address beyond 32-bit on x86-64.
    
    The issue is caused by use of a 32-bit register to hold the address
    of the loop counter variable.
    
    Fix this by using a 64-bit register to calculate the address of the
    loop counter variables as an offset from rip.
    
    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Acked-by: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com>
    Cc: <stable@vger.kernel.org> # v4.18
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Joel Fernandes <joelaf@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Watson <davejwatson@fb.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: linux-kselftest@vger.kernel.org
    Cc: "H . Peter Anvin" <hpa@zytor.com>
    Cc: Chris Lameter <cl@linux.com>
    Cc: Russell King <linux@arm.linux.org.uk>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com>
    Cc: Paul Turner <pjt@google.com>
    Cc: Boqun Feng <boqun.feng@gmail.com>
    Cc: Josh Triplett <josh@joshtriplett.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Ben Maurer <bmaurer@fb.com>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
