commit 8278355efb01231cb6739fe9576d5d5b0977d8e1
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Feb 12 19:45:02 2019 +0100

    Linux 4.9.156

commit f87140275ee63a0170d43e5db4eab53ddfb557ec
Author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Date:   Fri Nov 2 21:49:57 2018 +0100

    ath9k: dynack: check da->enabled first in sampling routines
    
    commit 9d3d65a91f027b8a9af5e63752d9b78cb10eb92d upstream.
    
    Check da->enabled flag first in ath_dynack_sample_tx_ts and
    ath_dynack_sample_ack_ts routines in order to avoid useless
    processing
    
    Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
    Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7b2ead55ac758757c86d81097a304a6ea67e774
Author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Date:   Fri Nov 2 21:49:58 2018 +0100

    ath9k: dynack: make ewma estimation faster
    
    commit 0c60c490830a1a756c80f8de8d33d9c6359d4a36 upstream.
    
    In order to make propagation time estimation faster,
    use current sample as ewma output value during 'late ack'
    tracking
    
    Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
    Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd10eb88e3d0ad4d140b397f1509bc37bbaa2c27
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed Dec 19 17:53:50 2018 +0100

    perf/x86/intel: Delay memory deallocation until x86_pmu_dead_cpu()
    
    commit 602cae04c4864bb3487dfe4c2126c8d9e7e1614a upstream.
    
    intel_pmu_cpu_prepare() allocated memory for ->shared_regs among other
    members of struct cpu_hw_events. This memory is released in
    intel_pmu_cpu_dying() which is wrong. The counterpart of the
    intel_pmu_cpu_prepare() callback is x86_pmu_dead_cpu().
    
    Otherwise if the CPU fails on the UP path between CPUHP_PERF_X86_PREPARE
    and CPUHP_AP_PERF_X86_STARTING then it won't release the memory but
    allocate new memory on the next attempt to online the CPU (leaking the
    old memory).
    Also, if the CPU down path fails between CPUHP_AP_PERF_X86_STARTING and
    CPUHP_PERF_X86_PREPARE then the CPU will go back online but never
    allocate the memory that was released in x86_pmu_dying_cpu().
    
    Make the memory allocation/free symmetrical in regard to the CPU hotplug
    notifier by moving the deallocation to intel_pmu_cpu_dead().
    
    This started in commit:
    
       a7e3ed1e47011 ("perf: Add support for supplementary event registers").
    
    In principle the bug was introduced in v2.6.39 (!), but it will almost
    certainly not backport cleanly across the big CPU hotplug rewrite between v4.7-v4.15...
    
    [ bigeasy: Added patch description. ]
    [ mingo: Added backporting guidance. ]
    
    Reported-by: He Zhe <zhe.he@windriver.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> # With developer hat on
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> # With maintainer hat on
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: acme@kernel.org
    Cc: bp@alien8.de
    Cc: hpa@zytor.com
    Cc: jolsa@kernel.org
    Cc: kan.liang@linux.intel.com
    Cc: namhyung@kernel.org
    Cc: <stable@vger.kernel.org>
    Fixes: a7e3ed1e47011 ("perf: Add support for supplementary event registers").
    Link: https://lkml.kernel.org/r/20181219165350.6s3jvyxbibpvlhtq@linutronix.de
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    [ He Zhe: Fixes conflict caused by missing disable_counter_freeze which is
     introduced since v4.20 af3bdb991a5cb. ]
    Signed-off-by: He Zhe <zhe.he@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a469758223ee56a7c4b9d871f0919eca6b355b8
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Thu Jan 17 12:42:16 2019 -0800

    IB/hfi1: Add limit test for RC/UC send via loopback
    
    commit 09ce351dff8e7636af0beb72cd4a86c3904a0500 upstream.
    
    Fix potential memory corruption and panic in loopback for IB_WR_SEND
    variants.
    
    The code blindly assumes the posted length will fit in the fetched rwqe,
    which is not a valid assumption.
    
    Fix by adding a limit test, and triggering the appropriate send completion
    and putting the QP in an error state.  This mimics the handling for
    non-loopback QPs.
    
    Fixes: 15703461533a ("IB/{hfi1, qib, rdmavt}: Move ruc_loopback to rdmavt")
    Cc: <stable@vger.kernel.org> #v4.20+
    Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>

commit b6666764b6a0a99308a126a8314523763d31978b
Author: Scott Bauer <scott.bauer@intel.com>
Date:   Fri Aug 11 14:54:32 2017 -0600

    PCI: vmd: Free up IRQs on suspend path
    
    commit e2b1820bd5d0962d6f271b0d47c3a0e38647df2f upstream.
    
    Free up the IRQs we request on the suspend path and reallocate them on the
    resume path.
    
    Fixes this error:
    
      CPU 111 disable failed: CPU has 9 vectors assigned and there are only 0 available.
      Error taking CPU111 down: -34
      Non-boot CPUs are not disabled
      Enabling non-boot CPUs ...
    
    Signed-off-by: Scott Bauer <scott.bauer@intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Keith Busch <keith.busch@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Reviewed-by: Jon Derrick <jonathan.derrick@intel.com>
    Signed-off-by: Sushma Kalakota <sushmax.kalakota@intel.com>

commit 7f3829912e0ca5cfdca0fe6164fca4142ad87a9e
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Fri Feb 1 14:20:31 2019 -0800

    oom, oom_reaper: do not enqueue same task twice
    
    commit 9bcdeb51bd7d2ae9fe65ea4d60643d2aeef5bfe3 upstream.
    
    Arkadiusz reported that enabling memcg's group oom killing causes
    strange memcg statistics where there is no task in a memcg despite the
    number of tasks in that memcg is not 0.  It turned out that there is a
    bug in wake_oom_reaper() which allows enqueuing same task twice which
    makes impossible to decrease the number of tasks in that memcg due to a
    refcount leak.
    
    This bug existed since the OOM reaper became invokable from
    task_will_free_mem(current) path in out_of_memory() in Linux 4.7,
    
      T1@P1     |T2@P1     |T3@P1     |OOM reaper
      ----------+----------+----------+------------
                                       # Processing an OOM victim in a different memcg domain.
                            try_charge()
                              mem_cgroup_out_of_memory()
                                mutex_lock(&oom_lock)
                 try_charge()
                   mem_cgroup_out_of_memory()
                     mutex_lock(&oom_lock)
      try_charge()
        mem_cgroup_out_of_memory()
          mutex_lock(&oom_lock)
                                out_of_memory()
                                  oom_kill_process(P1)
                                    do_send_sig_info(SIGKILL, @P1)
                                    mark_oom_victim(T1@P1)
                                    wake_oom_reaper(T1@P1) # T1@P1 is enqueued.
                                mutex_unlock(&oom_lock)
                     out_of_memory()
                       mark_oom_victim(T2@P1)
                       wake_oom_reaper(T2@P1) # T2@P1 is enqueued.
                     mutex_unlock(&oom_lock)
          out_of_memory()
            mark_oom_victim(T1@P1)
            wake_oom_reaper(T1@P1) # T1@P1 is enqueued again due to oom_reaper_list == T2@P1 && T1@P1->oom_reaper_list == NULL.
          mutex_unlock(&oom_lock)
                                       # Completed processing an OOM victim in a different memcg domain.
                                       spin_lock(&oom_reaper_lock)
                                       # T1P1 is dequeued.
                                       spin_unlock(&oom_reaper_lock)
    
    but memcg's group oom killing made it easier to trigger this bug by
    calling wake_oom_reaper() on the same task from one out_of_memory()
    request.
    
    Fix this bug using an approach used by commit 855b018325737f76 ("oom,
    oom_reaper: disable oom_reaper for oom_kill_allocating_task").  As a
    side effect of this patch, this patch also avoids enqueuing multiple
    threads sharing memory via task_will_free_mem(current) path.
    
    Link: http://lkml.kernel.org/r/e865a044-2c10-9858-f4ef-254bc71d6cc2@i-love.sakura.ne.jp
    Link: http://lkml.kernel.org/r/5ee34fc6-1485-34f8-8790-903ddabaa809@i-love.sakura.ne.jp
    Fixes: af8e15cc85a25315 ("oom, oom_reaper: do not enqueue task if it is on the oom_reaper_list head")
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Reported-by: Arkadiusz Miskiewicz <arekm@maven.pl>
    Tested-by: Arkadiusz Miskiewicz <arekm@maven.pl>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Acked-by: Roman Gushchin <guro@fb.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Aleksa Sarai <asarai@suse.de>
    Cc: Jay Kamat <jgkamat@fb.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d13ed61172034ca603cc640b052217c42d2e4f84
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jan 31 17:43:16 2019 +0800

    serial: fix race between flush_to_ldisc and tty_open
    
    commit fedb5760648a291e949f2380d383b5b2d2749b5e upstream.
    
    There still is a race window after the commit b027e2298bd588
    ("tty: fix data race between tty_init_dev and flush of buf"),
    and we encountered this crash issue if receive_buf call comes
    before tty initialization completes in tty_open and
    tty->driver_data may be NULL.
    
    CPU0                                    CPU1
    ----                                    ----
                                      tty_open
                                       tty_init_dev
                                         tty_ldisc_unlock
                                           schedule
    flush_to_ldisc
     receive_buf
      tty_port_default_receive_buf
       tty_ldisc_receive_buf
        n_tty_receive_buf_common
          __receive_buf
           uart_flush_chars
            uart_start
            /*tty->driver_data is NULL*/
                                       tty->ops->open
                                       /*init tty->driver_data*/
    
    it can be fixed by extending ldisc semaphore lock in tty_init_dev
    to driver_data initialized completely after tty->ops->open(), but
    this will lead to get lock on one function and unlock in some other
    function, and hard to maintain, so fix this race only by checking
    tty->driver_data when receiving, and return if tty->driver_data
    is NULL, and n_tty_receive_buf_common maybe calls uart_unthrottle,
    so add the same check.
    
    Because the tty layer knows nothing about the driver associated with the
    device, the tty layer can not do anything here, it is up to the tty
    driver itself to check for this type of race.  Fix up the serial driver
    to correctly check to see if it is finished binding with the device when
    being called, and if not, abort the tty calls.
    
    [Description and problem report and testing from Li RongQing, I rewrote
    the patch to be in the serial layer, not in the tty core - gregkh]
    
    Reported-by: Li RongQing <lirongqing@baidu.com>
    Tested-by: Li RongQing <lirongqing@baidu.com>
    Signed-off-by: Wang Li <wangli39@baidu.com>
    Signed-off-by: Zhang Yu <zhangyu31@baidu.com>
    Signed-off-by: Li RongQing <lirongqing@baidu.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7231ec1770e52b45a305356d40630e51f21a4f98
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Tue Jan 22 17:34:39 2019 -0600

    perf tests evsel-tp-sched: Fix bitwise operator
    
    commit 489338a717a0dfbbd5a3fabccf172b78f0ac9015 upstream.
    
    Notice that the use of the bitwise OR operator '|' always leads to true
    in this particular case, which seems a bit suspicious due to the context
    in which this expression is being used.
    
    Fix this by using bitwise AND operator '&' instead.
    
    This bug was detected with the help of Coccinelle.
    
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: stable@vger.kernel.org
    Fixes: 6a6cd11d4e57 ("perf test: Add test for the sched tracepoint format fields")
    Link: http://lkml.kernel.org/r/20190122233439.GA5868@embeddedor
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9269ba3cb74c97cea89c9347042a0d89e4f4b0fc
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Thu Jan 10 14:27:45 2019 +0000

    perf/core: Don't WARN() for impossible ring-buffer sizes
    
    commit 9dff0aa95a324e262ffb03f425d00e4751f3294e upstream.
    
    The perf tool uses /proc/sys/kernel/perf_event_mlock_kb to determine how
    large its ringbuffer mmap should be. This can be configured to arbitrary
    values, which can be larger than the maximum possible allocation from
    kmalloc.
    
    When this is configured to a suitably large value (e.g. thanks to the
    perf fuzzer), attempting to use perf record triggers a WARN_ON_ONCE() in
    __alloc_pages_nodemask():
    
       WARNING: CPU: 2 PID: 5666 at mm/page_alloc.c:4511 __alloc_pages_nodemask+0x3f8/0xbc8
    
    Let's avoid this by checking that the requested allocation is possible
    before calling kzalloc.
    
    Reported-by: Julien Thierry <julien.thierry@arm.com>
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Julien Thierry <julien.thierry@arm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/20190110142745.25495-1-mark.rutland@arm.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2e3f4e632991fa8b6e8f00aae6ae0cb635bd67b
Author: Tony Luck <tony.luck@intel.com>
Date:   Thu Jan 31 16:33:41 2019 -0800

    x86/MCE: Initialize mce.bank in the case of a fatal error in mce_no_way_out()
    
    commit d28af26faa0b1daf3c692603d46bc4687c16f19e upstream.
    
    Internal injection testing crashed with a console log that said:
    
      mce: [Hardware Error]: CPU 7: Machine Check Exception: f Bank 0: bd80000000100134
    
    This caused a lot of head scratching because the MCACOD (bits 15:0) of
    that status is a signature from an L1 data cache error. But Linux says
    that it found it in "Bank 0", which on this model CPU only reports L1
    instruction cache errors.
    
    The answer was that Linux doesn't initialize "m->bank" in the case that
    it finds a fatal error in the mce_no_way_out() pre-scan of banks. If
    this was a local machine check, then this partially initialized struct
    mce is being passed to mce_panic().
    
    Fix is simple: just initialize m->bank in the case of a fatal error.
    
    Fixes: 40c36e2741d7 ("x86/mce: Fix incorrect "Machine check from unknown source" message")
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vishal Verma <vishal.l.verma@intel.com>
    Cc: x86-ml <x86@kernel.org>
    Cc: stable@vger.kernel.org # v4.18 Note pre-v5.0 arch/x86/kernel/cpu/mce/core.c was called arch/x86/kernel/cpu/mcheck/mce.c
    Link: https://lkml.kernel.org/r/20190201003341.10638-1-tony.luck@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 296c2f019a4bf230b4bc5f21bf0fbdc76584c102
Author: Kan Liang <kan.liang@linux.intel.com>
Date:   Sun Jan 27 06:53:14 2019 -0800

    perf/x86/intel/uncore: Add Node ID mask
    
    commit 9e63a7894fd302082cf3627fe90844421a6cbe7f upstream.
    
    Some PCI uncore PMUs cannot be registered on an 8-socket system (HPE
    Superdome Flex).
    
    To understand which Socket the PCI uncore PMUs belongs to, perf retrieves
    the local Node ID of the uncore device from CPUNODEID(0xC0) of the PCI
    configuration space, and the mapping between Socket ID and Node ID from
    GIDNIDMAP(0xD4). The Socket ID can be calculated accordingly.
    
    The local Node ID is only available at bit 2:0, but current code doesn't
    mask it. If a BIOS doesn't clear the rest of the bits, an incorrect Node ID
    will be fetched.
    
    Filter the Node ID by adding a mask.
    
    Reported-by: Song Liu <songliubraving@fb.com>
    Tested-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@vger.kernel.org> # v3.7+
    Fixes: 7c94ee2e0917 ("perf/x86: Add Intel Nehalem and Sandy Bridge-EP uncore support")
    Link: https://lkml.kernel.org/r/1548600794-33162-1-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2c34d20660f24a40b46d0d341547b84f3fff3b0
Author: Peter Shier <pshier@google.com>
Date:   Thu Oct 11 11:46:46 2018 -0700

    KVM: nVMX: unconditionally cancel preemption timer in free_nested (CVE-2019-7221)
    
    commit ecec76885bcfe3294685dc363fd1273df0d5d65f upstream.
    
    Bugzilla: 1671904
    
    There are multiple code paths where an hrtimer may have been started to
    emulate an L1 VMX preemption timer that can result in a call to free_nested
    without an intervening L2 exit where the hrtimer is normally
    cancelled. Unconditionally cancel in free_nested to cover all cases.
    
    Embargoed until Feb 7th 2019.
    
    Signed-off-by: Peter Shier <pshier@google.com>
    Reported-by: Jim Mattson <jmattson@google.com>
    Reviewed-by: Jim Mattson <jmattson@google.com>
    Reported-by: Felix Wilhelm <fwilhelm@google.com>
    Cc: stable@kernel.org
    Message-Id: <20181011184646.154065-1-pshier@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c42df1f9f82f73ebc6c0f54b1df295ffc5a7b4b
Author: Jann Horn <jannh@google.com>
Date:   Sat Jan 26 01:54:33 2019 +0100

    kvm: fix kvm_ioctl_create_device() reference counting (CVE-2019-6974)
    
    commit cfa39381173d5f969daf43582c95ad679189cbc9 upstream.
    
    kvm_ioctl_create_device() does the following:
    
    1. creates a device that holds a reference to the VM object (with a borrowed
       reference, the VM's refcount has not been bumped yet)
    2. initializes the device
    3. transfers the reference to the device to the caller's file descriptor table
    4. calls kvm_get_kvm() to turn the borrowed reference to the VM into a real
       reference
    
    The ownership transfer in step 3 must not happen before the reference to the VM
    becomes a proper, non-borrowed reference, which only happens in step 4.
    After step 3, an attacker can close the file descriptor and drop the borrowed
    reference, which can cause the refcount of the kvm object to drop to zero.
    
    This means that we need to grab a reference for the device before
    anon_inode_getfd(), otherwise the VM can disappear from under us.
    
    Fixes: 852b6d57dc7f ("kvm: add device control API")
    Cc: stable@kernel.org
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f5c61e4f6b5a1cc66c61eb68334f725031948a7e
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Jan 29 18:41:16 2019 +0100

    KVM: x86: work around leak of uninitialized stack contents (CVE-2019-7222)
    
    commit 353c0956a618a07ba4bbe7ad00ff29fe70e8412a upstream.
    
    Bugzilla: 1671930
    
    Emulation of certain instructions (VMXON, VMCLEAR, VMPTRLD, VMWRITE with
    memory operand, INVEPT, INVVPID) can incorrectly inject a page fault
    when passed an operand that points to an MMIO address.  The page fault
    will use uninitialized kernel stack memory as the CR2 and error code.
    
    The right behavior would be to abort the VM with a KVM_EXIT_INTERNAL_ERROR
    exit to userspace; however, it is not an easy fix, so for now just
    ensure that the error code and CR2 are zero.
    
    Embargoed until Feb 7th 2019.
    
    Reported-by: Felix Wilhelm <fwilhelm@google.com>
    Cc: stable@kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d26358590bb2be063453412cfeec5afefe55d030
Author: James Bottomley <James.Bottomley@HansenPartnership.com>
Date:   Wed Jan 30 16:42:12 2019 -0800

    scsi: aic94xx: fix module loading
    
    commit 42caa0edabd6a0a392ec36a5f0943924e4954311 upstream.
    
    The aic94xx driver is currently failing to load with errors like
    
    sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:03.0/0000:02:00.3/0000:07:02.0/revision'
    
    Because the PCI code had recently added a file named 'revision' to every
    PCI device.  Fix this by renaming the aic94xx revision file to
    aic_revision.  This is safe to do for us because as far as I can tell,
    there's nothing in userspace relying on the current aic94xx revision file
    so it can be renamed without breaking anything.
    
    Fixes: 702ed3be1b1b (PCI: Create revision file in sysfs)
    Cc: stable@vger.kernel.org
    Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27d8c602413d0ec3a55cb21eef6a3f768b77d7c7
Author: Paul Elder <paul.elder@ideasonboard.com>
Date:   Wed Jan 30 08:13:21 2019 -0600

    usb: gadget: musb: fix short isoc packets with inventra dma
    
    commit c418fd6c01fbc5516a2cd1eaf1df1ec86869028a upstream.
    
    Handling short packets (length < max packet size) in the Inventra DMA
    engine in the MUSB driver causes the MUSB DMA controller to hang. An
    example of a problem that is caused by this problem is when streaming
    video out of a UVC gadget, only the first video frame is transferred.
    
    For short packets (mode-0 or mode-1 DMA), MUSB_TXCSR_TXPKTRDY must be
    set manually by the driver. This was previously done in musb_g_tx
    (musb_gadget.c), but incorrectly (all csr flags were cleared, and only
    MUSB_TXCSR_MODE and MUSB_TXCSR_TXPKTRDY were set). Fixing that problem
    allows some requests to be transferred correctly, but multiple requests
    were often put together in one USB packet, and caused problems if the
    packet size was not a multiple of 4. Instead, set MUSB_TXCSR_TXPKTRDY
    in dma_controller_irq (musbhsdma.c), just like host mode transfers.
    
    This topic was originally tackled by Nicolas Boichat [0] [1] and is
    discussed further at [2] as part of his GSoC project [3].
    
    [0] https://groups.google.com/forum/?hl=en#!topic/beagleboard-gsoc/k8Azwfp75CU
    [1] https://gitorious.org/beagleboard-usbsniffer/beagleboard-usbsniffer-kernel/commit/b0be3b6cc195ba732189b04f1d43ec843c3e54c9?p=beagleboard-usbsniffer:beagleboard-usbsniffer-kernel.git;a=patch;h=b0be3b6cc195ba732189b04f1d43ec843c3e54c9
    [2] http://beagleboard-usbsniffer.blogspot.com/2010/07/musb-isochronous-transfers-fixed.html
    [3] http://elinux.org/BeagleBoard/GSoC/USBSniffer
    
    Fixes: 550a7375fe72 ("USB: Add MUSB and TUSB support")
    Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c74a4d36f353ea795f5da0c328f9b60de60e9106
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Tue Jan 22 15:28:08 2019 -0600

    usb: gadget: udc: net2272: Fix bitwise and boolean operations
    
    commit 07c69f1148da7de3978686d3af9263325d9d60bd upstream.
    
    (!x & y) strikes again.
    
    Fix bitwise and boolean operations by enclosing the expression:
    
            intcsr & (1 << NET2272_PCI_IRQ)
    
    in parentheses, before applying the boolean operator '!'.
    
    Notice that this code has been there since 2011. So, it would
    be helpful if someone can double-check this.
    
    This issue was detected with the help of Coccinelle.
    
    Fixes: ceb80363b2ec ("USB: net2272: driver for PLX NET2272 USB device controller")
    Cc: stable@vger.kernel.org
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2fc78043df925fb2501cadc77a798f72bf21208e
Author: Bin Liu <b-liu@ti.com>
Date:   Wed Jan 16 11:54:07 2019 -0600

    usb: phy: am335x: fix race condition in _probe
    
    commit a53469a68eb886e84dd8b69a1458a623d3591793 upstream.
    
    power off the phy should be done before populate the phy. Otherwise,
    am335x_init() could be called by the phy owner to power on the phy first,
    then am335x_phy_probe() turns off the phy again without the caller knowing
    it.
    
    Fixes: 2fc711d76352 ("usb: phy: am335x: Enable USB remote wakeup using PHY wakeup")
    Cc: stable@vger.kernel.org # v3.18+
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9f82def817a91b5c7f66844fc94397056c61792
Author: Leonid Iziumtsev <leonid.iziumtsev@gmail.com>
Date:   Tue Jan 15 17:15:23 2019 +0000

    dmaengine: imx-dma: fix wrong callback invoke
    
    commit 341198eda723c8c1cddbb006a89ad9e362502ea2 upstream.
    
    Once the "ld_queue" list is not empty, next descriptor will migrate
    into "ld_active" list. The "desc" variable will be overwritten
    during that transition. And later the dmaengine_desc_get_callback_invoke()
    will use it as an argument. As result we invoke wrong callback.
    
    That behaviour was in place since:
    commit fcaaba6c7136 ("dmaengine: imx-dma: fix callback path in tasklet").
    But after commit 4cd13c21b207 ("softirq: Let ksoftirqd do its job")
    things got worse, since possible delay between tasklet_schedule()
    from DMA irq handler and actual tasklet function execution got bigger.
    And that gave more time for new DMA request to be submitted and
    to be put into "ld_queue" list.
    
    It has been noticed that DMA issue is causing problems for "mxc-mmc"
    driver. While stressing the system with heavy network traffic and
    writing/reading to/from sd card simultaneously the timeout may happen:
    
    10013000.sdhci: mxcmci_watchdog: read time out (status = 0x30004900)
    
    That often lead to file system corruption.
    
    Signed-off-by: Leonid Iziumtsev <leonid.iziumtsev@gmail.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3c8307940e46e772e39694178776c73ec9be8f77
Author: Lukas Wunner <lukas@wunner.de>
Date:   Wed Jan 23 09:26:00 2019 +0100

    dmaengine: bcm2835: Fix abort of transactions
    
    commit 9e528c799d17a4ac37d788c81440b50377dd592d upstream.
    
    There are multiple issues with bcm2835_dma_abort() (which is called on
    termination of a transaction):
    
    * The algorithm to abort the transaction first pauses the channel by
      clearing the ACTIVE flag in the CS register, then waits for the PAUSED
      flag to clear.  Page 49 of the spec documents the latter as follows:
    
      "Indicates if the DMA is currently paused and not transferring data.
       This will occur if the active bit has been cleared [...]"
       https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf
    
      So the function is entering an infinite loop because it is waiting for
      PAUSED to clear which is always set due to the function having cleared
      the ACTIVE flag.  The only thing that's saving it from itself is the
      upper bound of 10000 loop iterations.
    
      The code comment says that the intention is to "wait for any current
      AXI transfer to complete", so the author probably wanted to check the
      WAITING_FOR_OUTSTANDING_WRITES flag instead.  Amend the function
      accordingly.
    
    * The CS register is only read at the beginning of the function.  It
      needs to be read again after pausing the channel and before checking
      for outstanding writes, otherwise writes which were issued between
      the register read at the beginning of the function and pausing the
      channel may not be waited for.
    
    * The function seeks to abort the transfer by writing 0 to the NEXTCONBK
      register and setting the ABORT and ACTIVE flags.  Thereby, the 0 in
      NEXTCONBK is sought to be loaded into the CONBLK_AD register.  However
      experimentation has shown this approach to not work:  The CONBLK_AD
      register remains the same as before and the CS register contains
      0x00000030 (PAUSED | DREQ_STOPS_DMA).  In other words, the control
      block is not aborted but merely paused and it will be resumed once the
      next DMA transaction is started.  That is absolutely not the desired
      behavior.
    
      A simpler approach is to set the channel's RESET flag instead.  This
      reliably zeroes the NEXTCONBK as well as the CS register.  It requires
      less code and only a single MMIO write.  This is also what popular
      user space DMA drivers do, e.g.:
      https://github.com/metachris/RPIO/blob/master/source/c_pwm/pwm.c
    
      Note that the spec is contradictory whether the NEXTCONBK register
      is writeable at all.  On the one hand, page 41 claims:
    
      "The value loaded into the NEXTCONBK register can be overwritten so
      that the linked list of Control Block data structures can be
      dynamically altered. However it is only safe to do this when the DMA
      is paused."
    
      On the other hand, page 40 specifies:
    
      "Only three registers in each channel's register set are directly
      writeable (CS, CONBLK_AD and DEBUG). The other registers (TI,
      SOURCE_AD, DEST_AD, TXFR_LEN, STRIDE & NEXTCONBK), are automatically
      loaded from a Control Block data structure held in external memory."
    
    Fixes: 96286b576690 ("dmaengine: Add support for BCM2835")
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Cc: stable@vger.kernel.org # v3.14+
    Cc: Frank Pavlic <f.pavlic@kunbus.de>
    Cc: Martin Sperl <kernel@martin.sperl.org>
    Cc: Florian Meier <florian.meier@koalo.de>
    Cc: Clive Messer <clive.m.messer@gmail.com>
    Cc: Matthias Reichl <hias@horus.com>
    Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
    Acked-by: Florian Kauer <florian.kauer@koalo.de>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 277242cc2cc9c4a3a29e5605ca322a47adcd0c1e
Author: Lukas Wunner <lukas@wunner.de>
Date:   Wed Jan 23 09:26:00 2019 +0100

    dmaengine: bcm2835: Fix interrupt race on RT
    
    commit f7da7782aba92593f7b82f03d2409a1c5f4db91b upstream.
    
    If IRQ handlers are threaded (either because CONFIG_PREEMPT_RT_BASE is
    enabled or "threadirqs" was passed on the command line) and if system
    load is sufficiently high that wakeup latency of IRQ threads degrades,
    SPI DMA transactions on the BCM2835 occasionally break like this:
    
    ks8851 spi0.0: SPI transfer timed out
    bcm2835-dma 3f007000.dma: DMA transfer could not be terminated
    ks8851 spi0.0 eth2: ks8851_rdfifo: spi_sync() failed
    
    The root cause is an assumption made by the DMA driver which is
    documented in a code comment in bcm2835_dma_terminate_all():
    
    /*
     * Stop DMA activity: we assume the callback will not be called
     * after bcm_dma_abort() returns (even if it does, it will see
     * c->desc is NULL and exit.)
     */
    
    That assumption falls apart if the IRQ handler bcm2835_dma_callback() is
    threaded: A client may terminate a descriptor and issue a new one
    before the IRQ handler had a chance to run. In fact the IRQ handler may
    miss an *arbitrary* number of descriptors. The result is the following
    race condition:
    
    1. A descriptor finishes, its interrupt is deferred to the IRQ thread.
    2. A client calls dma_terminate_async() which sets channel->desc = NULL.
    3. The client issues a new descriptor. Because channel->desc is NULL,
       bcm2835_dma_issue_pending() immediately starts the descriptor.
    4. Finally the IRQ thread runs and writes BCM2835_DMA_INT to the CS
       register to acknowledge the interrupt. This clears the ACTIVE flag,
       so the newly issued descriptor is paused in the middle of the
       transaction. Because channel->desc is not NULL, the IRQ thread
       finalizes the descriptor and tries to start the next one.
    
    I see two possible solutions: The first is to call synchronize_irq()
    in bcm2835_dma_issue_pending() to wait until the IRQ thread has
    finished before issuing a new descriptor. The downside of this approach
    is unnecessary latency if clients desire rapidly terminating and
    re-issuing descriptors and don't have any use for an IRQ callback.
    (The SPI TX DMA channel is a case in point.)
    
    A better alternative is to make the IRQ thread recognize that it has
    missed descriptors and avoid finalizing the newly issued descriptor.
    So first of all, set the ACTIVE flag when acknowledging the interrupt.
    This keeps a newly issued descriptor running.
    
    If the descriptor was finished, the channel remains idle despite the
    ACTIVE flag being set. However the ACTIVE flag can then no longer be
    used to check whether the channel is idle, so instead check whether
    the register containing the current control block address is zero
    and finalize the current descriptor only if so.
    
    That way, there is no impact on latency and throughput if the client
    doesn't care for the interrupt: Only minimal additional overhead is
    introduced for non-cyclic descriptors as one further MMIO read is
    necessary per interrupt to check for idleness of the channel. Cyclic
    descriptors are sped up slightly by removing one MMIO write per
    interrupt.
    
    Fixes: 96286b576690 ("dmaengine: Add support for BCM2835")
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Cc: stable@vger.kernel.org # v3.14+
    Cc: Frank Pavlic <f.pavlic@kunbus.de>
    Cc: Martin Sperl <kernel@martin.sperl.org>
    Cc: Florian Meier <florian.meier@koalo.de>
    Cc: Clive Messer <clive.m.messer@gmail.com>
    Cc: Matthias Reichl <hias@horus.com>
    Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
    Acked-by: Florian Kauer <florian.kauer@koalo.de>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64702dea060005ff835f4aa25bdce335be9d88f7
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Wed Jan 16 10:27:59 2019 +0100

    fuse: handle zero sized retrieve correctly
    
    commit 97e1532ef81acb31c30f9e75bf00306c33a77812 upstream.
    
    Dereferencing req->page_descs[0] will Oops if req->max_pages is zero.
    
    Reported-by: syzbot+c1e36d30ee3416289cc0@syzkaller.appspotmail.com
    Tested-by: syzbot+c1e36d30ee3416289cc0@syzkaller.appspotmail.com
    Fixes: b2430d7567a3 ("fuse: add per-page descriptor <offset, length> to fuse_req")
    Cc: <stable@vger.kernel.org> # v3.9
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f3d69898e1a4838efbfa593b2953533a0c86657
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Wed Jan 16 10:27:59 2019 +0100

    fuse: decrement NR_WRITEBACK_TEMP on the right page
    
    commit a2ebba824106dabe79937a9f29a875f837e1b6d4 upstream.
    
    NR_WRITEBACK_TEMP is accounted on the temporary page in the request, not
    the page cache page.
    
    Fixes: 8b284dc47291 ("fuse: writepages: handle same page rewrites")
    Cc: <stable@vger.kernel.org> # v3.13
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 50449aafb818a55a012985d2412a34a4c624f7f2
Author: Jann Horn <jannh@google.com>
Date:   Sat Jan 12 02:39:05 2019 +0100

    fuse: call pipe_buf_release() under pipe lock
    
    commit 9509941e9c534920ccc4771ae70bd6cbbe79df1c upstream.
    
    Some of the pipe_buf_release() handlers seem to assume that the pipe is
    locked - in particular, anon_pipe_buf_release() accesses pipe->tmp_page
    without taking any extra locks. From a glance through the callers of
    pipe_buf_release(), it looks like FUSE is the only one that calls
    pipe_buf_release() without having the pipe locked.
    
    This bug should only lead to a memory leak, nothing terrible.
    
    Fixes: dd3bb14f44a6 ("fuse: support splice() writing to fuse device")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18c071d41fda1e17a93aeb831e2f44d6c97ad02d
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Jan 30 17:46:03 2019 +0100

    ALSA: hda - Serialize codec registrations
    
    commit 305a0ade180981686eec1f92aa6252a7c6ebb1cf upstream.
    
    In the current code, the codec registration may happen both at the
    codec bind time and the end of the controller probe time.  In a rare
    occasion, they race with each other, leading to Oops due to the still
    uninitialized card device.
    
    This patch introduces a simple flag to prevent the codec registration
    at the codec bind time as long as the controller probe is going on.
    The controller probe invokes snd_card_register() that does the whole
    registration task, and we don't need to register each piece
    beforehand.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 001828f80ca69153acd618921915641084dc81b3
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Tue Feb 5 16:29:40 2019 +0000

    ALSA: compress: Fix stop handling on compressed capture streams
    
    commit 4f2ab5e1d13d6aa77c55f4914659784efd776eb4 upstream.
    
    It is normal user behaviour to start, stop, then start a stream
    again without closing it. Currently this works for compressed
    playback streams but not capture ones.
    
    The states on a compressed capture stream go directly from OPEN to
    PREPARED, unlike a playback stream which moves to SETUP and waits
    for a write of data before moving to PREPARED. Currently however,
    when a stop is sent the state is set to SETUP for both types of
    streams. This leaves a capture stream in the situation where a new
    start can't be sent as that requires the state to be PREPARED and
    a new set_params can't be sent as that requires the state to be
    OPEN. The only option being to close the stream, and then reopen.
    
    Correct this issues by allowing snd_compr_drain_notify to set the
    state depending on the stream direction, as we already do in
    set_params.
    
    Fixes: 49bb6402f1aa ("ALSA: compress_core: Add support for capture streams")
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f10e046ee3605c79fc5f2805800bf8cba1aa0650
Author: Govindarajulu Varadarajan <gvaradar@cisco.com>
Date:   Wed Jan 30 06:59:00 2019 -0800

    enic: fix checksum validation for IPv6
    
    [ Upstream commit 7596175e99b3d4bce28022193efd954c201a782a ]
    
    In case of IPv6 pkts, ipv4_csum_ok is 0. Because of this, driver does
    not set skb->ip_summed. So IPv6 rx checksum is not offloaded.
    
    Signed-off-by: Govindarajulu Varadarajan <gvaradar@cisco.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 072e11e73d95fa92060a53aa9f62bf8ab45dc8c0
Author: Rundong Ge <rdong.ge@gmail.com>
Date:   Sat Feb 2 14:29:35 2019 +0000

    net: dsa: slave: Don't propagate flag changes on down slave interfaces
    
    [ Upstream commit 17ab4f61b8cd6f9c38e9d0b935d86d73b5d0d2b5 ]
    
    The unbalance of master's promiscuity or allmulti will happen after ifdown
    and ifup a slave interface which is in a bridge.
    
    When we ifdown a slave interface , both the 'dsa_slave_close' and
    'dsa_slave_change_rx_flags' will clear the master's flags. The flags
    of master will be decrease twice.
    In the other hand, if we ifup the slave interface again, since the
    slave's flags were cleared the 'dsa_slave_open' won't set the master's
    flag, only 'dsa_slave_change_rx_flags' that triggered by 'br_add_if'
    will set the master's flags. The flags of master is increase once.
    
    Only propagating flag changes when a slave interface is up makes
    sure this does not happen. The 'vlan_dev_change_rx_flags' had the
    same problem and was fixed, and changes here follows that fix.
    
    Fixes: 91da11f870f0 ("net: Distributed Switch Architecture protocol support")
    Signed-off-by: Rundong Ge <rdong.ge@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d524f3521b5fcb67bed8d794c759a444f4f31dd6
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Mon Dec 3 22:14:04 2018 -0800

    net/mlx5e: Force CHECKSUM_UNNECESSARY for short ethernet frames
    
    [ Upstream commit e8c8b53ccaff568fef4c13a6ccaf08bf241aa01a ]
    
    When an ethernet frame is padded to meet the minimum ethernet frame
    size, the padding octets are not covered by the hardware checksum.
    Fortunately the padding octets are usually zero's, which don't affect
    checksum. However, we have a switch which pads non-zero octets, this
    causes kernel hardware checksum fault repeatedly.
    
    Prior to:
    commit '88078d98d1bb ("net: pskb_trim_rcsum() and CHECKSUM_COMPLETE ...")'
    skb checksum was forced to be CHECKSUM_NONE when padding is detected.
    After it, we need to keep skb->csum updated, like what we do for RXFCS.
    However, fixing up CHECKSUM_COMPLETE requires to verify and parse IP
    headers, it is not worthy the effort as the packets are so small that
    CHECKSUM_COMPLETE can't save anything.
    
    Fixes: 88078d98d1bb ("net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends"),
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Tariq Toukan <tariqt@mellanox.com>
    Cc: Nikola Ciprich <nikola.ciprich@linuxbox.cz>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05648cbaf2dd6c19b6ef7795095b3afba0a65581
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Fri Feb 1 13:23:38 2019 -0800

    net: systemport: Fix WoL with password after deep sleep
    
    [ Upstream commit 8dfb8d2cceb76b74ad5b58cc65c75994329b4d5e ]
    
    Broadcom STB chips support a deep sleep mode where all register
    contents are lost. Because we were stashing the MagicPacket password
    into some of these registers a suspend into that deep sleep then a
    resumption would not lead to being able to wake-up from MagicPacket with
    password again.
    
    Fix this by keeping a software copy of the password and program it
    during suspend.
    
    Fixes: 83e82f4c706b ("net: systemport: add Wake-on-LAN support")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44476fdd1504272d54ac44858b4aff8cb7689202
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Jan 31 08:47:10 2019 -0800

    rds: fix refcount bug in rds_sock_addref
    
    [ Upstream commit 6fa19f5637a6c22bc0999596bcc83bdcac8a4fa6 ]
    
    syzbot was able to catch a bug in rds [1]
    
    The issue here is that the socket might be found in a hash table
    but that its refcount has already be set to 0 by another cpu.
    
    We need to use refcount_inc_not_zero() to be safe here.
    
    [1]
    
    refcount_t: increment on 0; use-after-free.
    WARNING: CPU: 1 PID: 23129 at lib/refcount.c:153 refcount_inc_checked lib/refcount.c:153 [inline]
    WARNING: CPU: 1 PID: 23129 at lib/refcount.c:153 refcount_inc_checked+0x61/0x70 lib/refcount.c:151
    Kernel panic - not syncing: panic_on_warn set ...
    CPU: 1 PID: 23129 Comm: syz-executor3 Not tainted 5.0.0-rc4+ #53
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x1db/0x2d0 lib/dump_stack.c:113
     panic+0x2cb/0x65c kernel/panic.c:214
     __warn.cold+0x20/0x48 kernel/panic.c:571
     report_bug+0x263/0x2b0 lib/bug.c:186
     fixup_bug arch/x86/kernel/traps.c:178 [inline]
     fixup_bug arch/x86/kernel/traps.c:173 [inline]
     do_error_trap+0x11b/0x200 arch/x86/kernel/traps.c:271
     do_invalid_op+0x37/0x50 arch/x86/kernel/traps.c:290
     invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:973
    RIP: 0010:refcount_inc_checked lib/refcount.c:153 [inline]
    RIP: 0010:refcount_inc_checked+0x61/0x70 lib/refcount.c:151
    Code: 1d 51 63 c8 06 31 ff 89 de e8 eb 1b f2 fd 84 db 75 dd e8 a2 1a f2 fd 48 c7 c7 60 9f 81 88 c6 05 31 63 c8 06 01 e8 af 65 bb fd <0f> 0b eb c1 90 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 54 49
    RSP: 0018:ffff8880a0cbf1e8 EFLAGS: 00010282
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffc90006113000
    RDX: 000000000001047d RSI: ffffffff81685776 RDI: 0000000000000005
    RBP: ffff8880a0cbf1f8 R08: ffff888097c9e100 R09: ffffed1015ce5021
    R10: ffffed1015ce5020 R11: ffff8880ae728107 R12: ffff8880723c20c0
    R13: ffff8880723c24b0 R14: dffffc0000000000 R15: ffffed1014197e64
     sock_hold include/net/sock.h:647 [inline]
     rds_sock_addref+0x19/0x20 net/rds/af_rds.c:675
     rds_find_bound+0x97c/0x1080 net/rds/bind.c:82
     rds_recv_incoming+0x3be/0x1430 net/rds/recv.c:362
     rds_loop_xmit+0xf3/0x2a0 net/rds/loop.c:96
     rds_send_xmit+0x1355/0x2a10 net/rds/send.c:355
     rds_sendmsg+0x323c/0x44e0 net/rds/send.c:1368
     sock_sendmsg_nosec net/socket.c:621 [inline]
     sock_sendmsg+0xdd/0x130 net/socket.c:631
     __sys_sendto+0x387/0x5f0 net/socket.c:1788
     __do_sys_sendto net/socket.c:1800 [inline]
     __se_sys_sendto net/socket.c:1796 [inline]
     __x64_sys_sendto+0xe1/0x1a0 net/socket.c:1796
     do_syscall_64+0x1a3/0x800 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x458089
    Code: 6d b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 3b b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007fc266df8c78 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
    RAX: ffffffffffffffda RBX: 0000000000000006 RCX: 0000000000458089
    RDX: 0000000000000000 RSI: 00000000204b3fff RDI: 0000000000000005
    RBP: 000000000073bf00 R08: 00000000202b4000 R09: 0000000000000010
    R10: 0000000000000000 R11: 0000000000000246 R12: 00007fc266df96d4
    R13: 00000000004c56e4 R14: 00000000004d94a8 R15: 00000000ffffffff
    
    Fixes: cc4dfb7f70a3 ("rds: fix two RCU related problems")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: Sowmini Varadhan <sowmini.varadhan@oracle.com>
    Cc: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Cc: rds-devel@oss.oracle.com
    Cc: Cong Wang <xiyou.wangcong@gmail.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfeb312c242798b9c3cc174b085ff275e0b8c2d2
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Feb 1 11:28:16 2019 +0300

    skge: potential memory corruption in skge_get_regs()
    
    [ Upstream commit 294c149a209c6196c2de85f512b52ef50f519949 ]
    
    The "p" buffer is 0x4000 bytes long.  B3_RI_WTO_R1 is 0x190.  The value
    of "regs->len" is in the 1-0x4000 range.  The bug here is that
    "regs->len - B3_RI_WTO_R1" can be a negative value which would lead to
    memory corruption and an abrupt crash.
    
    Fixes: c3f8be961808 ("[PATCH] skge: expand ethtool debug register dump")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c23c2941712bb6ddce3715b7def5c74253732ad
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Feb 4 08:36:06 2019 -0800

    rxrpc: bad unlock balance in rxrpc_recvmsg
    
    [ Upstream commit 6dce3c20ac429e7a651d728e375853370c796e8d ]
    
    When either "goto wait_interrupted;" or "goto wait_error;"
    paths are taken, socket lock has already been released.
    
    This patch fixes following syzbot splat :
    
    WARNING: bad unlock balance detected!
    5.0.0-rc4+ #59 Not tainted
    -------------------------------------
    syz-executor223/8256 is trying to release lock (sk_lock-AF_RXRPC) at:
    [<ffffffff86651353>] rxrpc_recvmsg+0x6d3/0x3099 net/rxrpc/recvmsg.c:598
    but there are no more locks to release!
    
    other info that might help us debug this:
    1 lock held by syz-executor223/8256:
     #0: 00000000fa9ed0f4 (slock-AF_RXRPC){+...}, at: spin_lock_bh include/linux/spinlock.h:334 [inline]
     #0: 00000000fa9ed0f4 (slock-AF_RXRPC){+...}, at: release_sock+0x20/0x1c0 net/core/sock.c:2798
    
    stack backtrace:
    CPU: 1 PID: 8256 Comm: syz-executor223 Not tainted 5.0.0-rc4+ #59
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x172/0x1f0 lib/dump_stack.c:113
     print_unlock_imbalance_bug kernel/locking/lockdep.c:3391 [inline]
     print_unlock_imbalance_bug.cold+0x114/0x123 kernel/locking/lockdep.c:3368
     __lock_release kernel/locking/lockdep.c:3601 [inline]
     lock_release+0x67e/0xa00 kernel/locking/lockdep.c:3860
     sock_release_ownership include/net/sock.h:1471 [inline]
     release_sock+0x183/0x1c0 net/core/sock.c:2808
     rxrpc_recvmsg+0x6d3/0x3099 net/rxrpc/recvmsg.c:598
     sock_recvmsg_nosec net/socket.c:794 [inline]
     sock_recvmsg net/socket.c:801 [inline]
     sock_recvmsg+0xd0/0x110 net/socket.c:797
     __sys_recvfrom+0x1ff/0x350 net/socket.c:1845
     __do_sys_recvfrom net/socket.c:1863 [inline]
     __se_sys_recvfrom net/socket.c:1859 [inline]
     __x64_sys_recvfrom+0xe1/0x1a0 net/socket.c:1859
     do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x446379
    Code: e8 2c b3 02 00 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 2b 09 fc ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007fe5da89fd98 EFLAGS: 00000246 ORIG_RAX: 000000000000002d
    RAX: ffffffffffffffda RBX: 00000000006dbc28 RCX: 0000000000446379
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000003
    RBP: 00000000006dbc20 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00000000006dbc2c
    R13: 0000000000000000 R14: 0000000000000000 R15: 20c49ba5e353f7cf
    
    Fixes: 248f219cb8bc ("rxrpc: Rewrite the data and ack handling code")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: David Howells <dhowells@redhat.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4efc10360691b4823b3067020e32d0d88e727ed3
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Mon Feb 4 11:20:29 2019 +0100

    net: dp83640: expire old TX-skb
    
    [ Upstream commit 53bc8d2af08654659abfadfd3e98eb9922ff787c ]
    
    During sendmsg() a cloned skb is saved via dp83640_txtstamp() in
    ->tx_queue. After the NIC sends this packet, the PHY will reply with a
    timestamp for that TX packet. If the cable is pulled at the right time I
    don't see that packet. It might gets flushed as part of queue shutdown
    on NIC's side.
    Once the link is up again then after the next sendmsg() we enqueue
    another skb in dp83640_txtstamp() and have two on the list. Then the PHY
    will send a reply and decode_txts() attaches it to the first skb on the
    list.
    No crash occurs since refcounting works but we are one packet behind.
    linuxptp/ptp4l usually closes the socket and opens a new one (in such a
    timeout case) so those "stale" replies never get there. However it does
    not resume normal operation anymore.
    
    Purge old skbs in decode_txts().
    
    Fixes: cb646e2b02b2 ("ptp: Added a clock driver for the National Semiconductor PHYTER.")
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2dd6c1155d5c018b98686571e4a45b41d501dfca
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 30 11:39:41 2019 -0800

    dccp: fool proof ccid_hc_[rt]x_parse_options()
    
    [ Upstream commit 9b1f19d810e92d6cdc68455fbc22d9f961a58ce1 ]
    
    Similarly to commit 276bdb82dedb ("dccp: check ccid before dereferencing")
    it is wise to test for a NULL ccid.
    
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] PREEMPT SMP KASAN
    CPU: 1 PID: 16 Comm: ksoftirqd/1 Not tainted 5.0.0-rc3+ #37
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:ccid_hc_tx_parse_options net/dccp/ccid.h:205 [inline]
    RIP: 0010:dccp_parse_options+0x8d9/0x12b0 net/dccp/options.c:233
    Code: c5 0f b6 75 b3 80 38 00 0f 85 d6 08 00 00 48 b9 00 00 00 00 00 fc ff df 48 8b 45 b8 4c 8b b8 f8 07 00 00 4c 89 f8 48 c1 e8 03 <80> 3c 08 00 0f 85 95 08 00 00 48 b8 00 00 00 00 00 fc ff df 4d 8b
    kobject: 'loop5' (0000000080f78fc1): kobject_uevent_env
    RSP: 0018:ffff8880a94df0b8 EFLAGS: 00010246
    RAX: 0000000000000000 RBX: ffff8880858ac723 RCX: dffffc0000000000
    RDX: 0000000000000100 RSI: 0000000000000007 RDI: 0000000000000001
    RBP: ffff8880a94df140 R08: 0000000000000001 R09: ffff888061b83a80
    R10: ffffed100c370752 R11: ffff888061b83a97 R12: 0000000000000026
    R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000000
    FS:  0000000000000000(0000) GS:ffff8880ae700000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f0defa33518 CR3: 000000008db5e000 CR4: 00000000001406e0
    kobject: 'loop5' (0000000080f78fc1): fill_kobj_path: path = '/devices/virtual/block/loop5'
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     dccp_rcv_state_process+0x2b6/0x1af6 net/dccp/input.c:654
     dccp_v4_do_rcv+0x100/0x190 net/dccp/ipv4.c:688
     sk_backlog_rcv include/net/sock.h:936 [inline]
     __sk_receive_skb+0x3a9/0xea0 net/core/sock.c:473
     dccp_v4_rcv+0x10cb/0x1f80 net/dccp/ipv4.c:880
     ip_protocol_deliver_rcu+0xb6/0xa20 net/ipv4/ip_input.c:208
     ip_local_deliver_finish+0x23b/0x390 net/ipv4/ip_input.c:234
     NF_HOOK include/linux/netfilter.h:289 [inline]
     NF_HOOK include/linux/netfilter.h:283 [inline]
     ip_local_deliver+0x1f0/0x740 net/ipv4/ip_input.c:255
     dst_input include/net/dst.h:450 [inline]
     ip_rcv_finish+0x1f4/0x2f0 net/ipv4/ip_input.c:414
     NF_HOOK include/linux/netfilter.h:289 [inline]
     NF_HOOK include/linux/netfilter.h:283 [inline]
     ip_rcv+0xed/0x620 net/ipv4/ip_input.c:524
     __netif_receive_skb_one_core+0x160/0x210 net/core/dev.c:4973
     __netif_receive_skb+0x2c/0x1c0 net/core/dev.c:5083
     process_backlog+0x206/0x750 net/core/dev.c:5923
     napi_poll net/core/dev.c:6346 [inline]
     net_rx_action+0x76d/0x1930 net/core/dev.c:6412
     __do_softirq+0x30b/0xb11 kernel/softirq.c:292
     run_ksoftirqd kernel/softirq.c:654 [inline]
     run_ksoftirqd+0x8e/0x110 kernel/softirq.c:646
     smpboot_thread_fn+0x6ab/0xa10 kernel/smpboot.c:164
     kthread+0x357/0x430 kernel/kthread.c:246
     ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352
    Modules linked in:
    ---[ end trace 58a0ba03bea2c376 ]---
    RIP: 0010:ccid_hc_tx_parse_options net/dccp/ccid.h:205 [inline]
    RIP: 0010:dccp_parse_options+0x8d9/0x12b0 net/dccp/options.c:233
    Code: c5 0f b6 75 b3 80 38 00 0f 85 d6 08 00 00 48 b9 00 00 00 00 00 fc ff df 48 8b 45 b8 4c 8b b8 f8 07 00 00 4c 89 f8 48 c1 e8 03 <80> 3c 08 00 0f 85 95 08 00 00 48 b8 00 00 00 00 00 fc ff df 4d 8b
    RSP: 0018:ffff8880a94df0b8 EFLAGS: 00010246
    RAX: 0000000000000000 RBX: ffff8880858ac723 RCX: dffffc0000000000
    RDX: 0000000000000100 RSI: 0000000000000007 RDI: 0000000000000001
    RBP: ffff8880a94df140 R08: 0000000000000001 R09: ffff888061b83a80
    R10: ffffed100c370752 R11: ffff888061b83a97 R12: 0000000000000026
    R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000000
    FS:  0000000000000000(0000) GS:ffff8880ae700000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f0defa33518 CR3: 0000000009871000 CR4: 00000000001406e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: Gerrit Renker <gerrit@erg.abdn.ac.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5bf9ca73e8beeb3948afeb062e688328496ece65
Author: Eduardo Valentin <edubezval@gmail.com>
Date:   Wed Jan 2 00:34:03 2019 +0000

    thermal: hwmon: inline helpers when CONFIG_THERMAL_HWMON is not set
    
    commit 03334ba8b425b2ad275c8f390cf83c7b081c3095 upstream.
    
    Avoid warnings like this:
    thermal_hwmon.h:29:1: warning: ‘thermal_remove_hwmon_sysfs’ defined but not used [-Wunused-function]
     thermal_remove_hwmon_sysfs(struct thermal_zone_device *tz)
    
    Fixes: 0dd88793aacd ("thermal: hwmon: move hwmon support to single file")
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e5229ebb00d75bd4fc6dd473fd64d9679e0de6d
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Thu Jan 3 15:28:07 2019 -0800

    exec: load_script: don't blindly truncate shebang string
    
    [ Upstream commit 8099b047ecc431518b9bb6bdbba3549bbecdc343 ]
    
    load_script() simply truncates bprm->buf and this is very wrong if the
    length of shebang string exceeds BINPRM_BUF_SIZE-2.  This can silently
    truncate i_arg or (worse) we can execute the wrong binary if buf[2:126]
    happens to be the valid executable path.
    
    Change load_script() to return ENOEXEC if it can't find '\n' or zero in
    bprm->buf.  Note that '\0' can come from either
    prepare_binprm()->memset() or from kernel_read(), we do not care.
    
    Link: http://lkml.kernel.org/r/20181112160931.GA28463@redhat.com
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Ben Woodard <woodard@redhat.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf96e963958b05df4d2b2b84df41eb328f8d36f7
Author: Davidlohr Bueso <dave@stgolabs.net>
Date:   Thu Jan 3 15:27:09 2019 -0800

    fs/epoll: drop ovflist branch prediction
    
    [ Upstream commit 76699a67f3041ff4c7af6d6ee9be2bfbf1ffb671 ]
    
    The ep->ovflist is a secondary ready-list to temporarily store events
    that might occur when doing sproc without holding the ep->wq.lock.  This
    accounts for every time we check for ready events and also send events
    back to userspace; both callbacks, particularly the latter because of
    copy_to_user, can account for a non-trivial time.
    
    As such, the unlikely() check to see if the pointer is being used, seems
    both misleading and sub-optimal.  In fact, we go to an awful lot of
    trouble to sync both lists, and populating the ovflist is far from an
    uncommon scenario.
    
    For example, profiling a concurrent epoll_wait(2) benchmark, with
    CONFIG_PROFILE_ANNOTATED_BRANCHES shows that for a two threads a 33%
    incorrect rate was seen; and when incrementally increasing the number of
    epoll instances (which is used, for example for multiple queuing load
    balancing models), up to a 90% incorrect rate was seen.
    
    Similarly, by deleting the prediction, 3% throughput boost was seen
    across incremental threads.
    
    Link: http://lkml.kernel.org/r/20181108051006.18751-4-dave@stgolabs.net
    Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Jason Baron <jbaron@akamai.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0e5c7505a9f532c4f890882e4bc4adebaeb0437e
Author: Cheng Lin <cheng.lin130@zte.com.cn>
Date:   Thu Jan 3 15:26:13 2019 -0800

    proc/sysctl: fix return error for proc_doulongvec_minmax()
    
    [ Upstream commit 09be178400829dddc1189b50a7888495dd26aa84 ]
    
    If the number of input parameters is less than the total parameters, an
    EINVAL error will be returned.
    
    For example, we use proc_doulongvec_minmax to pass up to two parameters
    with kern_table:
    
    {
            .procname       = "monitor_signals",
            .data           = &monitor_sigs,
            .maxlen         = 2*sizeof(unsigned long),
            .mode           = 0644,
            .proc_handler   = proc_doulongvec_minmax,
    },
    
    Reproduce:
    
    When passing two parameters, it's work normal.  But passing only one
    parameter, an error "Invalid argument"(EINVAL) is returned.
    
      [root@cl150 ~]# echo 1 2 > /proc/sys/kernel/monitor_signals
      [root@cl150 ~]# cat /proc/sys/kernel/monitor_signals
      1       2
      [root@cl150 ~]# echo 3 > /proc/sys/kernel/monitor_signals
      -bash: echo: write error: Invalid argument
      [root@cl150 ~]# echo $?
      1
      [root@cl150 ~]# cat /proc/sys/kernel/monitor_signals
      3       2
      [root@cl150 ~]#
    
    The following is the result after apply this patch.  No error is
    returned when the number of input parameters is less than the total
    parameters.
    
      [root@cl150 ~]# echo 1 2 > /proc/sys/kernel/monitor_signals
      [root@cl150 ~]# cat /proc/sys/kernel/monitor_signals
      1       2
      [root@cl150 ~]# echo 3 > /proc/sys/kernel/monitor_signals
      [root@cl150 ~]# echo $?
      0
      [root@cl150 ~]# cat /proc/sys/kernel/monitor_signals
      3       2
      [root@cl150 ~]#
    
    There are three processing functions dealing with digital parameters,
    __do_proc_dointvec/__do_proc_douintvec/__do_proc_doulongvec_minmax.
    
    This patch deals with __do_proc_doulongvec_minmax, just as
    __do_proc_dointvec does, adding a check for parameters 'left'.  In
    __do_proc_douintvec, its code implementation explicitly does not support
    multiple inputs.
    
    static int __do_proc_douintvec(...){
             ...
             /*
              * Arrays are not supported, keep this simple. *Do not* add
              * support for them.
              */
             if (vleft != 1) {
                     *lenp = 0;
                     return -EINVAL;
             }
             ...
    }
    
    So, just __do_proc_doulongvec_minmax has the problem.  And most use of
    proc_doulongvec_minmax/proc_doulongvec_ms_jiffies_minmax just have one
    parameter.
    
    Link: http://lkml.kernel.org/r/1544081775-15720-1-git-send-email-cheng.lin130@zte.com.cn
    Signed-off-by: Cheng Lin <cheng.lin130@zte.com.cn>
    Acked-by: Luis Chamberlain <mcgrof@kernel.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 629e457d163b6b1ef80faeb4a5a145d4d05fc88c
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Thu Jan 3 15:26:31 2019 -0800

    kernel/hung_task.c: break RCU locks based on jiffies
    
    [ Upstream commit 304ae42739b108305f8d7b3eb3c1aec7c2b643a9 ]
    
    check_hung_uninterruptible_tasks() is currently calling rcu_lock_break()
    for every 1024 threads.  But check_hung_task() is very slow if printk()
    was called, and is very fast otherwise.
    
    If many threads within some 1024 threads called printk(), the RCU grace
    period might be extended enough to trigger RCU stall warnings.
    Therefore, calling rcu_lock_break() for every some fixed jiffies will be
    safer.
    
    Link: http://lkml.kernel.org/r/1544800658-11423-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 683f5f8b386210bfb983d2d097313f64ab24e94f
Author: Aditya Pakki <pakki001@umn.edu>
Date:   Mon Dec 24 15:39:14 2018 -0600

    HID: lenovo: Add checks to fix of_led_classdev_register
    
    [ Upstream commit 6ae16dfb61bce538d48b7fe98160fada446056c5 ]
    
    In lenovo_probe_tpkbd(), the function of_led_classdev_register() could
    return an error value that is unchecked. The fix adds these checks.
    
    Signed-off-by: Aditya Pakki <pakki001@umn.edu>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5b4b5b96872fab94a22b0b2097045ac6fea7ab10
Author: Bjorn Andersson <bjorn.andersson@linaro.org>
Date:   Sun Dec 23 23:26:44 2018 -0800

    thermal: generic-adc: Fix adc to temp interpolation
    
    [ Upstream commit 9d216211fded20fff301d0317af3238d8383634c ]
    
    First correct the edge case to return the last element if we're
    outside the range, rather than at the last element, so that
    interpolation is not omitted for points between the two last entries in
    the table.
    
    Then correct the formula to perform linear interpolation based the two
    points surrounding the read ADC value. The indices for temp are kept as
    "hi" and "lo" to pair with the adc indices, but there's no requirement
    that the temperature is provided in descendent order. mult_frac() is
    used to prevent issues with overflowing the int.
    
    Cc: Laxman Dewangan <ldewangan@nvidia.com>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 343962e03de7344f0619df9974cec9ecd67f7233
Author: Finn Thain <fthain@telegraphics.com.au>
Date:   Mon Dec 31 16:44:09 2018 +1100

    block/swim3: Fix -EBUSY error when re-opening device after unmount
    
    [ Upstream commit 296dcc40f2f2e402facf7cd26cf3f2c8f4b17d47 ]
    
    When the block device is opened with FMODE_EXCL, ref_count is set to -1.
    This value doesn't get reset when the device is closed which means the
    device cannot be opened again. Fix this by checking for refcount <= 0
    in the release method.
    
    Reported-and-tested-by: Stan Johnson <userm57@yahoo.com>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b40ef2ccedd9a279095187cf1475d1e8decc192e
Author: Scott Wood <oss@buserror.net>
Date:   Thu Dec 27 18:29:09 2018 -0600

    fsl/fman: Use GFP_ATOMIC in {memac,tgec}_add_hash_mac_address()
    
    [ Upstream commit 0d9c9a238faf925823bde866182c663b6d734f2e ]
    
    These functions are called from atomic context:
    
    [    9.150239] BUG: sleeping function called from invalid context at /home/scott/git/linux/mm/slab.h:421
    [    9.158159] in_atomic(): 1, irqs_disabled(): 0, pid: 4432, name: ip
    [    9.163128] CPU: 8 PID: 4432 Comm: ip Not tainted 4.20.0-rc2-00169-g63d86876f324 #29
    [    9.163130] Call Trace:
    [    9.170701] [c0000002e899a980] [c0000000009c1068] .dump_stack+0xa8/0xec (unreliable)
    [    9.177140] [c0000002e899aa10] [c00000000007a7b4] .___might_sleep+0x138/0x164
    [    9.184440] [c0000002e899aa80] [c0000000001d5bac] .kmem_cache_alloc_trace+0x238/0x30c
    [    9.191216] [c0000002e899ab40] [c00000000065ea1c] .memac_add_hash_mac_address+0x104/0x198
    [    9.199464] [c0000002e899abd0] [c00000000065a788] .set_multi+0x1c8/0x218
    [    9.206242] [c0000002e899ac80] [c0000000006615ec] .dpaa_set_rx_mode+0xdc/0x17c
    [    9.213544] [c0000002e899ad00] [c00000000083d2b0] .__dev_set_rx_mode+0x80/0xd4
    [    9.219535] [c0000002e899ad90] [c00000000083d334] .dev_set_rx_mode+0x30/0x54
    [    9.225271] [c0000002e899ae10] [c00000000083d4a0] .__dev_open+0x148/0x1c8
    [    9.230751] [c0000002e899aeb0] [c00000000083d934] .__dev_change_flags+0x19c/0x1e0
    [    9.230755] [c0000002e899af60] [c00000000083d9a4] .dev_change_flags+0x2c/0x80
    [    9.242752] [c0000002e899aff0] [c0000000008554ec] .do_setlink+0x350/0xf08
    [    9.248228] [c0000002e899b170] [c000000000857ad0] .rtnl_newlink+0x588/0x7e0
    [    9.253965] [c0000002e899b740] [c000000000852424] .rtnetlink_rcv_msg+0x3e0/0x498
    [    9.261440] [c0000002e899b820] [c000000000884790] .netlink_rcv_skb+0x134/0x14c
    [    9.267607] [c0000002e899b8e0] [c000000000851840] .rtnetlink_rcv+0x18/0x2c
    [    9.274558] [c0000002e899b950] [c000000000883c8c] .netlink_unicast+0x214/0x318
    [    9.281163] [c0000002e899ba00] [c000000000884220] .netlink_sendmsg+0x348/0x444
    [    9.287076] [c0000002e899bae0] [c00000000080d13c] .sock_sendmsg+0x2c/0x54
    [    9.287080] [c0000002e899bb50] [c0000000008106c0] .___sys_sendmsg+0x2d0/0x2d8
    [    9.298375] [c0000002e899bd30] [c000000000811a80] .__sys_sendmsg+0x5c/0xb0
    [    9.303939] [c0000002e899be20] [c0000000000006b0] system_call+0x60/0x6c
    
    Signed-off-by: Scott Wood <oss@buserror.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 69a1580320bf505ce51e06763e36b0596872d3d0
Author: Wenwen Wang <wang6495@umn.edu>
Date:   Wed Dec 26 20:15:13 2018 -0600

    gdrom: fix a memory leak bug
    
    [ Upstream commit 093c48213ee37c3c3ff1cf5ac1aa2a9d8bc66017 ]
    
    In probe_gdrom(), the buffer pointed by 'gd.cd_info' is allocated through
    kzalloc() and is used to hold the information of the gdrom device. To
    register and unregister the device, the pointer 'gd.cd_info' is passed to
    the functions register_cdrom() and unregister_cdrom(), respectively.
    However, this buffer is not freed after it is used, which can cause a
    memory leak bug.
    
    This patch simply frees the buffer 'gd.cd_info' in exit_gdrom() to fix the
    above issue.
    
    Signed-off-by: Wenwen Wang <wang6495@umn.edu>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d5c411b55d2d2d0f8fd6608e380bf3f4cd6ee9a5
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Wed Dec 26 22:09:34 2018 +0800

    isdn: hisax: hfc_pci: Fix a possible concurrency use-after-free bug in HFCPCI_l1hw()
    
    [ Upstream commit 7418e6520f22a2e35815122fa5a53d5bbfa2c10f ]
    
    In drivers/isdn/hisax/hfc_pci.c, the functions hfcpci_interrupt() and
    HFCPCI_l1hw() may be concurrently executed.
    
    HFCPCI_l1hw()
      line 1173: if (!cs->tx_skb)
    
    hfcpci_interrupt()
      line 942: spin_lock_irqsave();
      line 1066: dev_kfree_skb_irq(cs->tx_skb);
    
    Thus, a possible concurrency use-after-free bug may occur
    in HFCPCI_l1hw().
    
    To fix these bugs, the calls to spin_lock_irqsave() and
    spin_unlock_irqrestore() are added in HFCPCI_l1hw(), to protect the
    access to cs->tx_skb.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bc51a8ac6ce39910455385384625db2b3beeaf09
Author: Junxiao Bi <junxiao.bi@oracle.com>
Date:   Fri Dec 28 00:32:57 2018 -0800

    ocfs2: don't clear bh uptodate for block read
    
    [ Upstream commit 70306d9dce75abde855cefaf32b3f71eed8602a3 ]
    
    For sync io read in ocfs2_read_blocks_sync(), first clear bh uptodate flag
    and submit the io, second wait io done, last check whether bh uptodate, if
    not return io error.
    
    If two sync io for the same bh were issued, it could be the first io done
    and set uptodate flag, but just before check that flag, the second io came
    in and cleared uptodate, then ocfs2_read_blocks_sync() for the first io
    will return IO error.
    
    Indeed it's not necessary to clear uptodate flag, as the io end handler
    end_buffer_read_sync() will set or clear it based on io succeed or failed.
    
    The following message was found from a nfs server but the underlying
    storage returned no error.
    
    [4106438.567376] (nfsd,7146,3):ocfs2_get_suballoc_slot_bit:2780 ERROR: read block 1238823695 failed -5
    [4106438.567569] (nfsd,7146,3):ocfs2_get_suballoc_slot_bit:2812 ERROR: status = -5
    [4106438.567611] (nfsd,7146,3):ocfs2_test_inode_bit:2894 ERROR: get alloc slot and bit failed -5
    [4106438.567643] (nfsd,7146,3):ocfs2_test_inode_bit:2932 ERROR: status = -5
    [4106438.567675] (nfsd,7146,3):ocfs2_get_dentry:94 ERROR: test inode bit failed -5
    
    Same issue in non sync read ocfs2_read_blocks(), fixed it as well.
    
    Link: http://lkml.kernel.org/r/20181121020023.3034-4-junxiao.bi@oracle.com
    Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
    Reviewed-by: Changwei Ge <ge.changwei@h3c.com>
    Reviewed-by: Yiwen Jiang <jiangyiwen@huawei.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Joseph Qi <jiangqi903@gmail.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: Mark Fasheh <mfasheh@versity.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 998baad903091e43ba565bd64c82fc98ba678b68
Author: Marc Zyngier <marc.zyngier@arm.com>
Date:   Fri Dec 28 00:31:25 2018 -0800

    scripts/decode_stacktrace: only strip base path when a prefix of the path
    
    [ Upstream commit 67a28de47faa83585dd644bd4c31e5a1d9346c50 ]
    
    Running something like:
    
            decodecode vmlinux .
    
    leads to interested results where not only the leading "." gets stripped
    from the displayed paths, but also anywhere in the string, displaying
    something like:
    
            kvm_vcpu_check_block (arch/arm64/kvm/virt/kvm/kvm_mainc:2141)
    
    which doesn't help further processing.
    
    Fix it by only stripping the base path if it is a prefix of the path.
    
    Link: http://lkml.kernel.org/r/20181210174659.31054-3-marc.zyngier@arm.com
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 564651f1cb8e4d96b1b6ad443f9d7806188348f2
Author: Sahitya Tummala <stummala@codeaurora.org>
Date:   Tue Dec 18 16:39:24 2018 +0530

    f2fs: fix sbi->extent_list corruption issue
    
    [ Upstream commit e4589fa545e0020dbbc3c9bde35f35f949901392 ]
    
    When there is a failure in f2fs_fill_super() after/during
    the recovery of fsync'd nodes, it frees the current sbi and
    retries again. This time the mount is successful, but the files
    that got recovered before retry, still holds the extent tree,
    whose extent nodes list is corrupted since sbi and sbi->extent_list
    is freed up. The list_del corruption issue is observed when the
    file system is getting unmounted and when those recoverd files extent
    node is being freed up in the below context.
    
    list_del corruption. prev->next should be fffffff1e1ef5480, but was (null)
    <...>
    kernel BUG at kernel/msm-4.14/lib/list_debug.c:53!
    lr : __list_del_entry_valid+0x94/0xb4
    pc : __list_del_entry_valid+0x94/0xb4
    <...>
    Call trace:
    __list_del_entry_valid+0x94/0xb4
    __release_extent_node+0xb0/0x114
    __free_extent_tree+0x58/0x7c
    f2fs_shrink_extent_tree+0xdc/0x3b0
    f2fs_leave_shrinker+0x28/0x7c
    f2fs_put_super+0xfc/0x1e0
    generic_shutdown_super+0x70/0xf4
    kill_block_super+0x2c/0x5c
    kill_f2fs_super+0x44/0x50
    deactivate_locked_super+0x60/0x8c
    deactivate_super+0x68/0x74
    cleanup_mnt+0x40/0x78
    __cleanup_mnt+0x1c/0x28
    task_work_run+0x48/0xd0
    do_notify_resume+0x678/0xe98
    work_pending+0x8/0x14
    
    Fix this by not creating extents for those recovered files if shrinker is
    not registered yet. Once mount is successful and shrinker is registered,
    those files can have extents again.
    
    Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 63e311153b66fb36eb448e65b8bca5c1dbf1c28e
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Tue Dec 25 01:56:14 2018 -0600

    niu: fix missing checks of niu_pci_eeprom_read
    
    [ Upstream commit 26fd962bde0b15e54234fe762d86bc0349df1de4 ]
    
    niu_pci_eeprom_read() may fail, so we should check its return value
    before using the read data.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Acked-by: Shannon Nelson <shannon.lee.nelson@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5eb9de20b9cc44e58ae83ec37a8791814d37a1ce
Author: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Date:   Wed Dec 5 12:37:41 2018 +0000

    um: Avoid marking pages with "changed protection"
    
    [ Upstream commit 8892d8545f2d0342b9c550defbfb165db237044b ]
    
    Changing protection is a very high cost operation in UML
    because in addition to an extra syscall it also interrupts
    mmap merge sequences generated by the tlb.
    
    While the condition is not particularly common it is worth
    avoiding.
    
    Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c61a608d8e186415e4665b9087faeb8255abdb9
Author: Ronnie Sahlberg <lsahlber@redhat.com>
Date:   Thu Dec 13 08:06:16 2018 +1000

    cifs: check ntwrk_buf_start for NULL before dereferencing it
    
    [ Upstream commit 59a63e479ce36a3f24444c3a36efe82b78e4a8e0 ]
    
    RHBZ: 1021460
    
    There is an issue where when multiple threads open/close the same directory
    ntwrk_buf_start might end up being NULL, causing the call to smbCalcSize
    later to oops with a NULL deref.
    
    The real bug is why this happens and why this can become NULL for an
    open cfile, which should not be allowed.
    This patch tries to avoid a oops until the time when we fix the underlying
    issue.
    
    Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b82eaa2815935d4326d5042e27f08498176f31dd
Author: Stefan Roese <sr@denx.de>
Date:   Mon Dec 17 10:47:48 2018 +0100

    MIPS: ralink: Select CONFIG_CPU_MIPSR2_IRQ_VI on MT7620/8
    
    [ Upstream commit 0b15394475e3bcaf35ca4bf22fc55d56df67224e ]
    
    Testing has shown, that when using mainline U-Boot on MT7688 based
    boards, the system may hang or crash while mounting the root-fs. The
    main issue here is that mainline U-Boot configures EBase to a value
    near the end of system memory. And with CONFIG_CPU_MIPSR2_IRQ_VI
    disabled, trap_init() will not allocate a new area to place the
    exception handler. The original value will be used and the handler
    will be copied to this location, which might already be used by some
    userspace application.
    
    The MT7688 supports VI - its config3 register is 0x00002420, so VInt
    (Bit 5) is set. But without setting CONFIG_CPU_MIPSR2_IRQ_VI this
    bit will not be evaluated to result in "cpu_has_vi" being set. This
    patch now selects CONFIG_CPU_MIPSR2_IRQ_VI on MT7620/8 which results
    trap_init() to allocate some memory for the exception handler.
    
    Please note that this issue was not seen with the Mediatek U-Boot
    version, as it does not touch EBase (stays at default of 0x8000.0000).
    This is strictly also not correct as the kernel (_text) resides
    here.
    
    Signed-off-by: Stefan Roese <sr@denx.de>
    [paul.burton@mips.com: s/beeing/being/]
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: John Crispin <blogic@openwrt.org>
    Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b364a8a8e3f1bea2ec0ec6b609834073db5f83c
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Mon Dec 10 16:49:54 2018 -0700

    crypto: ux500 - Use proper enum in hash_set_dma_transfer
    
    [ Upstream commit 5ac93f808338f4dd465402e91869702eb87db241 ]
    
    Clang warns when one enumerated type is implicitly converted to another:
    
    drivers/crypto/ux500/hash/hash_core.c:169:4: warning: implicit
    conversion from enumeration type 'enum dma_data_direction' to different
    enumeration type 'enum dma_transfer_direction' [-Wenum-conversion]
                            direction, DMA_CTRL_ACK | DMA_PREP_INTERRUPT);
                            ^~~~~~~~~
    1 warning generated.
    
    dmaengine_prep_slave_sg expects an enum from dma_transfer_direction.
    We know that the only direction supported by this function is
    DMA_TO_DEVICE because of the check at the top of this function so we can
    just use the equivalent value from dma_transfer_direction.
    
    DMA_TO_DEVICE = DMA_MEM_TO_DEV = 1
    
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 00af9ea68da2f61df5d83f7941614b75ac4ebd1d
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Mon Dec 10 16:49:29 2018 -0700

    crypto: ux500 - Use proper enum in cryp_set_dma_transfer
    
    [ Upstream commit 9d880c5945c748d8edcac30965f3349a602158c4 ]
    
    Clang warns when one enumerated type is implicitly converted to another:
    
    drivers/crypto/ux500/cryp/cryp_core.c:559:5: warning: implicit
    conversion from enumeration type 'enum dma_data_direction' to different
    enumeration type 'enum dma_transfer_direction' [-Wenum-conversion]
                                    direction, DMA_CTRL_ACK);
                                    ^~~~~~~~~
    drivers/crypto/ux500/cryp/cryp_core.c:583:5: warning: implicit
    conversion from enumeration type 'enum dma_data_direction' to different
    enumeration type 'enum dma_transfer_direction' [-Wenum-conversion]
                                    direction,
                                    ^~~~~~~~~
    2 warnings generated.
    
    dmaengine_prep_slave_sg expects an enum from dma_transfer_direction.
    Because we know the value of the dma_data_direction enum from the
    switch statement, we can just use the proper value from
    dma_transfer_direction so there is no more conversion.
    
    DMA_TO_DEVICE = DMA_MEM_TO_DEV = 1
    DMA_FROM_DEVICE = DMA_DEV_TO_MEM = 2
    
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb56da64ce84d5efadeda294938421f9ee98dcc9
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Fri Oct 19 15:21:08 2018 +1100

    seq_buf: Make seq_buf_puts() null-terminate the buffer
    
    [ Upstream commit 0464ed24380905d640030d368cd84a4e4d1e15e2 ]
    
    Currently seq_buf_puts() will happily create a non null-terminated
    string for you in the buffer. This is particularly dangerous if the
    buffer is on the stack.
    
    For example:
    
      char buf[8];
      char secret = "secret";
      struct seq_buf s;
    
      seq_buf_init(&s, buf, sizeof(buf));
      seq_buf_puts(&s, "foo");
      printk("Message is %s\n", buf);
    
    Can result in:
    
      Message is fooªªªªªsecret
    
    We could require all users to memset() their buffer to zero before
    use. But that seems likely to be forgotten and lead to bugs.
    
    Instead we can change seq_buf_puts() to always leave the buffer in a
    null-terminated state.
    
    The only downside is that this makes the buffer 1 character smaller
    for seq_buf_puts(), but that seems like a good trade off.
    
    Link: http://lkml.kernel.org/r/20181019042109.8064-1-mpe@ellerman.id.au
    
    Acked-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ecbf70b1586786ad84eead30246ecc2ef87de417
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Fri Dec 21 13:10:39 2018 -0600

    hwmon: (lm80) fix a missing check of bus read in lm80 probe
    
    [ Upstream commit 9aa3aa15f4c2f74f47afd6c5db4b420fadf3f315 ]
    
    In lm80_probe(), if lm80_read_value() fails, it returns a negative
    error number which is stored to data->fan[f_min] and will be further
    used. We should avoid using the data if the read fails.
    
    The fix checks if lm80_read_value() fails, and if so, returns with the
    error number.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0138dfb7b3325dcd7347ccaa0c256c6fd9239b8d
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Fri Dec 21 13:01:33 2018 -0600

    hwmon: (lm80) fix a missing check of the status of SMBus read
    
    [ Upstream commit c9c63915519b1def7043b184680f33c24cd49d7b ]
    
    If lm80_read_value() fails, it returns a negative number instead of the
    correct read data. Therefore, we should avoid using the data if it
    fails.
    
    The fix checks if lm80_read_value() fails, and if so, returns with the
    error number.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    [groeck: One variable for return values is enough]
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a37706aca54c46b9ea11b3a53ea0e91e3ada1a22
Author: Chris Perl <cperl@janestreet.com>
Date:   Mon Dec 17 10:56:38 2018 -0500

    NFS: nfs_compare_mount_options always compare auth flavors.
    
    [ Upstream commit 594d1644cd59447f4fceb592448d5cd09eb09b5e ]
    
    This patch removes the check from nfs_compare_mount_options to see if a
    `sec' option was passed for the current mount before comparing auth
    flavors and instead just always compares auth flavors.
    
    Consider the following scenario:
    
    You have a server with the address 192.168.1.1 and two exports /export/a
    and /export/b.  The first export supports `sys' and `krb5' security, the
    second just `sys'.
    
    Assume you start with no mounts from the server.
    
    The following results in EIOs being returned as the kernel nfs client
    incorrectly thinks it can share the underlying `struct nfs_server's:
    
    $ mkdir /tmp/{a,b}
    $ sudo mount -t nfs -o vers=3,sec=krb5 192.168.1.1:/export/a /tmp/a
    $ sudo mount -t nfs -o vers=3          192.168.1.1:/export/b /tmp/b
    $ df >/dev/null
    df: ‘/tmp/b’: Input/output error
    
    Signed-off-by: Chris Perl <cperl@janestreet.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b3db169bf10d34fb7d3852c5222c925e3952269
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Wed Dec 19 12:06:13 2018 +0100

    KVM: x86: svm: report MSR_IA32_MCG_EXT_CTL as unsupported
    
    [ Upstream commit e87555e550cef4941579cd879759a7c0dee24e68 ]
    
    AMD doesn't seem to implement MSR_IA32_MCG_EXT_CTL and svm code in kvm
    knows nothing about it, however, this MSR is among emulated_msrs and
    thus returned with KVM_GET_MSR_INDEX_LIST. The consequent KVM_GET_MSRS,
    of course, fails.
    
    Report the MSR as unsupported to not confuse userspace.
    
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d3e7df5eca8bfc9ee0d234c403ef79e68de073f4
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Sun Dec 9 20:50:51 2018 +0100

    pinctrl: meson: meson8b: fix the GPIO function for the GPIOAO pins
    
    [ Upstream commit 2b745ac3cceb8fc1d9985990c8241a821ea97e53 ]
    
    The GPIOAO pins (as well as the two exotic GPIO_BSD_EN and GPIO_TEST_N)
    only belong to the pin controller in the AO domain. With the current
    definition these pins cannot be referred to in .dts files as group
    (which is possible on GXBB and GXL for example).
    
    Add a separate "gpio_aobus" function to fix the mapping between the pin
    controller and the GPIO pins in the AO domain. This is similar to how
    the GXBB and GXL drivers implement this functionality.
    
    Fixes: 9dab1868ec0db4 ("pinctrl: amlogic: Make driver independent from two-domain configuration")
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4d485769afb25fd6aba37781649a77dcec60a2da
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Sun Dec 9 20:50:50 2018 +0100

    pinctrl: meson: meson8: fix the GPIO function for the GPIOAO pins
    
    [ Upstream commit 42f9b48cc5402be11d2364275eb18c257d2a79e8 ]
    
    The GPIOAO pins (as well as the two exotic GPIO_BSD_EN and GPIO_TEST_N)
    only belong to the pin controller in the AO domain. With the current
    definition these pins cannot be referred to in .dts files as group
    (which is possible on GXBB and GXL for example).
    
    Add a separate "gpio_aobus" function to fix the mapping between the pin
    controller and the GPIO pins in the AO domain. This is similar to how
    the GXBB and GXL drivers implement this functionality.
    
    Fixes: 9dab1868ec0db4 ("pinctrl: amlogic: Make driver independent from two-domain configuration")
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38e753847b70d6eb0f68e4d48b95c32ff042718d
Author: Noralf Trønnes <noralf@tronnes.org>
Date:   Thu Dec 20 19:13:09 2018 +0100

    fbdev: fbcon: Fix unregister crash when more than one framebuffer
    
    [ Upstream commit 2122b40580dd9d0620398739c773d07a7b7939d0 ]
    
    When unregistering fbdev using unregister_framebuffer(), any bound
    console will unbind automatically. This is working fine if this is the
    only framebuffer, resulting in a switch to the dummy console. However if
    there is a fb0 and I unregister fb1 having a bound console, I eventually
    get a crash. The fastest way for me to trigger the crash is to do a
    reboot, resulting in this splat:
    
    [   76.478825] WARNING: CPU: 0 PID: 527 at linux/kernel/workqueue.c:1442 __queue_work+0x2d4/0x41c
    [   76.478849] Modules linked in: raspberrypi_hwmon gpio_backlight backlight bcm2835_rng rng_core [last unloaded: tinydrm]
    [   76.478916] CPU: 0 PID: 527 Comm: systemd-udevd Not tainted 4.20.0-rc4+ #4
    [   76.478933] Hardware name: BCM2835
    [   76.478949] Backtrace:
    [   76.478995] [<c010d388>] (dump_backtrace) from [<c010d670>] (show_stack+0x20/0x24)
    [   76.479022]  r6:00000000 r5:c0bc73be r4:00000000 r3:6fb5bf81
    [   76.479060] [<c010d650>] (show_stack) from [<c08e82f4>] (dump_stack+0x20/0x28)
    [   76.479102] [<c08e82d4>] (dump_stack) from [<c0120070>] (__warn+0xec/0x12c)
    [   76.479134] [<c011ff84>] (__warn) from [<c01201e4>] (warn_slowpath_null+0x4c/0x58)
    [   76.479165]  r9:c0eb6944 r8:00000001 r7:c0e927f8 r6:c0bc73be r5:000005a2 r4:c0139e84
    [   76.479197] [<c0120198>] (warn_slowpath_null) from [<c0139e84>] (__queue_work+0x2d4/0x41c)
    [   76.479222]  r6:d7666a00 r5:c0e918ee r4:dbc4e700
    [   76.479251] [<c0139bb0>] (__queue_work) from [<c013a02c>] (queue_work_on+0x60/0x88)
    [   76.479281]  r10:c0496bf8 r9:00000100 r8:c0e92ae0 r7:00000001 r6:d9403700 r5:d7666a00
    [   76.479298]  r4:20000113
    [   76.479348] [<c0139fcc>] (queue_work_on) from [<c0496c28>] (cursor_timer_handler+0x30/0x54)
    [   76.479374]  r7:d8a8fabc r6:c0e08088 r5:d8afdc5c r4:d8a8fabc
    [   76.479413] [<c0496bf8>] (cursor_timer_handler) from [<c0178744>] (call_timer_fn+0x100/0x230)
    [   76.479435]  r4:c0e9192f r3:d758a340
    [   76.479465] [<c0178644>] (call_timer_fn) from [<c0178980>] (expire_timers+0x10c/0x12c)
    [   76.479495]  r10:40000000 r9:c0e9192f r8:c0e92ae0 r7:d8afdccc r6:c0e19280 r5:c0496bf8
    [   76.479513]  r4:d8a8fabc
    [   76.479541] [<c0178874>] (expire_timers) from [<c0179630>] (run_timer_softirq+0xa8/0x184)
    [   76.479570]  r9:00000001 r8:c0e19280 r7:00000000 r6:c0e08088 r5:c0e1a3e0 r4:c0e19280
    [   76.479603] [<c0179588>] (run_timer_softirq) from [<c0102404>] (__do_softirq+0x1ac/0x3fc)
    [   76.479632]  r10:c0e91680 r9:d8afc020 r8:0000000a r7:00000100 r6:00000001 r5:00000002
    [   76.479650]  r4:c0eb65ec
    [   76.479686] [<c0102258>] (__do_softirq) from [<c0124d10>] (irq_exit+0xe8/0x168)
    [   76.479716]  r10:d8d1a9b0 r9:d8afc000 r8:00000001 r7:d949c000 r6:00000000 r5:c0e8b3f0
    [   76.479734]  r4:00000000
    [   76.479764] [<c0124c28>] (irq_exit) from [<c016b72c>] (__handle_domain_irq+0x94/0xb0)
    [   76.479793] [<c016b698>] (__handle_domain_irq) from [<c01021dc>] (bcm2835_handle_irq+0x3c/0x48)
    [   76.479823]  r8:d8afdebc r7:d8afddfc r6:ffffffff r5:c0e089f8 r4:d8afddc8 r3:d8afddc8
    [   76.479851] [<c01021a0>] (bcm2835_handle_irq) from [<c01019f0>] (__irq_svc+0x70/0x98)
    
    The problem is in the console rebinding in fbcon_fb_unbind(). It uses the
    virtual console index as the new framebuffer index to bind the console(s)
    to. The correct way is to use the con2fb_map lookup table to find the
    framebuffer index.
    
    Fixes: cfafca8067c6 ("fbdev: fbcon: console unregistration from unregister_framebuffer")
    Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
    Reviewed-by: Mikulas Patocka <mpatocka@redhat.com>
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ae94cd54cd8d7f8802ae22a988bdd5d8b8bf204
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Mon Dec 3 13:54:38 2018 +0800

    igb: Fix an issue that PME is not enabled during runtime suspend
    
    [ Upstream commit 1fb3a7a75e2efcc83ef21f2434069cddd6fae6f5 ]
    
    I210 ethernet card doesn't wakeup when a cable gets plugged. It's
    because its PME is not set.
    
    Since commit 42eca2302146 ("PCI: Don't touch card regs after runtime
    suspend D3"), if the PCI state is saved, pci_pm_runtime_suspend() stops
    calling pci_finish_runtime_suspend(), which enables the PCI PME.
    
    To fix the issue, let's not to save PCI states when it's runtime
    suspend, to let the PCI subsystem enables PME.
    
    Fixes: 42eca2302146 ("PCI: Don't touch card regs after runtime suspend D3")
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5037c6ff109d72d6a7b33ae4b8f78a5279f080d0
Author: Konstantin Khorenko <khorenko@virtuozzo.com>
Date:   Fri Nov 23 19:10:28 2018 +0300

    i40e: define proper net_device::neigh_priv_len
    
    [ Upstream commit 31389b53b3e0b535867af9090a5d19ec64768d55 ]
    
    Out of bound read reported by KASan.
    
    i40iw_net_event() reads unconditionally 16 bytes from
    neigh->primary_key while the memory allocated for
    "neighbour" struct is evaluated in neigh_alloc() as
    
      tbl->entry_size + dev->neigh_priv_len
    
    where "dev" is a net_device.
    
    But the driver does not setup dev->neigh_priv_len and
    we read beyond the neigh entry allocated memory,
    so the patch in the next mail fixes this.
    
    Signed-off-by: Konstantin Khorenko <khorenko@virtuozzo.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 06df6307c6e4a6735be96ee515b9a80f3a9ae051
Author: Peter Rosin <peda@axentia.se>
Date:   Thu Dec 20 19:13:07 2018 +0100

    fbdev: fbmem: behave better with small rotated displays and many CPUs
    
    [ Upstream commit f75df8d4b4fabfad7e3cba2debfad12741c6fde7 ]
    
    Blitting an image with "negative" offsets is not working since there
    is no clipping. It hopefully just crashes. For the bootup logo, there
    is protection so that blitting does not happen as the image is drawn
    further and further to the right (ROTATE_UR) or further and further
    down (ROTATE_CW). There is however no protection when drawing in the
    opposite directions (ROTATE_UD and ROTATE_CCW).
    
    Add back this protection.
    
    The regression is 20-odd years old but the mindless warning-killing
    mentality displayed in commit 34bdb666f4b2 ("fbdev: fbmem: remove
    positive test on unsigned values") is also to blame, methinks.
    
    Fixes: 448d479747b8 ("fbdev: fb_do_show_logo() updates")
    Signed-off-by: Peter Rosin <peda@axentia.se>
    Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: Fabian Frederick <ffrederick@users.sourceforge.net>
    Cc: Geert Uytterhoeven <geert+renesas@glider.be>
    cc: Geoff Levand <geoff@infradead.org>
    Cc: James Simmons <jsimmons@users.sf.net>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 55e7919907f076f585edab28a99dc83bd0971dcd
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Thu Dec 20 19:13:07 2018 +0100

    video: clps711x-fb: release disp device node in probe()
    
    [ Upstream commit fdac751355cd76e049f628afe6acb8ff4b1399f7 ]
    
    clps711x_fb_probe() increments refcnt of disp device node by
    of_parse_phandle() and leaves it undecremented on both
    successful and error paths.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Cc: Alexander Shiyan <shc_work@mail.ru>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c9fd3741c4c70554ae2758a5f3f6d70b29c32270
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Thu Dec 20 17:23:43 2018 +0100

    drbd: Avoid Clang warning about pointless switch statment
    
    [ Upstream commit a52c5a16cf19d8a85831bb1b915a221dd4ffae3c ]
    
    There are several warnings from Clang about no case statement matching
    the constant 0:
    
    In file included from drivers/block/drbd/drbd_receiver.c:48:
    In file included from drivers/block/drbd/drbd_int.h:48:
    In file included from ./include/linux/drbd_genl_api.h:54:
    In file included from ./include/linux/genl_magic_struct.h:236:
    ./include/linux/drbd_genl.h:321:1: warning: no case matching constant
    switch condition '0'
    GENL_struct(DRBD_NLA_HELPER, 24, drbd_helper_info,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./include/linux/genl_magic_struct.h:220:10: note: expanded from macro
    'GENL_struct'
            switch (0) {
                    ^
    
    Silence this warning by adding a 'case 0:' statement. Additionally,
    adjust the alignment of the statements in the ct_assert_unique macro to
    avoid a checkpatch warning.
    
    This solution was originally sent by Arnd Bergmann with a default case
    statement: https://lore.kernel.org/patchwork/patch/756723/
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/43
    Suggested-by: Lars Ellenberg <lars.ellenberg@linbit.com>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0de45bfea6076710a64a9937a1bf6a64fd66b319
Author: Lars Ellenberg <lars.ellenberg@linbit.com>
Date:   Thu Dec 20 17:23:41 2018 +0100

    drbd: skip spurious timeout (ping-timeo) when failing promote
    
    [ Upstream commit 9848b6ddd8c92305252f94592c5e278574e7a6ac ]
    
    If you try to promote a Secondary while connected to a Primary
    and allow-two-primaries is NOT set, we will wait for "ping-timeout"
    to give this node a chance to detect a dead primary,
    in case the cluster manager noticed faster than we did.
    
    But if we then are *still* connected to a Primary,
    we fail (after an additional timeout of ping-timout).
    
    This change skips the spurious second timeout.
    
    Most people won't notice really,
    since "ping-timeout" by default is half a second.
    
    But in some installations, ping-timeout may be 10 or 20 seconds or more,
    and spuriously delaying the error return becomes annoying.
    
    Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1db8ab808e4e77a7bd7adf1ff871328f8ad7a28a
Author: Lars Ellenberg <lars.ellenberg@linbit.com>
Date:   Thu Dec 20 17:23:32 2018 +0100

    drbd: disconnect, if the wrong UUIDs are attached on a connected peer
    
    [ Upstream commit b17b59602b6dcf8f97a7dc7bc489a48388d7063a ]
    
    With "on-no-data-accessible suspend-io", DRBD requires the next attach
    or connect to be to the very same data generation uuid tag it lost last.
    
    If we first lost connection to the peer,
    then later lost connection to our own disk,
    we would usually refuse to re-connect to the peer,
    because it presents the wrong data set.
    
    However, if the peer first connects without a disk,
    and then attached its disk, we accepted that same wrong data set,
    which would be "unexpected" by any user of that DRBD
    and cause "undefined results" (read: very likely data corruption).
    
    The fix is to forcefully disconnect as soon as we notice that the peer
    attached to the "wrong" dataset.
    
    Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b1ceaab5968bebcb3deac7a4bec93bbbc8ad3b3a
Author: Roland Kammerer <roland.kammerer@linbit.com>
Date:   Thu Dec 20 17:23:28 2018 +0100

    drbd: narrow rcu_read_lock in drbd_sync_handshake
    
    [ Upstream commit d29e89e34952a9ad02c77109c71a80043544296e ]
    
    So far there was the possibility that we called
    genlmsg_new(GFP_NOIO)/mutex_lock() while holding an rcu_read_lock().
    
    This included cases like:
    
    drbd_sync_handshake (acquire the RCU lock)
      drbd_asb_recover_1p
        drbd_khelper
          drbd_bcast_event
            genlmsg_new(GFP_NOIO) --> may sleep
    
    drbd_sync_handshake (acquire the RCU lock)
      drbd_asb_recover_1p
        drbd_khelper
          notify_helper
            genlmsg_new(GFP_NOIO) --> may sleep
    
    drbd_sync_handshake (acquire the RCU lock)
      drbd_asb_recover_1p
        drbd_khelper
          notify_helper
            mutex_lock --> may sleep
    
    While using GFP_ATOMIC whould have been possible in the first two cases,
    the real fix is to narrow the rcu_read_lock.
    
    Reported-by: Jia-Ju Bai <baijiaju1990@163.com>
    Reviewed-by: Lars Ellenberg <lars.ellenberg@linbit.com>
    Signed-off-by: Roland Kammerer <roland.kammerer@linbit.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 806d99ef0e0939ad1fb3f5a2dcacd660b9a64e4e
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Fri Dec 14 11:55:21 2018 +0800

    cw1200: Fix concurrency use-after-free bugs in cw1200_hw_scan()
    
    [ Upstream commit 4f68ef64cd7feb1220232bd8f501d8aad340a099 ]
    
    The function cw1200_bss_info_changed() and cw1200_hw_scan() can be
    concurrently executed.
    The two functions both access a possible shared variable "frame.skb".
    
    This shared variable is freed by dev_kfree_skb() in cw1200_upload_beacon(),
    which is called by cw1200_bss_info_changed(). The free operation is
    protected by a mutex lock "priv->conf_mutex" in cw1200_bss_info_changed().
    
    In cw1200_hw_scan(), this shared variable is accessed without the
    protection of the mutex lock "priv->conf_mutex".
    Thus, concurrency use-after-free bugs may occur.
    
    To fix these bugs, the original calls to mutex_lock(&priv->conf_mutex) and
    mutex_unlock(&priv->conf_mutex) are moved to the places, which can
    protect the accesses to the shared variable.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3e537395c49fb559535439f0bd1ff904540a680
Author: Dave Carroll <david.carroll@microsemi.com>
Date:   Fri Dec 7 16:29:45 2018 -0600

    scsi: smartpqi: correct volume status
    
    [ Upstream commit 7ff44499bafbd376115f0bb6b578d980f56ee13b ]
    
    - fix race condition when a unit is deleted after an RLL,
      and before we have gotten the LV_STATUS page of the unit.
      - In this case we will get a standard inquiry, rather than
        the desired page.  This will result in a unit presented
        which no longer exists.
      - If we ask for LV_STATUS, insure we get LV_STATUS
    
    Reviewed-by: Murthy Bhat <murthy.bhat@microsemi.com>
    Reviewed-by: Mahesh Rajashekhara <mahesh.rajashekhara@microsemi.com>
    Reviewed-by: Scott Teel <scott.teel@microsemi.com>
    Reviewed-by: Kevin Barnett <kevin.barnett@microsemi.com>
    Signed-off-by: Dave Carroll <david.carroll@microsemi.com>
    Signed-off-by: Don Brace <don.brace@microsemi.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 07b3f3c56837cb9249cfda444e5119188388503a
Author: Mahesh Rajashekhara <mahesh.rajashekhara@microsemi.com>
Date:   Fri Dec 7 16:28:29 2018 -0600

    scsi: smartpqi: correct host serial num for ssa
    
    [ Upstream commit b2346b5030cf9458f30a84028d9fe904b8c942a7 ]
    
    Reviewed-by: Scott Benesh <scott.benesh@microsemi.com>
    Reviewed-by: Ajish Koshy <ajish.koshy@microsemi.com>
    Reviewed-by: Murthy Bhat <murthy.bhat@microsemi.com>
    Reviewed-by: Mahesh Rajashekhara <mahesh.rajashekhara@microsemi.com>
    Reviewed-by: Dave Carroll <david.carroll@microsemi.com>
    Reviewed-by: Scott Teel <scott.teel@microsemi.com>
    Reviewed-by: Kevin Barnett <kevin.barnett@microsemi.com>
    Signed-off-by: Mahesh Rajashekhara <mahesh.rajashekhara@microsemi.com>
    Signed-off-by: Don Brace <don.brace@microsemi.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11c7fac20807db62f1f910df2285ca3e5c5cfb57
Author: Johan Hedberg <johan.hedberg@intel.com>
Date:   Tue Nov 27 11:37:46 2018 +0200

    Bluetooth: Fix unnecessary error message for HCI request completion
    
    [ Upstream commit 1629db9c75342325868243d6bca5853017d91cf8 ]
    
    In case a command which completes in Command Status was sent using the
    hci_cmd_send-family of APIs there would be a misleading error in the
    hci_get_cmd_complete function, since the code would be trying to fetch
    the Command Complete parameters when there are none.
    
    Avoid the misleading error and silently bail out from the function in
    case the received event is a command status.
    
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Acked-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a1708a81baac5c48423a65500e174775cb261cc7
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Wed Dec 19 14:45:09 2018 +0800

    xfrm6_tunnel: Fix spi check in __xfrm6_tunnel_alloc_spi
    
    [ Upstream commit fa89a4593b927b3f59c3b69379f31d3b22272e4e ]
    
    gcc warn this:
    
    net/ipv6/xfrm6_tunnel.c:143 __xfrm6_tunnel_alloc_spi() warn:
     always true condition '(spi <= 4294967295) => (0-u32max <= u32max)'
    
    'spi' is u32, which always not greater than XFRM6_TUNNEL_SPI_MAX
    because of wrap around. So the second forloop will never reach.
    
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4470e51361ffc06262cc835a5764f34260aa7311
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Sat Dec 15 11:03:12 2018 +0200

    mac80211: fix radiotap vendor presence bitmap handling
    
    [ Upstream commit efc38dd7d5fa5c8cdd0c917c5d00947aa0539443 ]
    
    Due to the alignment handling, it actually matters where in the code
    we add the 4 bytes for the presence bitmap to the length; the first
    field is the timestamp with 8 byte alignment so we need to add the
    space for the extra vendor namespace presence bitmap *before* we do
    any alignment for the fields.
    
    Move the presence bitmap length accounting to the right place to fix
    the alignment for the data properly.
    
    Signed-off-by: Johannes Berg <johannes.berg@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 <sashal@kernel.org>

commit f4365d40238f2e889071ab7d6cfdc5a91c532fbc
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Mon Dec 10 06:50:09 2018 +0000

    powerpc/uaccess: fix warning/error with access_ok()
    
    [ Upstream commit 05a4ab823983d9136a460b7b5e0d49ee709a6f86 ]
    
    With the following piece of code, the following compilation warning
    is encountered:
    
            if (_IOC_DIR(ioc) != _IOC_NONE) {
                    int verify = _IOC_DIR(ioc) & _IOC_READ ? VERIFY_WRITE : VERIFY_READ;
    
                    if (!access_ok(verify, ioarg, _IOC_SIZE(ioc))) {
    
    drivers/platform/test/dev.c: In function 'my_ioctl':
    drivers/platform/test/dev.c:219:7: warning: unused variable 'verify' [-Wunused-variable]
       int verify = _IOC_DIR(ioc) & _IOC_READ ? VERIFY_WRITE : VERIFY_READ;
    
    This patch fixes it by referencing 'type' in the macro allthough
    doing nothing with it.
    
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d74450c936ede1024ef8b775e9b91131bd71bedc
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Fri Nov 9 15:07:10 2018 +0000

    arm64: KVM: Skip MMIO insn after emulation
    
    [ Upstream commit 0d640732dbebed0f10f18526de21652931f0b2f2 ]
    
    When we emulate an MMIO instruction, we advance the CPU state within
    decode_hsr(), before emulating the instruction effects.
    
    Having this logic in decode_hsr() is opaque, and advancing the state
    before emulation is problematic. It gets in the way of applying
    consistent single-step logic, and it prevents us from being able to fail
    an MMIO instruction with a synchronous exception.
    
    Clean this up by only advancing the CPU state *after* the effects of the
    instruction are emulated.
    
    Cc: Peter Maydell <peter.maydell@linaro.org>
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Reviewed-by: Christoffer Dall <christoffer.dall@arm.com>
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit beeda95079ab74a55a97cece850c4b5c56b99501
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Thu Dec 6 11:50:08 2018 -0300

    perf probe: Fix unchecked usage of strncpy()
    
    [ Upstream commit bef0b8970f27da5ca223e522a174d03e2587761d ]
    
    The strncpy() function may leave the destination string buffer
    unterminated, better use strlcpy() that we have a __weak fallback
    implementation for systems without it.
    
    In this case the 'target' buffer is coming from a list of build-ids that
    are expected to have a len of at most (SBUILD_ID_SIZE - 1) chars, so
    probably we're safe, but since we're using strncpy() here, use strlcpy()
    instead to provide the intended safety checking without the using the
    problematic strncpy() function.
    
    This fixes this warning on an Alpine Linux Edge system with gcc 8.2:
    
      util/probe-file.c: In function 'probe_cache__open.isra.5':
      util/probe-file.c:427:3: error: 'strncpy' specified bound 41 equals destination size [-Werror=stringop-truncation]
         strncpy(sbuildid, target, SBUILD_ID_SIZE);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      cc1: all warnings being treated as errors
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Fixes: 1f3736c9c833 ("perf probe: Show all cached probes")
    Link: https://lkml.kernel.org/n/tip-l7n8ggc9kl38qtdlouke5yp5@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 769d74be45bb9c23d2083fd1269320ab3a1289e5
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Thu Dec 6 11:02:57 2018 -0300

    perf header: Fix unchecked usage of strncpy()
    
    [ Upstream commit 7572588085a13d5db02bf159542189f52fdb507e ]
    
    The strncpy() function may leave the destination string buffer
    unterminated, better use strlcpy() that we have a __weak fallback
    implementation for systems without it.
    
    This fixes this warning on an Alpine Linux Edge system with gcc 8.2:
    
      util/header.c: In function 'perf_event__synthesize_event_update_unit':
      util/header.c:3586:2: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
        strncpy(ev->data, evsel->unit, size);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      util/header.c:3579:16: note: length computed here
        size_t size = strlen(evsel->unit);
                      ^~~~~~~~~~~~~~~~~~~
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Fixes: a6e5281780d1 ("perf tools: Add event_update event unit type")
    Link: https://lkml.kernel.org/n/tip-fiikh5nay70bv4zskw2aa858@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13d7112b4bca18c9bf507b00c150b6df043d754c
Author: Beomho Seo <beomho.seo@samsung.com>
Date:   Fri Dec 14 12:34:08 2018 +0100

    tty: serial: samsung: Properly set flags in autoCTS mode
    
    [ Upstream commit 31e933645742ee6719d37573a27cce0761dcf92b ]
    
    Commit 391f93f2ec9f ("serial: core: Rework hw-assited flow control support")
    has changed the way the autoCTS mode is handled.
    
    According to that change, serial drivers which enable H/W autoCTS mode must
    set UPSTAT_AUTOCTS to prevent the serial core from inadvertently disabling
    TX. This patch adds proper handling of UPSTAT_AUTOCTS flag.
    
    Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
    [mszyprow: rephrased commit message]
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4bde07d81d6680486af7d4136f0e19b20b8bd43e
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Mon Nov 5 16:45:04 2018 +0800

    memstick: Prevent memstick host from getting runtime suspended during card detection
    
    [ Upstream commit e03e303edf1c63e6dd455ccd568c74e93ef3ba8c ]
    
    We can use MEMSTICK_POWER_{ON,OFF} along with pm_runtime_{get,put}
    helpers to let memstick host support runtime pm.
    
    The rpm count may go down to zero before the memstick host powers on, so
    the host can be runtime suspended.
    
    So before doing card detection, increment the rpm count to avoid the
    host gets runtime suspended. Balance the rpm count after card detection
    is done.
    
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 53276cf018cb0e72f484fda07c3cf4b9b75b50d0
Author: Fabio Estevam <festevam@gmail.com>
Date:   Thu Dec 13 00:08:38 2018 -0200

    ASoC: fsl: Fix SND_SOC_EUKREA_TLV320 build error on i.MX8M
    
    [ Upstream commit add6883619a9e3bf9658eaff1a547354131bbcd9 ]
    
    eukrea-tlv320.c machine driver runs on non-DT platforms
    and include <asm/mach-types.h> header file in order to be able
    to use some machine_is_eukrea_xxx() macros.
    
    Building it for ARM64 causes the following build error:
    
    sound/soc/fsl/eukrea-tlv320.c:28:10: fatal error: asm/mach-types.h: No such file or directory
    
    Avoid this error by not allowing to build the SND_SOC_EUKREA_TLV320
    driver when ARM64 is selected.
    
    This is needed in preparation for the i.MX8M support.
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Acked-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cefe66c3aa8ef71f596cc41164f8ea150be5bb53
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Dec 10 22:58:39 2018 +0100

    ARM: pxa: avoid section mismatch warning
    
    [ Upstream commit 88af3209aa0881aa5ffd99664b6080a4be5f24e5 ]
    
    WARNING: vmlinux.o(.text+0x19f90): Section mismatch in reference from the function littleton_init_lcd() to the function .init.text:pxa_set_fb_info()
    The function littleton_init_lcd() references
    the function __init pxa_set_fb_info().
    This is often because littleton_init_lcd lacks a __init
    annotation or the annotation of pxa_set_fb_info is wrong.
    
    WARNING: vmlinux.o(.text+0xf824): Section mismatch in reference from the function zeus_register_ohci() to the function .init.text:pxa_set_ohci_info()
    The function zeus_register_ohci() references
    the function __init pxa_set_ohci_info().
    This is often because zeus_register_ohci lacks a __init
    annotation or the annotation of pxa_set_ohci_info is wrong.
    
    WARNING: vmlinux.o(.text+0xf95c): Section mismatch in reference from the function cm_x300_init_u2d() to the function .init.text:pxa3xx_set_u2d_info()
    The function cm_x300_init_u2d() references
    the function __init pxa3xx_set_u2d_info().
    This is often because cm_x300_init_u2d lacks a __init
    annotation or the annotation of pxa3xx_set_u2d_info is wrong.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 46171c3288228a0200f677d166080fd856f21980
Author: Jan Kara <jack@suse.cz>
Date:   Wed Dec 12 14:29:20 2018 +0100

    udf: Fix BUG on corrupted inode
    
    [ Upstream commit d288d95842f1503414b7eebce3773bac3390457e ]
    
    When inode is corrupted so that extent type is invalid, some functions
    (such as udf_truncate_extents()) will just BUG. Check that extent type
    is valid when loading the inode to memory.
    
    Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f12dcce8351907abffc6a4b6b4f39629ee4b274d
Author: Adamski, Krzysztof (Nokia - PL/Wroclaw) <krzysztof.adamski@nokia.com>
Date:   Mon Dec 10 15:01:27 2018 +0000

    i2c-axxia: check for error conditions first
    
    [ Upstream commit 4f5c85fe3a60ace555d09898166af372547f97fc ]
    
    It was observed that when using seqentional mode contrary to the
    documentation, the SS bit (which is supposed to only be set if
    automatic/sequence command completed normally), is sometimes set
    together with NA (NAK in address phase) causing transfer to falsely be
    considered successful.
    
    My assumption is that this does not happen during manual mode since the
    controller is stopping its work the moment it sets NA/ND bit in status
    register. This is not the case in Automatic/Sequentional mode where it
    is still working to send STOP condition and the actual status we get
    depends on the time when the ISR is run.
    
    This patch changes the order of checking status bits in ISR - error
    conditions are checked first and only if none of them occurred, the
    transfer may be considered successful. This is required to introduce
    using of sequentional mode in next patch.
    
    Signed-off-by: Krzysztof Adamski <krzysztof.adamski@nokia.com>
    Reviewed-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit da048fe9b871346d179d1f91122d9700e8b384d6
Author: Yangtao Li <tiny.windzz@gmail.com>
Date:   Mon Dec 10 11:26:41 2018 -0500

    cpuidle: big.LITTLE: fix refcount leak
    
    [ Upstream commit 9456823c842f346c74265fcd98d008d87a7eb6f5 ]
    
    of_find_node_by_path() acquires a reference to the node
    returned by it and that reference needs to be dropped by its caller.
    bl_idle_init() doesn't do that, so fix it.
    
    Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
    Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f2ea36e1f20289eca47aa23e9daf4fdc94e06940
Author: Anson Huang <anson.huang@nxp.com>
Date:   Fri Nov 30 07:23:47 2018 +0000

    clk: imx6sl: ensure MMDC CH0 handshake is bypassed
    
    [ Upstream commit 0efcc2c0fd2001a83240a8c3d71f67770484917e ]
    
    Same as other i.MX6 SoCs, ensure unused MMDC channel's
    handshake is bypassed, this is to make sure no request
    signal will be generated when periphe_clk_sel is changed
    or SRC warm reset is triggered.
    
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b4f5424d387b9ca5bbae072730593266fd8adf47
Author: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Date:   Sat Nov 24 21:14:16 2018 +0300

    sata_rcar: fix deferred probing
    
    [ Upstream commit 9f83cfdb1ace3ef268ecc6fda50058d2ec37d603 ]
    
    The driver overrides the error codes returned by platform_get_irq() to
    -EINVAL, so if it returns -EPROBE_DEFER, the driver would fail the probe
    permanently instead of the deferred probing. Switch to propagating the
    error code upstream, still checking/overriding IRQ0 as libata regards it
    as "no IRQ" (thus polling) anyway...
    
    Fixes: 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
    Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1069fc14266851c1e5eae4a33a5da864387c093
Author: Will Deacon <will.deacon@arm.com>
Date:   Wed Nov 7 22:58:24 2018 +0000

    iommu/arm-smmu-v3: Use explicit mb() when moving cons pointer
    
    [ Upstream commit a868e8530441286342f90c1fd9c5f24de3aa2880 ]
    
    After removing an entry from a queue (e.g. reading an event in
    arm_smmu_evtq_thread()) it is necessary to advance the MMIO consumer
    pointer to free the queue slot back to the SMMU. A memory barrier is
    required here so that all reads targetting the queue entry have
    completed before the consumer pointer is updated.
    
    The implementation of queue_inc_cons() relies on a writel() to complete
    the previous reads, but this is incorrect because writel() is only
    guaranteed to complete prior writes. This patch replaces the call to
    writel() with an mb(); writel_relaxed() sequence, which gives us the
    read->write ordering which we require.
    
    Cc: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 98e089c8b7b4b851d231826d7c814b20a969cde3
Author: Vivek Gautam <vivek.gautam@codeaurora.org>
Date:   Tue Dec 4 11:52:13 2018 +0530

    iommu/arm-smmu: Add support for qcom,smmu-v2 variant
    
    [ Upstream commit 89cddc563743cb1e0068867ac97013b2a5bf86aa ]
    
    qcom,smmu-v2 is an arm,smmu-v2 implementation with specific
    clock and power requirements.
    On msm8996, multiple cores, viz. mdss, video, etc. use this
    smmu. On sdm845, this smmu is used with gpu.
    Add bindings for the same.
    
    Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Reviewed-by: Tomasz Figa <tfiga@chromium.org>
    Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Reviewed-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c53fcd538a2ad7e916ce47e5f4db026f9bb7eb96
Author: Jiong Wang <jiong.wang@netronome.com>
Date:   Mon Dec 3 17:27:54 2018 -0500

    mips: bpf: fix encoding bug for mm_srlv32_op
    
    [ Upstream commit 17f6c83fb5ebf7db4fcc94a5be4c22d5a7bfe428 ]
    
    For micro-mips, srlv inside POOL32A encoding space should use 0x50
    sub-opcode, NOT 0x90.
    
    Some early version ISA doc describes the encoding as 0x90 for both srlv and
    srav, this looks to me was a typo. I checked Binutils libopcode
    implementation which is using 0x50 for srlv and 0x90 for srav.
    
    v1->v2:
      - Keep mm_srlv32_op sorted by value.
    
    Fixes: f31318fdf324 ("MIPS: uasm: Add srlv uasm instruction")
    Cc: Markos Chandras <markos.chandras@imgtec.com>
    Cc: Paul Burton <paul.burton@mips.com>
    Cc: linux-mips@vger.kernel.org
    Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Acked-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a56fd13b0f5319fcba0980fd65779638330c96a9
Author: Russell King - ARM Linux <linux@armlinux.org.uk>
Date:   Fri Dec 7 09:17:07 2018 -0800

    ARM: dts: Fix OMAP4430 SDP Ethernet startup
    
    [ Upstream commit 84fb6c7feb1494ebb7d1ec8b95cfb7ada0264465 ]
    
    It was noticed that unbinding and rebinding the KSZ8851 ethernet
    resulted in the driver reporting "failed to read device ID" at probe.
    Probing the reset line with a 'scope while repeatedly attempting to
    bind the driver in a shell loop revealed that the KSZ8851 RSTN pin is
    constantly held at zero, meaning the device is held in reset, and
    does not respond on the SPI bus.
    
    Experimentation with the startup delay on the regulator set to 50ms
    shows that the reset is positively released after 20ms.
    
    Schematics for this board are not available, and the traces are buried
    in the inner layers of the board which makes tracing where the RSTN pin
    extremely difficult.  We can only guess that the RSTN pin is wired to a
    reset generator chip driven off the ethernet supply, which fits the
    observed behaviour.
    
    Include this delay in the regulator startup delay - effectively
    treating the reset as a "supply stable" indicator.
    
    This can not be modelled as a delay in the KSZ8851 driver since the
    reset generation is board specific - if the RSTN pin had been wired to
    a GPIO, reset could be released earlier via the already provided support
    in the KSZ8851 driver.
    
    This also got confirmed by Peter Ujfalusi <peter.ujfalusi@ti.com> based
    on Blaze schematics that should be very close to SDP4430:
    
    TPS22902YFPR is used as the regulator switch (gpio48 controlled):
    Convert arm boot_lock to raw The VOUT is routed to TPS3808G01DBV.
    (SCH Note: Threshold set at 90%. Vsense: 0.405V).
    
    According to the TPS3808 data sheet the RESET delay time when Ct is
    open (this is the case in the schema): MIN/TYP/MAX: 12/20/28 ms.
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    [tony@atomide.com: updated with notes from schematics from Peter]
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d4ccfcea3786ae828a1f6b5a02ff57e9ace3cb13
Author: Yu Zhao <yuzhao@google.com>
Date:   Thu Dec 6 14:39:15 2018 -0700

    iommu/amd: Fix amd_iommu=force_isolation
    
    [ Upstream commit c12b08ebbe16f0d3a96a116d86709b04c1ee8e74 ]
    
    The parameter is still there but it's ignored. We need to check its
    value before deciding to go into passthrough mode for AMD IOMMU v2
    capable device.
    
    We occasionally use this parameter to force v2 capable device into
    translation mode to debug memory corruption that we suspect is
    caused by DMA writes.
    
    To address the following comment from Joerg Roedel on the first
    version, v2 capability of device is completely ignored.
    > This breaks the iommu_v2 use-case, as it needs a direct mapping for the
    > devices that support it.
    
    And from Documentation/admin-guide/kernel-parameters.txt:
      This option does not override iommu=pt
    
    Fixes: aafd8ba0ca74 ("iommu/amd: Implement add_device and remove_device")
    
    Signed-off-by: Yu Zhao <yuzhao@google.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23f2b811bec6147c1fcb96a5593a313f99826354
Author: Chen-Yu Tsai <wens@csie.org>
Date:   Wed Dec 5 18:11:51 2018 +0800

    clk: sunxi-ng: a33: Set CLK_SET_RATE_PARENT for all audio module clocks
    
    [ Upstream commit 6e6da2039c82271dd873b9ad2b902a692a7dd554 ]
    
    All the audio interfaces on Allwinner SoCs need to change their module
    clocks during operation, to switch between support for 44.1 kHz and 48
    kHz family sample rates. The clock rate for the module clocks is
    governed by their upstream audio PLL. The module clocks themselves only
    have a gate, and sometimes a divider or mux. Thus any rate changes need
    to be propagated upstream.
    
    Set the CLK_SET_RATE_PARENT flag for all audio module clocks to achieve
    this.
    
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b6fc5a5108b410d7cb1a160b40845c943427b7d2
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed Nov 28 15:43:09 2018 -0800

    timekeeping: Use proper seqcount initializer
    
    [ Upstream commit ce10a5b3954f2514af726beb78ed8d7350c5e41c ]
    
    tk_core.seq is initialized open coded, but that misses to initialize the
    lockdep map when lockdep is enabled. Lockdep splats involving tk_core seq
    consequently lack a name and are hard to read.
    
    Use the proper initializer which takes care of the lockdep map
    initialization.
    
    [ tglx: Massaged changelog ]
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: peterz@infradead.org
    Cc: tj@kernel.org
    Cc: johannes.berg@intel.com
    Link: https://lkml.kernel.org/r/20181128234325.110011-12-bvanassche@acm.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1fbecf8e70c85ab4c4d487573e8a6248d2efd40d
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Wed Nov 28 15:55:21 2018 +0200

    usb: hub: delay hub autosuspend if USB3 port is still link training
    
    [ Upstream commit e86108940e541febf35813402ff29fa6f4a9ac0b ]
    
    When initializing a hub we want to give a USB3 port in link training
    the same debounce delay time before autosuspening the hub as already
    trained, connected enabled ports.
    
    USB3 ports won't reach the enabled state with "current connect status" and
    "connect status change" bits set until the USB3 link training finishes.
    
    Catching the port in link training (polling) and adding the debounce delay
    prevents unnecessary failed attempts to autosuspend the hub.
    
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f096edebd1525d1f67c9a78912d9229d00739ac7
Author: Zoran Markovic <zmarkovic@sierrawireless.com>
Date:   Wed Oct 17 16:25:44 2018 -0700

    smack: fix access permissions for keyring
    
    [ Upstream commit 5b841bfab695e3b8ae793172a9ff7990f99cc3e2 ]
    
    Function smack_key_permission() only issues smack requests for the
    following operations:
     - KEY_NEED_READ (issues MAY_READ)
     - KEY_NEED_WRITE (issues MAY_WRITE)
     - KEY_NEED_LINK (issues MAY_WRITE)
     - KEY_NEED_SETATTR (issues MAY_WRITE)
    A blank smack request is issued in all other cases, resulting in
    smack access being granted if there is any rule defined between
    subject and object, or denied with -EACCES otherwise.
    
    Request MAY_READ access for KEY_NEED_SEARCH and KEY_NEED_VIEW.
    Fix the logic in the unlikely case when both MAY_READ and
    MAY_WRITE are needed. Validate access permission field for valid
    contents.
    
    Signed-off-by: Zoran Markovic <zmarkovic@sierrawireless.com>
    Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
    Cc: Casey Schaufler <casey@schaufler-ca.com>
    Cc: James Morris <jmorris@namei.org>
    Cc: "Serge E. Hallyn" <serge@hallyn.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit afdbbc9a27477c8c34c0518e924be287aca93614
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Fri Nov 23 16:56:26 2018 -0500

    media: DaVinci-VPBE: fix error handling in vpbe_initialize()
    
    [ Upstream commit aa35dc3c71950e3fec3e230c06c27c0fbd0067f8 ]
    
    If vpbe_set_default_output() or vpbe_set_default_mode() fails,
    vpbe_initialize() returns error code without releasing resources.
    
    The patch adds error handling for that case.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42584b2b8051373772b6dcacc5231922bf541e5e
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Wed Nov 28 23:20:11 2018 +0100

    x86/fpu: Add might_fault() to user_insn()
    
    [ Upstream commit 6637401c35b2f327a35d27f44bda05e327f2f017 ]
    
    Every user of user_insn() passes an user memory pointer to this macro.
    
    Add might_fault() to user_insn() so we can spot users which are using
    this macro in sections where page faulting is not allowed.
    
     [ bp: Space it out to make it more visible. ]
    
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Rik van Riel <riel@surriel.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: "Jason A. Donenfeld" <Jason@zx2c4.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jann Horn <jannh@google.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: kvm ML <kvm@vger.kernel.org>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20181128222035.2996-6-bigeasy@linutronix.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1b10aea0e3729253a87363eb27bb34b2a98b7f0
Author: Lubomir Rintel <lkundrak@v3.sk>
Date:   Wed Nov 28 18:53:10 2018 +0100

    ARM: dts: mmp2: fix TWSI2
    
    [ Upstream commit 1147e05ac9fc2ef86a3691e7ca5c2db7602d81dd ]
    
    Marvell keeps their MMP2 datasheet secret, but there are good clues
    that TWSI2 is not on 0xd4025000 on that platform, not does it use
    IRQ 58. In fact, the IRQ 58 on MMP2 seems to be a signal processor:
    
       arch/arm/mach-mmp/irqs.h:#define IRQ_MMP2_MSP  58
    
    I'm taking a somewhat educated guess that is probably a copy & paste
    error from PXA168 or PXA910 and that the real controller in fact hides
    at address 0xd4031000 and uses an interrupt line multiplexed via IRQ 17.
    
    I'm also copying some properties from TWSI1 that were missing or
    incorrect.
    
    Tested on a OLPC XO 1.75 machine, where the RTC is on TWSI2.
    
    Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
    Tested-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5623da06565dca03de8037b084b0854ec7795581
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Thu Nov 15 22:42:01 2018 +0000

    arm64: ftrace: don't adjust the LR value
    
    [ Upstream commit 6e803e2e6e367db9a0d6ecae1bd24bb5752011bd ]
    
    The core ftrace code requires that when it is handed the PC of an
    instrumented function, this PC is the address of the instrumented
    instruction. This is necessary so that the core ftrace code can identify
    the specific instrumentation site. Since the instrumented function will
    be a BL, the address of the instrumented function is LR - 4 at entry to
    the ftrace code.
    
    This fixup is applied in the mcount_get_pc and mcount_get_pc0 helpers,
    which acquire the PC of the instrumented function.
    
    The mcount_get_lr helper is used to acquire the LR of the instrumented
    function, whose value does not require this adjustment, and cannot be
    adjusted to anything meaningful. No adjustment of this value is made on
    other architectures, including arm. However, arm64 adjusts this value by
    4.
    
    This patch brings arm64 in line with other architectures and removes the
    adjustment of the LR value.
    
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Cc: AKASHI Takahiro <takahiro.akashi@linaro.org>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Torsten Duwe <duwe@suse.de>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1773543ea9bac92670a2e84ced14839c8f8a8399
Author: Arend van Spriel <arend.vanspriel@broadcom.com>
Date:   Thu Nov 29 18:12:27 2018 +0100

    firmware/efi: Add NULL pointer checks in efivars API functions
    
    [ Upstream commit ab2180a15ce54739fed381efb4cb12e78dfb1561 ]
    
    Since commit:
    
       ce2e6db554fa ("brcmfmac: Add support for getting nvram contents from EFI variables")
    
    we have a device driver accessing the efivars API. Several functions in
    the efivars API assume __efivars is set, i.e., that they will be accessed
    only after efivars_register() has been called. However, the following NULL
    pointer access was reported calling efivar_entry_size() from the brcmfmac
    device driver:
    
      Unable to handle kernel NULL pointer dereference at virtual address 00000008
      pgd = 60bfa5f1
      [00000008] *pgd=00000000
      Internal error: Oops: 5 [#1] SMP ARM
      ...
      Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
      Workqueue: events request_firmware_work_func
      PC is at efivar_entry_size+0x28/0x90
      LR is at brcmf_fw_complete_request+0x3f8/0x8d4 [brcmfmac]
      pc : [<c0c40718>]    lr : [<bf2a3ef4>]    psr: a00d0113
      sp : ede7fe28  ip : ee983410  fp : c1787f30
      r10: 00000000  r9 : 00000000  r8 : bf2b2258
      r7 : ee983000  r6 : c1604c48  r5 : ede7fe88  r4 : edf337c0
      r3 : 00000000  r2 : 00000000  r1 : ede7fe88  r0 : c17712c8
      Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
      Control: 10c5387d  Table: ad16804a  DAC: 00000051
    
    Disassembly showed that the local static variable __efivars is NULL,
    which is not entirely unexpected given that it is a non-EFI platform.
    
    So add a NULL pointer check to efivar_entry_size(), and to related
    functions while at it. In efivars_register() a couple of sanity checks
    are added as well.
    
    Reported-by: Jon Hunter <jonathanh@nvidia.com>
    Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Bhupesh Sharma <bhsharma@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Eric Snowberg <eric.snowberg@oracle.com>
    Cc: Hans de Goede <hdegoede@redhat.com>
    Cc: Joe Perches <joe@perches.com>
    Cc: Julien Thierry <julien.thierry@arm.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Matt Fleming <matt@codeblueprint.co.uk>
    Cc: Nathan Chancellor <natechancellor@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>
    Cc: Sedat Dilek <sedat.dilek@gmail.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: YiFei Zhu <zhuyifei1999@gmail.com>
    Cc: linux-efi@vger.kernel.org
    Link: http://lkml.kernel.org/r/20181129171230.18699-9-ard.biesheuvel@linaro.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a61cdb8ebcee13ec0ce1c9ea4e274a2d44a3bdf2
Author: Wei Wang <wvw@google.com>
Date:   Wed Nov 7 14:36:11 2018 -0800

    Thermal: do not clear passive state during system sleep
    
    [ Upstream commit 964f4843a455d2ffb199512b08be8d5f077c4cac ]
    
    commit ff140fea847e ("Thermal: handle thermal zone device properly
    during system sleep") added PM hook to call thermal zone reset during
    sleep. However resetting thermal zone will also clear the passive state
    and thus cancel the polling queue which leads the passive cooling device
    state not being cleared properly after sleep.
    
    thermal_pm_notify => thermal_zone_device_reset set passive to 0
    thermal_zone_trip_update will skip update passive as `old_target ==
    instance->target'.
    monitor_thermal_zone => thermal_zone_device_set_polling will cancel
    tz->poll_queue, so the cooling device state will not be changed
    afterwards.
    
    Reported-by: Kame Wang <kamewang@google.com>
    Signed-off-by: Wei Wang <wvw@google.com>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60846115bbedc018f66dbdee61f5880c96ca15ad
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Tue Nov 27 15:54:17 2018 -0500

    nfsd4: fix crash on writing v4_end_grace before nfsd startup
    
    [ Upstream commit 62a063b8e7d1db684db3f207261a466fa3194e72 ]
    
    Anatoly Trosinenko reports that this:
    
    1) Checkout fresh master Linux branch (tested with commit e195ca6cb)
    2) Copy x84_64-config-4.14 to .config, then enable NFS server v4 and build
    3) From `kvm-xfstests shell`:
    
    results in NULL dereference in locks_end_grace.
    
    Check that nfsd has been started before trying to end the grace period.
    
    Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fa24ad75cfafdc4bdf4f947d25b1af438e70f1c6
Author: Yangtao Li <tiny.windzz@gmail.com>
Date:   Sat Nov 24 09:52:23 2018 -0500

    soc: bcm: brcmstb: Don't leak device tree node reference
    
    [ Upstream commit 1861a7f07e02292830a1ca256328d370deefea30 ]
    
    of_find_node_by_path() acquires a reference to the node returned by it
    and that reference needs to be dropped by its caller. soc_is_brcmstb()
    doesn't do that, so fix it.
    
    [treding: slightly rewrite to avoid inline comparison]
    
    Fixes: d52fad262041 ("soc: add stubs for brcmstb SoC's")
    Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a1ef7d5da9b2c145f811a80bb8197df6037a7572
Author: Young Xiao <YangX92@hotmail.com>
Date:   Wed Nov 28 12:36:39 2018 +0000

    sunvdc: Do not spin in an infinite loop when vio_ldc_send() returns EAGAIN
    
    [ Upstream commit a11f6ca9aef989b56cd31ff4ee2af4fb31a172ec ]
    
    __vdc_tx_trigger should only loop on EAGAIN a finite
    number of times.
    
    See commit adddc32d6fde ("sunvnet: Do not spin in an
    infinite loop when vio_ldc_send() returns EAGAIN") for detail.
    
    Signed-off-by: Young Xiao <YangX92@hotmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5415d1a3dcb621ee8740a5e26ad3393fc395c789
Author: Tiezhu Yang <kernelpatch@126.com>
Date:   Wed Nov 21 07:21:38 2018 +0800

    f2fs: fix wrong return value of f2fs_acl_create
    
    [ Upstream commit f6176473a0c7472380eef72ebeb330cf9485bf0a ]
    
    When call f2fs_acl_create_masq() failed, the caller f2fs_acl_create()
    should return -EIO instead of -ENOMEM, this patch makes it consistent
    with posix_acl_create() which has been fixed in commit beaf226b863a
    ("posix_acl: don't ignore return value of posix_acl_create_masq()").
    
    Fixes: 83dfe53c185e ("f2fs: fix reference leaks in f2fs_acl_create")
    Signed-off-by: Tiezhu Yang <kernelpatch@126.com>
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6b4eec8a3512dc488b84672a58edbf737d07db1b
Author: Yunlei He <heyunlei@huawei.com>
Date:   Tue Nov 6 10:25:29 2018 +0800

    f2fs: move dir data flush to write checkpoint process
    
    [ Upstream commit b61ac5b720146c619c7cdf17eff2551b934399e5 ]
    
    This patch move dir data flush to write checkpoint process, by
    doing this, it may reduce some time for dir fsync.
    
    pre:
            -f2fs_do_sync_file enter
                    -file_write_and_wait_range  <- flush & wait
                    -write_checkpoint
                            -do_checkpoint      <- wait all
            -f2fs_do_sync_file exit
    
    now:
            -f2fs_do_sync_file enter
                    -write_checkpoint
                            -block_operations   <- flush dir & no wait
                            -do_checkpoint      <- wait all
            -f2fs_do_sync_file exit
    
    Signed-off-by: Yunlei He <heyunlei@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ac71285b663ccbd15d51e3c3a78068aa0eb82eae
Author: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Date:   Thu Nov 8 04:51:51 2018 -0500

    media: adv*/tc358743/ths8200: fill in min width/height/pixelclock
    
    [ Upstream commit 2912289a518077ddb8214e05336700148e97e235 ]
    
    The v4l2_dv_timings_cap struct is used to do sanity checks when setting and
    enumerating DV timings, ensuring that only valid timings as per the HW
    capabilities are allowed.
    
    However, many drivers just filled in 0 for the minimum width, height or
    pixelclock frequency. This can cause timings with e.g. 0 as width and height
    to be accepted, which will in turn lead to a potential division by zero.
    
    Fill in proper values are minimum boundaries. 640x350 was chosen since it is
    the smallest resolution in v4l2-dv-timings.h. Same for 13 MHz as the lowest
    pixelclock frequency (it's slightly below the minimum of 13.5 MHz in the
    v4l2-dv-timings.h header).
    
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b3476f29d0d76850d89158194dbb1a1b38ce0b79
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Nov 20 12:10:14 2018 +0100

    iio: accel: kxcjk1013: Add KIOX010A ACPI Hardware-ID
    
    [ Upstream commit 7f6232e69539971cf9eaed07a6c14ab4a2361133 ]
    
    Various 2-in-1's use KIOX010A and KIOX020A as HIDs for 2 KXCJ91008
    accelerometers. The KIOX010A HID is for the one in the base and the
    KIOX020A for the accelerometer in the keyboard.
    
    Since userspace does not have a way yet to deal with (or ignore) the
    accelerometer in the keyboard, this commit just adds the KIOX010A HID
    for now so that display rotation will work.
    
    Related: https://github.com/hadess/iio-sensor-proxy/issues/166
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6f76b5a8f7e1c875001625513680b721efde1673
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Thu Oct 25 11:05:25 2018 -0700

    dmaengine: xilinx_dma: Remove __aligned attribute on zynqmp_dma_desc_ll
    
    [ Upstream commit aeaebcc17cdf37065d2693865eeb1ff1c7dc5bf3 ]
    
    Clang warns:
    
    drivers/dma/xilinx/zynqmp_dma.c:166:4: warning: attribute 'aligned' is
    ignored, place it after "struct" to apply attribute to type declaration
    [-Wignored-attributes]
    }; __aligned(64)
       ^
    ./include/linux/compiler_types.h:200:38: note: expanded from macro
    '__aligned'
                                                   ^
    1 warning generated.
    
    As Nick pointed out in the previous version of this patch, the author
    likely intended for this struct to be 8-byte (64-bit) aligned, not
    64-byte, which is the default. Remove the hanging __aligned attribute.
    
    Fixes: b0cc417c1637 ("dmaengine: Add Xilinx zynqmp dma engine driver support")
    Reported-by: Nick Desaulniers <ndesaulniers@google.com>
    Suggested-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 426a61bfe4360f74d1fc6a14c94c3cda0dc987d1
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Sat Oct 20 13:50:19 2018 -0400

    media: mtk-vcodec: Release device nodes in mtk_vcodec_init_enc_pm()
    
    [ Upstream commit 8ea0f2ba0fa3f91ea1b8d823a54b042026ada6b3 ]
    
    of_parse_phandle() returns the device node with refcount incremented.
    There are two nodes that are used temporary in mtk_vcodec_init_enc_pm(),
    but their refcounts are not decremented.
    
    The patch adds one of_node_put() and fixes returning error codes.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 05461ec758b9c4b4ee56517b05cd7392daca494b
Author: Yangtao Li <tiny.windzz@gmail.com>
Date:   Wed Nov 21 07:49:12 2018 -0500

    soc/tegra: Don't leak device tree node reference
    
    [ Upstream commit 9eb40fa2cd2d1f6829e7b49bb22692f754b9cfe0 ]
    
    of_find_node_by_path() acquires a reference to the node returned by it
    and that reference needs to be dropped by its caller. soc_is_tegra()
    doesn't do that, so fix it.
    
    Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
    Acked-by: Jon Hunter <jonathanh@nvidia.com>
    [treding: slightly rewrite to avoid inline comparison]
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1e3981011876dd36d09ab8e81a87f725529b14d8
Author: Pu Wen <puwen@hygon.cn>
Date:   Mon Nov 12 15:40:51 2018 +0800

    perf tools: Add Hygon Dhyana support
    
    [ Upstream commit 4787eff3fa88f62fede6ed7afa06477ae6bf984d ]
    
    The tool perf is useful for the performance analysis on the Hygon Dhyana
    platform. But right now there is no Hygon support for it to analyze the
    KVM guest os data. So add Hygon Dhyana support to it by checking vendor
    string to share the code path of AMD.
    
    Signed-off-by: Pu Wen <puwen@hygon.cn>
    Acked-by: Borislav Petkov <bp@suse.de>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1542008451-31735-1-git-send-email-puwen@hygon.cn
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ab70d98b39f2f8e222a1e67c8447d09c48c9b8b0
Author: Sami Tolvanen <samitolvanen@google.com>
Date:   Tue Oct 23 15:15:35 2018 -0700

    modpost: validate symbol names also in find_elf_symbol
    
    [ Upstream commit 5818c683a619c534c113e1f66d24f636defc29bc ]
    
    If an ARM mapping symbol shares an address with a valid symbol,
    find_elf_symbol can currently return the mapping symbol instead, as the
    symbol is not validated. This can result in confusing warnings:
    
      WARNING: vmlinux.o(.text+0x18f4028): Section mismatch in reference
      from the function set_reset_devices() to the variable .init.text:$x.0
    
    This change adds a call to is_valid_name to find_elf_symbol, similarly
    to how it's already used in find_elf_symbol2.
    
    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4f42f234ad1f78f8b2cec2a2c1560df8789d2492
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Wed Oct 17 17:52:07 2018 -0700

    ARM: OMAP2+: hwmod: Fix some section annotations
    
    [ Upstream commit c10b26abeb53cabc1e6271a167d3f3d396ce0218 ]
    
    When building the kernel with Clang, the following section mismatch
    warnings appears:
    
    WARNING: vmlinux.o(.text+0x2d398): Section mismatch in reference from
    the function _setup() to the function .init.text:_setup_iclk_autoidle()
    The function _setup() references
    the function __init _setup_iclk_autoidle().
    This is often because _setup lacks a __init
    annotation or the annotation of _setup_iclk_autoidle is wrong.
    
    WARNING: vmlinux.o(.text+0x2d3a0): Section mismatch in reference from
    the function _setup() to the function .init.text:_setup_reset()
    The function _setup() references
    the function __init _setup_reset().
    This is often because _setup lacks a __init
    annotation or the annotation of _setup_reset is wrong.
    
    WARNING: vmlinux.o(.text+0x2d408): Section mismatch in reference from
    the function _setup() to the function .init.text:_setup_postsetup()
    The function _setup() references
    the function __init _setup_postsetup().
    This is often because _setup lacks a __init
    annotation or the annotation of _setup_postsetup is wrong.
    
    _setup is used in omap_hwmod_allocate_module, which isn't marked __init
    and looks like it shouldn't be, meaning to fix these warnings, those
    functions must be moved out of the init section, which this patch does.
    
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d755ae852b97dd5e7f29d9f685a74e4948cb18e6
Author: Renato Lui Geh <renatogeh@gmail.com>
Date:   Mon Nov 5 17:14:58 2018 -0200

    staging: iio: ad7780: update voltage on read
    
    [ Upstream commit 336650c785b62c3bea7c8cf6061c933a90241f67 ]
    
    The ad7780 driver previously did not read the correct device output, as
    it read an outdated value set at initialization. It now updates its
    voltage on read.
    
    Signed-off-by: Renato Lui Geh <renatogeh@gmail.com>
    Acked-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8a9cf43e72a5b8b3721657a8601aaefaac14287a
Author: Matheus Tavares <matheus.bernardino@usp.br>
Date:   Sat Nov 3 19:49:44 2018 -0300

    staging:iio:ad2s90: Make probe handle spi_setup failure
    
    [ Upstream commit b3a3eafeef769c6982e15f83631dcbf8d1794efb ]
    
    Previously, ad2s90_probe ignored the return code from spi_setup, not
    handling its possible failure. This patch makes ad2s90_probe check if
    the code is an error code and, if so, do the following:
    
    - Call dev_err with an appropriate error message.
    - Return the spi_setup's error code.
    
    Note: The 'return ret' statement could be out of the 'if' block, but
    this whole block will be moved up in the function in the patch:
    'staging:iio:ad2s90: Move device registration to the end of probe'.
    
    Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dd57ad3e75034499bd862cbe76fe444397ac0a36
Author: Miroslav Lichvar <mlichvar@redhat.com>
Date:   Fri Nov 9 11:14:43 2018 +0100

    ptp: check gettime64 return code in PTP_SYS_OFFSET ioctl
    
    [ Upstream commit 83d0bdc7390b890905634186baaa294475cd6a06 ]
    
    If a gettime64 call fails, return the error and avoid copying data back
    to user.
    
    Cc: Richard Cochran <richardcochran@gmail.com>
    Cc: Jacob Keller <jacob.e.keller@intel.com>
    Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 15750c190432d5a61a3ae7bd91f807cc38d985cc
Author: Andy Duan <fugang.duan@nxp.com>
Date:   Tue Oct 16 07:32:22 2018 +0000

    serial: fsl_lpuart: clear parity enable bit when disable parity
    
    [ Upstream commit 397bd9211fe014b347ca8f95a8f4e1017bac1aeb ]
    
    Current driver only enable parity enable bit and never clear it
    when user set the termios. The fix clear the parity enable bit when
    PARENB flag is not set in termios->c_cflag.
    
    Cc: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Andy Duan <fugang.duan@nxp.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c9e666af54729a767e0ad010c1bcaf63aba52566
Author: Boris Brezillon <boris.brezillon@bootlin.com>
Date:   Fri Nov 9 11:26:32 2018 +0100

    drm/vc4: ->x_scaling[1] should never be set to VC4_SCALING_NONE
    
    [ Upstream commit 0560054da5673b25d56bea6c57c8d069673af73b ]
    
    For the YUV conversion to work properly, ->x_scaling[1] should never
    be set to VC4_SCALING_NONE, but vc4_get_scaling_mode() might return
    VC4_SCALING_NONE if the horizontal scaling ratio exactly matches the
    horizontal subsampling factor. Add a test to turn VC4_SCALING_NONE
    into VC4_SCALING_PPF when that happens.
    
    The old ->x_scaling[0] adjustment is dropped as I couldn't find any
    mention to this constraint in the spec and it's proven to be
    unnecessary (I tested various multi-planar YUV formats with scaling
    disabled, and all of them worked fine without this adjustment).
    
    Fixes: fc04023fafec ("drm/vc4: Add support for YUV planes.")
    Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20181109102633.32603-1-boris.brezillon@bootlin.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c3777e6bb05a6d7f3c73868cae8705caf05cd521
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Thu Oct 4 20:27:16 2018 -0700

    powerpc/pseries: add of_node_put() in dlpar_detach_node()
    
    [ Upstream commit 5b3f5c408d8cc59b87e47f1ab9803dbd006e4a91 ]
    
    The previous commit, "of: overlay: add missing of_node_get() in
    __of_attach_node_sysfs" added a missing of_node_get() to
    __of_attach_node_sysfs().  This results in a refcount imbalance
    for nodes attached with dlpar_attach_node().  The calling sequence
    from dlpar_attach_node() to __of_attach_node_sysfs() is:
    
       dlpar_attach_node()
          of_attach_node()
             __of_attach_node_sysfs()
    
    For more detailed description of the node refcount, see
    commit 68baf692c435 ("powerpc/pseries: Fix of_node_put() underflow
    during DLPAR remove").
    
    Tested-by: Alan Tull <atull@kernel.org>
    Acked-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf974855c5c931128d36d9023ca4ad9fe2af303d
Author: Colin Ian King <colin.king@canonical.com>
Date:   Thu Oct 25 14:52:31 2018 +0100

    x86/PCI: Fix Broadcom CNB20LE unintended sign extension (redux)
    
    [ Upstream commit 53bb565fc5439f2c8c57a786feea5946804aa3e9 ]
    
    In the expression "word1 << 16", word1 starts as u16, but is promoted to a
    signed int, then sign-extended to resource_size_t, which is probably not
    what was intended.  Cast to resource_size_t to avoid the sign extension.
    
    This fixes an identical issue as fixed by commit 0b2d70764bb3 ("x86/PCI:
    Fix Broadcom CNB20LE unintended sign extension") back in 2014.
    
    Detected by CoverityScan, CID#138749, 138750 ("Unintended sign extension")
    
    Fixes: 3f6ea84a3035 ("PCI: read memory ranges out of Broadcom CNB20LE host bridge")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 035801540c962a393e5f54d876f58800861e76fb
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Thu Nov 8 14:04:50 2018 -0500

    dlm: Don't swamp the CPU with callbacks queued during recovery
    
    [ Upstream commit 216f0efd19b9cc32207934fd1b87a45f2c4c593e ]
    
    Before this patch, recovery would cause all callbacks to be delayed,
    put on a queue, and afterward they were all queued to the callback
    work queue. This patch does the same thing, but occasionally takes
    a break after 25 of them so it won't swamp the CPU at the expense
    of other RT processes like corosync.
    
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13198d8023f763095fbd174976959e6885fe76c2
Author: Yufen Wang <wangyufen@huawei.com>
Date:   Fri Nov 2 11:51:31 2018 +0100

    ARM: 8808/1: kexec:offline panic_smp_self_stop CPU
    
    [ Upstream commit 82c08c3e7f171aa7f579b231d0abbc1d62e91974 ]
    
    In case panic() and panic() called at the same time on different CPUS.
    For example:
    CPU 0:
      panic()
         __crash_kexec
           machine_crash_shutdown
             crash_smp_send_stop
           machine_kexec
             BUG_ON(num_online_cpus() > 1);
    
    CPU 1:
      panic()
        local_irq_disable
        panic_smp_self_stop
    
    If CPU 1 calls panic_smp_self_stop() before crash_smp_send_stop(), kdump
    fails. CPU1 can't receive the ipi irq, CPU1 will be always online.
    To fix this problem, this patch split out the panic_smp_self_stop()
    and add set_cpu_online(smp_processor_id(), false).
    
    Signed-off-by: Yufen Wang <wangyufen@huawei.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 778508831ab7d14d985df1f0904a97ed01a55275
Author: James Smart <jsmart2021@gmail.com>
Date:   Tue Oct 23 13:41:07 2018 -0700

    scsi: lpfc: Correct LCB RJT handling
    
    [ Upstream commit b114d9009d386276bfc3352289fc235781ae3353 ]
    
    When LCB's are rejected, if beaconing was already in progress, the
    Reason Code Explanation was not being set. Should have been set to
    command in progress.
    
    Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ab6b5cd8768845217ab3879e08c7c9a52877a89
Author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Date:   Fri Nov 2 21:49:55 2018 +0100

    ath9k: dynack: use authentication messages for 'late' ack
    
    [ Upstream commit 3831a2a0010c72e3956020cbf1057a1701a2e469 ]
    
    In order to properly support dynack in ad-hoc mode running
    wpa_supplicant, take into account authentication frames for
    'late ack' detection. This patch has been tested on devices
    mounted on offshore high-voltage stations connected through
    ~24Km link
    
    Reported-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
    Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
    Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eef25b07bad1ed9bace5790c8f7a1e568778796a
Author: Steve Longerbeam <slongerbeam@gmail.com>
Date:   Wed Sep 19 16:07:18 2018 -0700

    gpu: ipu-v3: image-convert: Prevent race between run and unprepare
    
    [ Upstream commit 819bec35c8c9706185498c9222bd244e0781ad35 ]
    
    Prevent possible race by parallel threads between ipu_image_convert_run()
    and ipu_image_convert_unprepare(). This involves setting ctx->aborting
    to true unconditionally so that no new job runs can be queued during
    unprepare, and holding the ctx->aborting flag until the context is freed.
    
    Note that the "normal" ipu_image_convert_abort() case (e.g. not during
    context unprepare) should clear the ctx->aborting flag after aborting
    any active run and clearing the context's pending queue. This is because
    it should be possible to continue to use the conversion context and queue
    more runs after an abort.
    
    Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
    Tested-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8c25e7a4ed6fa51b597572f464adf415bf88802c
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Sat Nov 3 22:21:22 2018 +0100

    ASoC: Intel: mrfld: fix uninitialized variable access
    
    [ Upstream commit 1539c7f23f256120f89f8b9ec53160790bce9ed2 ]
    
    Randconfig testing revealed a very old bug, with gcc-8:
    
    sound/soc/intel/atom/sst/sst_loader.c: In function 'sst_load_fw':
    sound/soc/intel/atom/sst/sst_loader.c:357:5: error: 'fw' may be used uninitialized in this function [-Werror=maybe-uninitialized]
      if (fw == NULL) {
         ^
    sound/soc/intel/atom/sst/sst_loader.c:354:25: note: 'fw' was declared here
      const struct firmware *fw;
    
    We must check the return code of request_firmware() before we look at the
    pointer result that may be uninitialized when the function fails.
    
    Fixes: 9012c9544eea ("ASoC: Intel: mrfld - Add DSP load and management")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e31bc4df038b8b3ce07b2039ec7db64b97a925a3
Author: Slawomir Stepien <sst@poczta.fm>
Date:   Sat Oct 20 23:04:11 2018 +0200

    staging: iio: adc: ad7280a: handle error from __ad7280_read32()
    
    [ Upstream commit 0559ef7fde67bc6c83c6eb6329dbd6649528263e ]
    
    Inside __ad7280_read32(), the spi_sync_transfer() can fail with negative
    error code. This change will ensure that this error is being passed up
    in the call stack, so it can be handled.
    
    Signed-off-by: Slawomir Stepien <sst@poczta.fm>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b3e959d46e37597fd2b9c68e3133a5b49d6da6c
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Tue Oct 16 11:55:49 2018 +0200

    drm/bufs: Fix Spectre v1 vulnerability
    
    [ Upstream commit a37805098900a6e73a55b3a43b7d3bcd987bb3f4 ]
    
    idx can be indirectly controlled by user-space, hence leading to a
    potential exploitation of the Spectre variant 1 vulnerability.
    
    This issue was detected with the help of Smatch:
    
    drivers/gpu/drm/drm_bufs.c:1420 drm_legacy_freebufs() warn: potential
    spectre issue 'dma->buflist' [r] (local cap)
    
    Fix this by sanitizing idx before using it to index dma->buflist
    
    Notice that given that speculation windows are large, the policy is
    to kill the speculation on the first load and not worry if it can be
    completed with a dependent load/store [1].
    
    [1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
    
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20181016095549.GA23586@embeddedor.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>