commit 4c5bf01e16a7ec59e59a38a61f793c5d1d5560c7
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Dec 31 12:38:09 2019 +0100

    Linux 4.14.161

commit c2816fc40d0c6b1cfce7dffe09571ac4efc7c0d8
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Thu Oct 24 18:12:54 2019 +0900

    perf probe: Fix to show function entry line as probe-able
    
    commit 91e2f539eeda26ab00bd03fae8dc434c128c85ed upstream.
    
    Fix die_walk_lines() to list the function entry line correctly.  Since
    the dwarf_entrypc() does not return the entry pc if the DIE has only
    range attribute, __die_walk_funclines() fails to list the declaration
    line (entry line) in that case.
    
    To solve this issue, this introduces die_entrypc() which correctly
    returns the entry PC (the first address range) even if the DIE has only
    range attribute. With this fix die_walk_lines() shows the function entry
    line is able to probe correctly.
    
    Fixes: 4cc9cec636e7 ("perf probe: Introduce lines walker interface")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157190837419.1859.4619125803596816752.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Thomas Backlund <tmb@mageia.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1db913b044f0a0693d8ee283d26b81d536efcd5
Author: Mike Christie <mchristi@redhat.com>
Date:   Sun Dec 8 16:51:50 2019 -0600

    nbd: fix shutdown and recv work deadlock v2
    
    commit 1c05839aa973cfae8c3db964a21f9c0eef8fcc21 upstream.
    
    This fixes a regression added with:
    
    commit e9e006f5fcf2bab59149cb38a48a4817c1b538b4
    Author: Mike Christie <mchristi@redhat.com>
    Date:   Sun Aug 4 14:10:06 2019 -0500
    
        nbd: fix max number of supported devs
    
    where we can deadlock during device shutdown. The problem occurs if
    the recv_work's nbd_config_put occurs after nbd_start_device_ioctl has
    returned and the userspace app has droppped its reference via closing
    the device and running nbd_release. The recv_work nbd_config_put call
    would then drop the refcount to zero and try to destroy the config which
    would try to do destroy_workqueue from the recv work.
    
    This patch just has nbd_start_device_ioctl do a flush_workqueue when it
    wakes so we know after the ioctl returns running works have exited. This
    also fixes a possible race where we could try to reuse the device while
    old recv_works are still running.
    
    Cc: stable@vger.kernel.org
    Fixes: e9e006f5fcf2 ("nbd: fix max number of supported devs")
    Signed-off-by: Mike Christie <mchristi@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a07ace7375231e6eb79667a2784c0bf023f87da
Author: Yangbo Lu <yangbo.lu@nxp.com>
Date:   Mon Dec 16 11:18:42 2019 +0800

    mmc: sdhci-of-esdhc: fix P2020 errata handling
    
    commit fe0acab448f68c3146235afe03fb932e242ec94c upstream.
    
    Two previous patches introduced below quirks for P2020 platforms.
    - SDHCI_QUIRK_RESET_AFTER_REQUEST
    - SDHCI_QUIRK_BROKEN_TIMEOUT_VAL
    
    The patches made a mistake to add them in quirks2 of sdhci_host
    structure, while they were defined for quirks.
            host->quirks2 |= SDHCI_QUIRK_RESET_AFTER_REQUEST;
            host->quirks2 |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
    
    This patch is to fix them.
            host->quirks |= SDHCI_QUIRK_RESET_AFTER_REQUEST;
            host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
    
    Fixes: 05cb6b2a66fa ("mmc: sdhci-of-esdhc: add erratum eSDHC-A001 and A-008358 support")
    Fixes: a46e42712596 ("mmc: sdhci-of-esdhc: add erratum eSDHC5 support")
    Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20191216031842.40068-1-yangbo.lu@nxp.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 041ea215a9a056f86d4cd71d542ac73ab02451fd
Author: Faiz Abbas <faiz_abbas@ti.com>
Date:   Fri Dec 6 17:13:26 2019 +0530

    mmc: sdhci: Update the tuning failed messages to pr_debug level
    
    commit 2c92dd20304f505b6ef43d206fff21bda8f1f0ae upstream.
    
    Tuning support in DDR50 speed mode was added in SD Specifications Part1
    Physical Layer Specification v3.01. Its not possible to distinguish
    between v3.00 and v3.01 from the SCR and that is why since
    commit 4324f6de6d2e ("mmc: core: enable CMD19 tuning for DDR50 mode")
    tuning failures are ignored in DDR50 speed mode.
    
    Cards compatible with v3.00 don't respond to CMD19 in DDR50 and this
    error gets printed during enumeration and also if retune is triggered at
    any time during operation. Update the printk level to pr_debug so that
    these errors don't lead to false error reports.
    
    Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
    Cc: stable@vger.kernel.org # v4.4+
    Link: https://lore.kernel.org/r/20191206114326.15856-1-faiz_abbas@ti.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5dc1cb73d0b180d65822cec79a2ea079c22f3b03
Author: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Date:   Wed Dec 4 09:54:46 2019 +0100

    mmc: sdhci-of-esdhc: Revert "mmc: sdhci-of-esdhc: add erratum A-009204 support"
    
    commit 8b6dc6b2d60221e90703babbc141f063b8a07e72 upstream.
    
    This reverts commit 5dd195522562542bc6ebe6e7bd47890d8b7ca93c.
    
    First, the fix seems to be plain wrong, since the erratum suggests
    waiting 5ms before setting setting SYSCTL[RSTD], but this msleep()
    happens after the call of sdhci_reset() which is where that bit gets
    set (if SDHCI_RESET_DATA is in mask).
    
    Second, walking the whole device tree to figure out if some node has a
    "fsl,p2020-esdhc" compatible string is hugely expensive - about 70 to
    100 us on our mpc8309 board. Walking the device tree is done under a
    raw_spin_lock, so this is obviously really bad on an -rt system, and a
    waste of time on all.
    
    In fact, since esdhc_reset() seems to get called around 100 times per
    second, that mpc8309 now spends 0.8% of its time determining that
    it is not a p2020. Whether those 100 calls/s are normal or due to some
    other bug or misconfiguration, regularly hitting a 100 us
    non-preemptible window is unacceptable.
    
    Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20191204085447.27491-1-linux@rasmusvillemoes.dk
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99b07543313d0bbde1895efa4d32ba8b06806c5c
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Mon Dec 9 06:19:08 2019 +0000

    powerpc/irq: fix stack overflow verification
    
    commit 099bc4812f09155da77eeb960a983470249c9ce1 upstream.
    
    Before commit 0366a1c70b89 ("powerpc/irq: Run softirqs off the top of
    the irq stack"), check_stack_overflow() was called by do_IRQ(), before
    switching to the irq stack.
    In that commit, do_IRQ() was renamed __do_irq(), and is now executing
    on the irq stack, so check_stack_overflow() has just become almost
    useless.
    
    Move check_stack_overflow() call in do_IRQ() to do the check while
    still on the current stack.
    
    Fixes: 0366a1c70b89 ("powerpc/irq: Run softirqs off the top of the irq stack")
    Cc: stable@vger.kernel.org
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/e033aa8116ab12b7ca9a9c75189ad0741e3b9b5f.1575872340.git.christophe.leroy@c-s.fr
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eade3196196fc8e2ae1c2dd1aff41f621c26b5f7
Author: Yazen Ghannam <yazen.ghannam@amd.com>
Date:   Thu Nov 21 08:15:08 2019 -0600

    x86/MCE/AMD: Allow Reserved types to be overwritten in smca_banks[]
    
    commit 966af20929ac24360ba3fac5533eb2ab003747da upstream.
    
    Each logical CPU in Scalable MCA systems controls a unique set of MCA
    banks in the system. These banks are not shared between CPUs. The bank
    types and ordering will be the same across CPUs on currently available
    systems.
    
    However, some CPUs may see a bank as Reserved/Read-as-Zero (RAZ) while
    other CPUs do not. In this case, the bank seen as Reserved on one CPU is
    assumed to be the same type as the bank seen as a known type on another
    CPU.
    
    In general, this occurs when the hardware represented by the MCA bank
    is disabled, e.g. disabled memory controllers on certain models, etc.
    The MCA bank is disabled in the hardware, so there is no possibility of
    getting an MCA/MCE from it even if it is assumed to have a known type.
    
    For example:
    
    Full system:
            Bank  |  Type seen on CPU0  |  Type seen on CPU1
            ------------------------------------------------
             0    |         LS          |          LS
             1    |         UMC         |          UMC
             2    |         CS          |          CS
    
    System with hardware disabled:
            Bank  |  Type seen on CPU0  |  Type seen on CPU1
            ------------------------------------------------
             0    |         LS          |          LS
             1    |         UMC         |          RAZ
             2    |         CS          |          CS
    
    For this reason, there is a single, global struct smca_banks[] that is
    initialized at boot time. This array is initialized on each CPU as it
    comes online. However, the array will not be updated if an entry already
    exists.
    
    This works as expected when the first CPU (usually CPU0) has all
    possible MCA banks enabled. But if the first CPU has a subset, then it
    will save a "Reserved" type in smca_banks[]. Successive CPUs will then
    not be able to update smca_banks[] even if they encounter a known bank
    type.
    
    This may result in unexpected behavior. Depending on the system
    configuration, a user may observe issues enumerating the MCA
    thresholding sysfs interface. The issues may be as trivial as sysfs
    entries not being available, or as severe as system hangs.
    
    For example:
    
            Bank  |  Type seen on CPU0  |  Type seen on CPU1
            ------------------------------------------------
             0    |         LS          |          LS
             1    |         RAZ         |          UMC
             2    |         CS          |          CS
    
    Extend the smca_banks[] entry check to return if the entry is a
    non-reserved type. Otherwise, continue so that CPUs that encounter a
    known bank type can update smca_banks[].
    
    Fixes: 68627a697c19 ("x86/mce/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type")
    Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: <stable@vger.kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20191121141508.141273-1-Yazen.Ghannam@amd.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee1a3ec0aeb9109fae53d1662e8cb36bdd677425
Author: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Date:   Thu Oct 31 16:04:48 2019 +0300

    x86/MCE/AMD: Do not use rdmsr_safe_on_cpu() in smca_configure()
    
    commit 246ff09f89e54fdf740a8d496176c86743db3ec7 upstream.
    
    ... because interrupts are disabled that early and sending IPIs can
    deadlock:
    
      BUG: sleeping function called from invalid context at kernel/sched/completion.c:99
      in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 0, name: swapper/1
      no locks held by swapper/1/0.
      irq event stamp: 0
      hardirqs last  enabled at (0): [<0000000000000000>] 0x0
      hardirqs last disabled at (0): [<ffffffff8106dda9>] copy_process+0x8b9/0x1ca0
      softirqs last  enabled at (0): [<ffffffff8106dda9>] copy_process+0x8b9/0x1ca0
      softirqs last disabled at (0): [<0000000000000000>] 0x0
      Preemption disabled at:
      [<ffffffff8104703b>] start_secondary+0x3b/0x190
      CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.5.0-rc2+ #1
      Hardware name: GIGABYTE MZ01-CE1-00/MZ01-CE1-00, BIOS F02 08/29/2018
      Call Trace:
       dump_stack
       ___might_sleep.cold.92
       wait_for_completion
       ? generic_exec_single
       rdmsr_safe_on_cpu
       ? wrmsr_on_cpus
       mce_amd_feature_init
       mcheck_cpu_init
       identify_cpu
       identify_secondary_cpu
       smp_store_cpu_info
       start_secondary
       secondary_startup_64
    
    The function smca_configure() is called only on the current CPU anyway,
    therefore replace rdmsr_safe_on_cpu() with atomic rdmsr_safe() and avoid
    the IPI.
    
     [ bp: Update commit message. ]
    
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Yazen Ghannam <yazen.ghannam@amd.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: <stable@vger.kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/157252708836.3876.4604398213417262402.stgit@buzz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 397d99dabadebd5f82c8ae6eebb07ba8b145686b
Author: Will Deacon <will@kernel.org>
Date:   Thu Dec 12 09:40:49 2019 +0000

    KVM: arm64: Ensure 'params' is initialised when looking up sys register
    
    commit 1ce74e96c2407df2b5867e5d45a70aacb8923c14 upstream.
    
    Commit 4b927b94d5df ("KVM: arm/arm64: vgic: Introduce find_reg_by_id()")
    introduced 'find_reg_by_id()', which looks up a system register only if
    the 'id' index parameter identifies a valid system register. As part of
    the patch, existing callers of 'find_reg()' were ported over to the new
    interface, but this breaks 'index_to_sys_reg_desc()' in the case that the
    initial lookup in the vCPU target table fails because we will then call
    into 'find_reg()' for the system register table with an uninitialised
    'param' as the key to the lookup.
    
    GCC 10 is bright enough to spot this (amongst a tonne of false positives,
    but hey!):
    
      | arch/arm64/kvm/sys_regs.c: In function ‘index_to_sys_reg_desc.part.0.isra’:
      | arch/arm64/kvm/sys_regs.c:983:33: warning: ‘params.Op2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
      |   983 |   (u32)(x)->CRn, (u32)(x)->CRm, (u32)(x)->Op2);
      | [...]
    
    Revert the hunk of 4b927b94d5df which breaks 'index_to_sys_reg_desc()' so
    that the old behaviour of checking the index upfront is restored.
    
    Fixes: 4b927b94d5df ("KVM: arm/arm64: vgic: Introduce find_reg_by_id()")
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20191212094049.12437-1-will@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7cb3fd8293ebe313ebfa4fbf29445bff84623b6
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Dec 13 21:50:11 2019 +0300

    ext4: unlock on error in ext4_expand_extra_isize()
    
    commit 7f420d64a08c1dcd65b27be82a27cf2bdb2e7847 upstream.
    
    We need to unlock the xattr before returning on this error path.
    
    Cc: stable@kernel.org # 4.13
    Fixes: c03b45b853f5 ("ext4, project: expand inode extra size if possible")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/20191213185010.6k7yl2tck3wlsdkt@kili.mountain
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3c6b57dcb7b5e500a7e9e1078530ace567014eb
Author: Jan Kara <jack@suse.cz>
Date:   Mon Dec 2 18:02:13 2019 +0100

    ext4: check for directory entries too close to block end
    
    commit 109ba779d6cca2d519c5dd624a3276d03e21948e upstream.
    
    ext4_check_dir_entry() currently does not catch a case when a directory
    entry ends so close to the block end that the header of the next
    directory entry would not fit in the remaining space. This can lead to
    directory iteration code trying to access address beyond end of current
    buffer head leading to oops.
    
    CC: stable@vger.kernel.org
    Signed-off-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20191202170213.4761-3-jack@suse.cz
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11755d82e1adeb898976f3fb48ed6c8c67a9ed45
Author: Jan Kara <jack@suse.cz>
Date:   Mon Dec 2 18:02:12 2019 +0100

    ext4: fix ext4_empty_dir() for directories with holes
    
    commit 64d4ce892383b2ad6d782e080d25502f91bf2a38 upstream.
    
    Function ext4_empty_dir() doesn't correctly handle directories with
    holes and crashes on bh->b_data dereference when bh is NULL. Reorganize
    the loop to use 'offset' variable all the times instead of comparing
    pointers to current direntry with bh->b_data pointer. Also add more
    strict checking of '.' and '..' directory entries to avoid entering loop
    in possibly invalid state on corrupted filesystems.
    
    References: CVE-2019-19037
    CC: stable@vger.kernel.org
    Fixes: 4e19d6b65fb4 ("ext4: allow directory holes")
    Signed-off-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20191202170213.4761-2-jack@suse.cz
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c67a2906487c75e9415d9ea1c6ca622a9e63a769
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Mon Dec 16 11:08:23 2019 +0000

    staging: comedi: gsc_hpdi: check dma_alloc_coherent() return value
    
    commit ab42b48f32d4c766420c3499ee9c0289b7028182 upstream.
    
    The "auto-attach" handler function `gsc_hpdi_auto_attach()` calls
    `dma_alloc_coherent()` in a loop to allocate some DMA data buffers, and
    also calls it to allocate a buffer for a DMA descriptor chain.  However,
    it does not check the return value of any of these calls.  Change
    `gsc_hpdi_auto_attach()` to return `-ENOMEM` if any of these
    `dma_alloc_coherent()` calls fail.  This will result in the comedi core
    calling the "detach" handler `gsc_hpdi_detach()` as part of the
    clean-up, which will call `gsc_hpdi_free_dma()` to free any allocated
    DMA coherent memory buffers.
    
    Cc: <stable@vger.kernel.org> #4.6+
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Link: https://lore.kernel.org/r/20191216110823.216237-1-abbotti@mev.co.uk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6cc3ecc1ac2364cddd8bf44dcfdd6123dd63d14c
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Dec 17 20:06:04 2019 +0100

    platform/x86: hp-wmi: Make buffer for HPWMI_FEATURE2_QUERY 128 bytes
    
    commit 133b2acee3871ae6bf123b8fe34be14464aa3d2c upstream.
    
    At least on the HP Envy x360 15-cp0xxx model the WMI interface
    for HPWMI_FEATURE2_QUERY requires an outsize of at least 128 bytes,
    otherwise it fails with an error code 5 (HPWMI_RET_INVALID_PARAMETERS):
    
    Dec 06 00:59:38 kernel: hp_wmi: query 0xd returned error 0x5
    
    We do not care about the contents of the buffer, we just want to know
    if the HPWMI_FEATURE2_QUERY command is supported.
    
    This commits bumps the buffer size, fixing the error.
    
    Fixes: 8a1513b4932 ("hp-wmi: limit hotkey enable")
    Cc: stable@vger.kernel.org
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1520703
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77d893bb8d6f0077da879c83e482bc5d6bad4e3f
Author: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Date:   Tue Dec 17 13:55:25 2019 +0200

    intel_th: pci: Add Elkhart Lake SOC support
    
    commit 88385866bab8d5e18c7f45d1023052c783572e03 upstream.
    
    This adds support for Intel Trace Hub in Elkhart Lake.
    
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20191217115527.74383-3-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 944276c573d5f5ec3767263363369f3d5335ed9a
Author: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Date:   Tue Dec 17 13:55:24 2019 +0200

    intel_th: pci: Add Comet Lake PCH-V support
    
    commit e4de2a5d51f97a6e720a1c0911f93e2d8c2f1c08 upstream.
    
    This adds Intel(R) Trace Hub PCI ID for Comet Lake PCH-V.
    
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20191217115527.74383-2-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d21868ab70ab789c0a9b12634a575b04762e190
Author: Erkka Talvitie <erkka.talvitie@vincit.fi>
Date:   Wed Dec 11 10:08:39 2019 +0200

    USB: EHCI: Do not return -EPIPE when hub is disconnected
    
    commit 64cc3f12d1c7dd054a215bc1ff9cc2abcfe35832 upstream.
    
    When disconnecting a USB hub that has some child device(s) connected to it
    (such as a USB mouse), then the stack tries to clear halt and
    reset device(s) which are _already_ physically disconnected.
    
    The issue has been reproduced with:
    
    CPU: IMX6D5EYM10AD or MCIMX6D5EYM10AE.
    SW: U-Boot 2019.07 and kernel 4.19.40.
    
    CPU: HP Proliant Microserver Gen8.
    SW: Linux version 4.2.3-300.fc23.x86_64
    
    In this situation there will be error bit for MMF active yet the
    CERR equals EHCI_TUNE_CERR + halt. Existing implementation
    interprets this as a stall [1] (chapter 8.4.5).
    
    The possible conditions when the MMF will be active + halt
    can be found from [2] (Table 4-13).
    
    Fix for the issue is to check whether MMF is active and PID Code is
    IN before checking for the stall. If these conditions are true then
    it is not a stall.
    
    What happens after the fix is that when disconnecting a hub with
    attached device(s) the situation is not interpret as a stall.
    
    [1] [https://www.usb.org/document-library/usb-20-specification, usb_20.pdf]
    [2] [https://www.intel.com/content/dam/www/public/us/en/documents/
         technical-specifications/ehci-specification-for-usb.pdf]
    
    Signed-off-by: Erkka Talvitie <erkka.talvitie@vincit.fi>
    Reviewed-by: Alan Stern <stern@rowland.harvard.edu>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/ef70941d5f349767f19c0ed26b0dd9eed8ad81bb.1576050523.git.erkka.talvitie@vincit.fi
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ced35178a76f255631f05cda074ec4b96786b3f8
Author: Suwan Kim <suwan.kim027@gmail.com>
Date:   Fri Dec 13 11:30:55 2019 +0900

    usbip: Fix error path of vhci_recv_ret_submit()
    
    commit aabb5b833872524eaf28f52187e5987984982264 upstream.
    
    If a transaction error happens in vhci_recv_ret_submit(), event
    handler closes connection and changes port status to kick hub_event.
    Then hub tries to flush the endpoint URBs, but that causes infinite
    loop between usb_hub_flush_endpoint() and vhci_urb_dequeue() because
    "vhci_priv" in vhci_urb_dequeue() was already released by
    vhci_recv_ret_submit() before a transmission error occurred. Thus,
    vhci_urb_dequeue() terminates early and usb_hub_flush_endpoint()
    continuously calls vhci_urb_dequeue().
    
    The root cause of this issue is that vhci_recv_ret_submit()
    terminates early without giving back URB when transaction error
    occurs in vhci_recv_ret_submit(). That causes the error URB to still
    be linked at endpoint list without “vhci_priv".
    
    So, in the case of transaction error in vhci_recv_ret_submit(),
    unlink URB from the endpoint, insert proper error code in
    urb->status and give back URB.
    
    Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
    Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
    Signed-off-by: Suwan Kim <suwan.kim027@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Acked-by: Shuah Khan <skhan@linuxfoundation.org>
    Link: https://lore.kernel.org/r/20191213023055.19933-3-suwan.kim027@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5efc690e2043e08c4052bc8a6444ca2157e54799
Author: Suwan Kim <suwan.kim027@gmail.com>
Date:   Fri Dec 13 11:30:54 2019 +0900

    usbip: Fix receive error in vhci-hcd when using scatter-gather
    
    commit d986294ee55d719562b20aabe15a39bf8f863415 upstream.
    
    When vhci uses SG and receives data whose size is smaller than SG
    buffer size, it tries to receive more data even if it acutally
    receives all the data from the server. If then, it erroneously adds
    error event and triggers connection shutdown.
    
    vhci-hcd should check if it received all the data even if there are
    more SG entries left. So, check if it receivces all the data from
    the server in for_each_sg() loop.
    
    Fixes: ea44d190764b ("usbip: Implement SG support to vhci-hcd and stub driver")
    Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
    Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
    Signed-off-by: Suwan Kim <suwan.kim027@gmail.com>
    Acked-by: Shuah Khan <skhan@linuxfoundation.org>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20191213023055.19933-2-suwan.kim027@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a93dd1c4626d1f61b0de64e1feaa385aa48fc1e9
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Fri Dec 6 09:37:15 2019 -0500

    btrfs: abort transaction after failed inode updates in create_subvol
    
    [ Upstream commit c7e54b5102bf3614cadb9ca32d7be73bad6cecf0 ]
    
    We can just abort the transaction here, and in fact do that for every
    other failure in this function except these two cases.
    
    CC: stable@vger.kernel.org # 4.4+
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f8f86208bfbe7b556d108e3dae05e315cfcc34f4
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Dec 3 14:24:58 2019 +0300

    btrfs: return error pointer from alloc_test_extent_buffer
    
    [ Upstream commit b6293c821ea8fa2a631a2112cd86cd435effeb8b ]
    
    Callers of alloc_test_extent_buffer have not correctly interpreted the
    return value as error pointer, as alloc_test_extent_buffer should behave
    as alloc_extent_buffer. The self-tests were unaffected but
    btrfs_find_create_tree_block could call both functions and that would
    cause problems up in the call chain.
    
    Fixes: faa2dbf004e8 ("Btrfs: add sanity tests for new qgroup accounting code")
    CC: stable@vger.kernel.org # 4.4+
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 51ff11e50d8b2bbde8b790b4e7cdd5688d5aef94
Author: Sven Schnelle <svens@linux.ibm.com>
Date:   Mon Dec 9 09:03:12 2019 +0100

    s390/ftrace: fix endless recursion in function_graph tracer
    
    [ Upstream commit 6feeee8efc53035c3195b02068b58ae947538aa4 ]
    
    The following sequence triggers a kernel stack overflow on s390x:
    
    mount -t tracefs tracefs /sys/kernel/tracing
    cd /sys/kernel/tracing
    echo function_graph > current_tracer
    [crash]
    
    This is because preempt_count_{add,sub} are in the list of traced
    functions, which can be demonstrated by:
    
    echo preempt_count_add >set_ftrace_filter
    echo function_graph > current_tracer
    [crash]
    
    The stack overflow happens because get_tod_clock_monotonic() gets called
    by ftrace but itself calls preempt_{disable,enable}(), which leads to a
    endless recursion. Fix this by using preempt_{disable,enable}_notrace().
    
    Fixes: 011620688a71 ("s390/time: ensure get_clock_monotonic() returns monotonic values")
    Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
    Reviewed-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 031fbffac8ad65041b7308fd3b12f05471a980bc
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Tue Dec 17 17:19:11 2019 -0800

    usb: xhci: Fix build warning seen with CONFIG_PM=n
    
    [ Upstream commit 6056a0f8ede27b296d10ef46f7f677cc9d715371 ]
    
    The following build warning is seen if CONFIG_PM is disabled.
    
    drivers/usb/host/xhci-pci.c:498:13: warning:
            unused function 'xhci_pci_shutdown'
    
    Fixes: f2c710f7dca8 ("usb: xhci: only set D3hot for pci device")
    Cc: Henry Lin <henryl@nvidia.com>
    Cc: stable@vger.kernel.org      # all stable releases with f2c710f7dca8
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20191218011911.6907-1-linux@roeck-us.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8bcc8514f821b27652d2019e0ae82f6482be56c7
Author: Chaotian Jing <chaotian.jing@mediatek.com>
Date:   Wed Dec 4 15:19:58 2019 +0800

    mmc: mediatek: fix CMD_TA to 2 for MT8173 HS200/HS400 mode
    
    commit 8f34e5bd7024d1ffebddd82d7318b1be17be9e9a upstream.
    
    there is a chance that always get response CRC error after HS200 tuning,
    the reason is that need set CMD_TA to 2. this modification is only for
    MT8173.
    
    Signed-off-by: Chaotian Jing <chaotian.jing@mediatek.com>
    Tested-by: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: stable@vger.kernel.org
    Fixes: 1ede5cb88a29 ("mmc: mediatek: Use data tune for CMD line tune")
    Link: https://lore.kernel.org/r/20191204071958.18553-1-chaotian.jing@mediatek.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75bfb048437fba5dd6cfc2535c53ff50197c3b1a
Author: Faiz Abbas <faiz_abbas@ti.com>
Date:   Thu Nov 28 16:34:22 2019 +0530

    Revert "mmc: sdhci: Fix incorrect switch to HS mode"
    
    commit 07bcc411567cb96f9d1fc84fff8d387118a2920d upstream.
    
    This reverts commit c894e33ddc1910e14d6f2a2016f60ab613fd8b37.
    
    This commit aims to treat SD High speed and SDR25 as the same while
    setting UHS Timings in HOST_CONTROL2 which leads to failures with some
    SD cards in AM65x. Revert this commit.
    
    The issue this commit was trying to fix can be implemented in a platform
    specific callback instead of common sdhci code.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Link: https://lore.kernel.org/r/20191128110422.25917-1-faiz_abbas@ti.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7cfef55ff0193d9a47d558b92038a1a2fc78cb98
Author: Omar Sandoval <osandov@fb.com>
Date:   Mon Sep 16 11:30:56 2019 -0700

    btrfs: don't prematurely free work in scrub_missing_raid56_worker()
    
    [ Upstream commit 57d4f0b863272ba04ba85f86bfdc0f976f0af91c ]
    
    Currently, scrub_missing_raid56_worker() puts and potentially frees
    sblock (which embeds the work item) and then submits a bio through
    scrub_wr_submit(). This is another potential instance of the bug in
    "btrfs: don't prematurely free work in run_ordered_work()". Fix it by
    dropping the reference after we submit the bio.
    
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Omar Sandoval <osandov@fb.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4a27508240821ed75cd504cfba0abda1fcab28a1
Author: Omar Sandoval <osandov@fb.com>
Date:   Mon Sep 16 11:30:55 2019 -0700

    btrfs: don't prematurely free work in reada_start_machine_worker()
    
    [ Upstream commit e732fe95e4cad35fc1df278c23a32903341b08b3 ]
    
    Currently, reada_start_machine_worker() frees the reada_machine_work and
    then calls __reada_start_machine() to do readahead. This is another
    potential instance of the bug in "btrfs: don't prematurely free work in
    run_ordered_work()".
    
    There _might_ already be a deadlock here: reada_start_machine_worker()
    can depend on itself through stacked filesystems (__read_start_machine()
    -> reada_start_machine_dev() -> reada_tree_block_flagged() ->
    read_extent_buffer_pages() -> submit_one_bio() ->
    btree_submit_bio_hook() -> btrfs_map_bio() -> submit_stripe_bio() ->
    submit_bio() onto a loop device can trigger readahead on the lower
    filesystem).
    
    Either way, let's fix it by freeing the work at the end.
    
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Omar Sandoval <osandov@fb.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ce23510d754b75b8809c88e29cd42753ce10359
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Fri Nov 22 15:23:23 2019 +0000

    net: phy: initialise phydev speed and duplex sanely
    
    [ Upstream commit a5d66f810061e2dd70fb7a108dcd14e535bc639f ]
    
    When a phydev is created, the speed and duplex are set to zero and
    -1 respectively, rather than using the predefined SPEED_UNKNOWN and
    DUPLEX_UNKNOWN constants.
    
    There is a window at initialisation time where we may report link
    down using the 0/-1 values.  Tidy this up and use the predefined
    constants, so debug doesn't complain with:
    
    "Unsupported (update phy-core.c)/Unsupported (update phy-core.c)"
    
    when the speed and duplex settings are printed.
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b4f2c6e4cfff4b987797cbda02884364c695c349
Author: Mike Rapoport <rppt@linux.ibm.com>
Date:   Thu Nov 21 18:21:31 2019 +0200

    mips: fix build when "48 bits virtual memory" is enabled
    
    [ Upstream commit 3ed6751bb8fa89c3014399bb0414348499ee202a ]
    
    With CONFIG_MIPS_VA_BITS_48=y the build fails miserably:
    
      CC      arch/mips/kernel/asm-offsets.s
    In file included from arch/mips/include/asm/pgtable.h:644,
                     from include/linux/mm.h:99,
                     from arch/mips/kernel/asm-offsets.c:15:
    include/asm-generic/pgtable.h:16:2: error: #error CONFIG_PGTABLE_LEVELS is not consistent with __PAGETABLE_{P4D,PUD,PMD}_FOLDED
     #error CONFIG_PGTABLE_LEVELS is not consistent with __PAGETABLE_{P4D,PUD,PMD}_FOLDED
      ^~~~~
    include/asm-generic/pgtable.h:390:28: error: unknown type name 'p4d_t'; did you mean 'pmd_t'?
     static inline int p4d_same(p4d_t p4d_a, p4d_t p4d_b)
                                ^~~~~
                                pmd_t
    
    [ ... more such errors ... ]
    
    scripts/Makefile.build:99: recipe for target 'arch/mips/kernel/asm-offsets.s' failed
    make[2]: *** [arch/mips/kernel/asm-offsets.s] Error 1
    
    This happens because when CONFIG_MIPS_VA_BITS_48 enables 4th level of the
    page tables, but neither pgtable-nop4d.h nor 5level-fixup.h are included to
    cope with the 5th level.
    
    Replace #ifdef conditions around includes of the pgtable-nop{m,u}d.h with
    explicit CONFIG_PGTABLE_LEVELS and add include of 5level-fixup.h for the
    case when CONFIG_PGTABLE_LEVELS==4
    
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Signed-off-by: Paul Burton <paulburton@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mm@kvack.org
    Cc: Mike Rapoport <rppt@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 17dae5b25057781e09866535d50ed8d30a405d58
Author: Hewenliang <hewenliang4@huawei.com>
Date:   Mon Nov 18 20:44:15 2019 -0500

    libtraceevent: Fix memory leakage in copy_filter_type
    
    [ Upstream commit 10992af6bf46a2048ad964985a5b77464e5563b1 ]
    
    It is necessary to free the memory that we have allocated when error occurs.
    
    Fixes: ef3072cd1d5c ("tools lib traceevent: Get rid of die in add_filter_type()")
    Signed-off-by: Hewenliang <hewenliang4@huawei.com>
    Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Tzvetomir Stoyanov <tstoyanov@vmware.com>
    Link: http://lore.kernel.org/lkml/20191119014415.57210-1-hewenliang4@huawei.com
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e46523a24db0a8c48a072c6f75184f8ff4b222ca
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Wed Nov 20 22:27:38 2019 +1100

    crypto: vmx - Avoid weird build failures
    
    [ Upstream commit 4ee812f6143d78d8ba1399671d78c8d78bf2817c ]
    
    In the vmx crypto Makefile we assign to a variable called TARGET and
    pass that to the aesp8-ppc.pl and ghashp8-ppc.pl scripts.
    
    The variable is meant to describe what flavour of powerpc we're
    building for, eg. either 32 or 64-bit, and big or little endian.
    
    Unfortunately TARGET is a fairly common name for a make variable, and
    if it happens that TARGET is specified as a command line parameter to
    make, the value specified on the command line will override our value.
    
    In particular this can happen if the kernel Makefile is driven by an
    external Makefile that uses TARGET for something.
    
    This leads to weird build failures, eg:
      nonsense  at /build/linux/drivers/crypto/vmx/ghashp8-ppc.pl line 45.
      /linux/drivers/crypto/vmx/Makefile:20: recipe for target 'drivers/crypto/vmx/ghashp8-ppc.S' failed
    
    Which shows that we passed an empty value for $(TARGET) to the perl
    script, confirmed with make V=1:
    
      perl /linux/drivers/crypto/vmx/ghashp8-ppc.pl  > drivers/crypto/vmx/ghashp8-ppc.S
    
    We can avoid this confusion by using override, to tell make that we
    don't want anything to override our variable, even a value specified
    on the command line. We can also use a less common name, given the
    script calls it "flavour", let's use that.
    
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 387053b4b4367c46f685b0d4f6d4b02be86f498a
Author: Thomas Pedersen <thomas@adapt-ip.com>
Date:   Mon Nov 18 21:35:38 2019 -0800

    mac80211: consider QoS Null frames for STA_NULLFUNC_ACKED
    
    [ Upstream commit 08a5bdde3812993cb8eb7aa9124703df0de28e4b ]
    
    Commit 7b6ddeaf27ec ("mac80211: use QoS NDP for AP probing")
    let STAs send QoS Null frames as PS triggers if the AP was
    a QoS STA.  However, the mac80211 PS stack relies on an
    interface flag IEEE80211_STA_NULLFUNC_ACKED for
    determining trigger frame ACK, which was not being set for
    acked non-QoS Null frames. The effect is an inability to
    trigger hardware sleep via IEEE80211_CONF_PS since the QoS
    Null frame was seemingly never acked.
    
    This bug only applies to drivers which set both
    IEEE80211_HW_REPORTS_TX_ACK_STATUS and
    IEEE80211_HW_PS_NULLFUNC_STACK.
    
    Detect the acked QoS Null frame to restore STA power save.
    
    Fixes: 7b6ddeaf27ec ("mac80211: use QoS NDP for AP probing")
    Signed-off-by: Thomas Pedersen <thomas@adapt-ip.com>
    Link: https://lore.kernel.org/r/20191119053538.25979-4-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb40551504fd78fccbb32efa3c51ce043f9b7d8d
Author: Corentin Labbe <clabbe.montjoie@gmail.com>
Date:   Thu Nov 14 11:49:06 2019 +0100

    crypto: sun4i-ss - Fix 64-bit size_t warnings on sun4i-ss-hash.c
    
    [ Upstream commit a7126603d46fe8f01aeedf589e071c6aaa6c6c39 ]
    
    If you try to compile this driver on a 64-bit platform then you
    will get warnings because it mixes size_t with unsigned int which
    only works on 32-bit.
    
    This patch fixes all of the warnings on sun4i-ss-hash.c.
    Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 08f433fca0056563812a8d5ff436d9a629e2029f
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Tue Nov 12 10:38:34 2019 +0800

    crypto: sun4i-ss - Fix 64-bit size_t warnings
    
    [ Upstream commit d6e9da21ee8246b5e556b3b153401ab045adb986 ]
    
    If you try to compile this driver on a 64-bit platform then you
    will get warnings because it mixes size_t with unsigned int which
    only works on 32-bit.
    
    This patch fixes all of the warnings.
    
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Acked-by: Corentin Labbe <clabbe.montjoie@gmail.com>
    Tested-by: Corentin Labbe <clabbe.montjoie@gmail.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5b769b8ee1960b9eeb1487f813ff107ad3a02790
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Wed Nov 20 11:57:12 2019 +0200

    fbtft: Make sure string is NULL terminated
    
    [ Upstream commit 21f585480deb4bcf0d92b08879c35d066dfee030 ]
    
    New GCC warns about inappropriate use of strncpy():
    
    drivers/staging/fbtft/fbtft-core.c: In function ‘fbtft_framebuffer_alloc’:
    drivers/staging/fbtft/fbtft-core.c:665:2: warning: ‘strncpy’ specified bound 16 equals destination size [-Wstringop-truncation]
      665 |  strncpy(info->fix.id, dev->driver->name, 16);
          |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Later on the copy is being used with the assumption to be NULL terminated.
    Make sure string is NULL terminated by switching to snprintf().
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20191120095716.26628-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7a7f55f4cff4c0723b00e9ac11a30ce407f71f53
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Nov 5 14:50:32 2019 +0100

    iwlwifi: check kasprintf() return value
    
    [ Upstream commit 5974fbb5e10b018fdbe3c3b81cb4cc54e1105ab9 ]
    
    kasprintf() can fail, we should check the return value.
    
    Fixes: 5ed540aecc2a ("iwlwifi: use mac80211 throughput trigger")
    Fixes: 8ca151b568b6 ("iwlwifi: add the MVM driver")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 21f32d7121560ed0c79fb6887682e731b9839161
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Fri Nov 15 15:54:47 2019 +0200

    x86/insn: Add some Intel instructions to the opcode map
    
    [ Upstream commit b980be189c9badba50634671e2303e92bf28e35a ]
    
    Add to the opcode map the following instructions:
            cldemote
            tpause
            umonitor
            umwait
            movdiri
            movdir64b
            enqcmd
            enqcmds
            encls
            enclu
            enclv
            pconfig
            wbnoinvd
    
    For information about the instructions, refer Intel SDM May 2019
    (325462-070US) and Intel Architecture Instruction Set Extensions
    May 2019 (319433-037).
    
    The instruction decoding can be tested using the perf tools'
    "x86 instruction decoder - new instructions" test as folllows:
    
      $ perf test -v "new " 2>&1 | grep -i cldemote
      Decoded ok: 0f 1c 00                    cldemote (%eax)
      Decoded ok: 0f 1c 05 78 56 34 12        cldemote 0x12345678
      Decoded ok: 0f 1c 84 c8 78 56 34 12     cldemote 0x12345678(%eax,%ecx,8)
      Decoded ok: 0f 1c 00                    cldemote (%rax)
      Decoded ok: 41 0f 1c 00                 cldemote (%r8)
      Decoded ok: 0f 1c 04 25 78 56 34 12     cldemote 0x12345678
      Decoded ok: 0f 1c 84 c8 78 56 34 12     cldemote 0x12345678(%rax,%rcx,8)
      Decoded ok: 41 0f 1c 84 c8 78 56 34 12  cldemote 0x12345678(%r8,%rcx,8)
      $ perf test -v "new " 2>&1 | grep -i tpause
      Decoded ok: 66 0f ae f3                 tpause %ebx
      Decoded ok: 66 0f ae f3                 tpause %ebx
      Decoded ok: 66 41 0f ae f0              tpause %r8d
      $ perf test -v "new " 2>&1 | grep -i umonitor
      Decoded ok: 67 f3 0f ae f0              umonitor %ax
      Decoded ok: f3 0f ae f0                 umonitor %eax
      Decoded ok: 67 f3 0f ae f0              umonitor %eax
      Decoded ok: f3 0f ae f0                 umonitor %rax
      Decoded ok: 67 f3 41 0f ae f0           umonitor %r8d
      $ perf test -v "new " 2>&1 | grep -i umwait
      Decoded ok: f2 0f ae f0                 umwait %eax
      Decoded ok: f2 0f ae f0                 umwait %eax
      Decoded ok: f2 41 0f ae f0              umwait %r8d
      $ perf test -v "new " 2>&1 | grep -i movdiri
      Decoded ok: 0f 38 f9 03                 movdiri %eax,(%ebx)
      Decoded ok: 0f 38 f9 88 78 56 34 12     movdiri %ecx,0x12345678(%eax)
      Decoded ok: 48 0f 38 f9 03              movdiri %rax,(%rbx)
      Decoded ok: 48 0f 38 f9 88 78 56 34 12  movdiri %rcx,0x12345678(%rax)
      $ perf test -v "new " 2>&1 | grep -i movdir64b
      Decoded ok: 66 0f 38 f8 18              movdir64b (%eax),%ebx
      Decoded ok: 66 0f 38 f8 88 78 56 34 12  movdir64b 0x12345678(%eax),%ecx
      Decoded ok: 67 66 0f 38 f8 1c           movdir64b (%si),%bx
      Decoded ok: 67 66 0f 38 f8 8c 34 12     movdir64b 0x1234(%si),%cx
      Decoded ok: 66 0f 38 f8 18              movdir64b (%rax),%rbx
      Decoded ok: 66 0f 38 f8 88 78 56 34 12  movdir64b 0x12345678(%rax),%rcx
      Decoded ok: 67 66 0f 38 f8 18           movdir64b (%eax),%ebx
      Decoded ok: 67 66 0f 38 f8 88 78 56 34 12       movdir64b 0x12345678(%eax),%ecx
      $ perf test -v "new " 2>&1 | grep -i enqcmd
      Decoded ok: f2 0f 38 f8 18              enqcmd (%eax),%ebx
      Decoded ok: f2 0f 38 f8 88 78 56 34 12  enqcmd 0x12345678(%eax),%ecx
      Decoded ok: 67 f2 0f 38 f8 1c           enqcmd (%si),%bx
      Decoded ok: 67 f2 0f 38 f8 8c 34 12     enqcmd 0x1234(%si),%cx
      Decoded ok: f3 0f 38 f8 18              enqcmds (%eax),%ebx
      Decoded ok: f3 0f 38 f8 88 78 56 34 12  enqcmds 0x12345678(%eax),%ecx
      Decoded ok: 67 f3 0f 38 f8 1c           enqcmds (%si),%bx
      Decoded ok: 67 f3 0f 38 f8 8c 34 12     enqcmds 0x1234(%si),%cx
      Decoded ok: f2 0f 38 f8 18              enqcmd (%rax),%rbx
      Decoded ok: f2 0f 38 f8 88 78 56 34 12  enqcmd 0x12345678(%rax),%rcx
      Decoded ok: 67 f2 0f 38 f8 18           enqcmd (%eax),%ebx
      Decoded ok: 67 f2 0f 38 f8 88 78 56 34 12       enqcmd 0x12345678(%eax),%ecx
      Decoded ok: f3 0f 38 f8 18              enqcmds (%rax),%rbx
      Decoded ok: f3 0f 38 f8 88 78 56 34 12  enqcmds 0x12345678(%rax),%rcx
      Decoded ok: 67 f3 0f 38 f8 18           enqcmds (%eax),%ebx
      Decoded ok: 67 f3 0f 38 f8 88 78 56 34 12       enqcmds 0x12345678(%eax),%ecx
      $ perf test -v "new " 2>&1 | grep -i enqcmds
      Decoded ok: f3 0f 38 f8 18              enqcmds (%eax),%ebx
      Decoded ok: f3 0f 38 f8 88 78 56 34 12  enqcmds 0x12345678(%eax),%ecx
      Decoded ok: 67 f3 0f 38 f8 1c           enqcmds (%si),%bx
      Decoded ok: 67 f3 0f 38 f8 8c 34 12     enqcmds 0x1234(%si),%cx
      Decoded ok: f3 0f 38 f8 18              enqcmds (%rax),%rbx
      Decoded ok: f3 0f 38 f8 88 78 56 34 12  enqcmds 0x12345678(%rax),%rcx
      Decoded ok: 67 f3 0f 38 f8 18           enqcmds (%eax),%ebx
      Decoded ok: 67 f3 0f 38 f8 88 78 56 34 12       enqcmds 0x12345678(%eax),%ecx
      $ perf test -v "new " 2>&1 | grep -i encls
      Decoded ok: 0f 01 cf                    encls
      Decoded ok: 0f 01 cf                    encls
      $ perf test -v "new " 2>&1 | grep -i enclu
      Decoded ok: 0f 01 d7                    enclu
      Decoded ok: 0f 01 d7                    enclu
      $ perf test -v "new " 2>&1 | grep -i enclv
      Decoded ok: 0f 01 c0                    enclv
      Decoded ok: 0f 01 c0                    enclv
      $ perf test -v "new " 2>&1 | grep -i pconfig
      Decoded ok: 0f 01 c5                    pconfig
      Decoded ok: 0f 01 c5                    pconfig
      $ perf test -v "new " 2>&1 | grep -i wbnoinvd
      Decoded ok: f3 0f 09                    wbnoinvd
      Decoded ok: f3 0f 09                    wbnoinvd
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: Andi Kleen <ak@linux.intel.com>
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86@kernel.org
    Link: http://lore.kernel.org/lkml/20191115135447.6519-3-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d9d790232151e21e5871ca41134f6eecc6eaf514
Author: Chuhong Yuan <hslester96@gmail.com>
Date:   Mon Nov 18 10:48:48 2019 +0800

    spi: st-ssc4: add missed pm_runtime_disable
    
    [ Upstream commit cd050abeba2a95fe5374eec28ad2244617bcbab6 ]
    
    The driver forgets to call pm_runtime_disable in probe failure
    and remove.
    Add the missed calls to fix it.
    
    Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
    Link: https://lore.kernel.org/r/20191118024848.21645-1-hslester96@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6d52fb75cd543ae3f5ff443294ce3bef56bb12fe
Author: Omar Sandoval <osandov@fb.com>
Date:   Mon Sep 16 11:30:53 2019 -0700

    btrfs: don't prematurely free work in run_ordered_work()
    
    [ Upstream commit c495dcd6fbe1dce51811a76bb85b4675f6494938 ]
    
    We hit the following very strange deadlock on a system with Btrfs on a
    loop device backed by another Btrfs filesystem:
    
    1. The top (loop device) filesystem queues an async_cow work item from
       cow_file_range_async(). We'll call this work X.
    2. Worker thread A starts work X (normal_work_helper()).
    3. Worker thread A executes the ordered work for the top filesystem
       (run_ordered_work()).
    4. Worker thread A finishes the ordered work for work X and frees X
       (work->ordered_free()).
    5. Worker thread A executes another ordered work and gets blocked on I/O
       to the bottom filesystem (still in run_ordered_work()).
    6. Meanwhile, the bottom filesystem allocates and queues an async_cow
       work item which happens to be the recently-freed X.
    7. The workqueue code sees that X is already being executed by worker
       thread A, so it schedules X to be executed _after_ worker thread A
       finishes (see the find_worker_executing_work() call in
       process_one_work()).
    
    Now, the top filesystem is waiting for I/O on the bottom filesystem, but
    the bottom filesystem is waiting for the top filesystem to finish, so we
    deadlock.
    
    This happens because we are breaking the workqueue assumption that a
    work item cannot be recycled while it still depends on other work. Fix
    it by waiting to free the work item until we are done with all of the
    related ordered work.
    
    P.S.:
    
    One might ask why the workqueue code doesn't try to detect a recycled
    work item. It actually does try by checking whether the work item has
    the same work function (find_worker_executing_work()), but in our case
    the function is the same. This is the only key that the workqueue code
    has available to compare, short of adding an additional, layer-violating
    "custom key". Considering that we're the only ones that have ever hit
    this, we should just play by the rules.
    
    Unfortunately, we haven't been able to create a minimal reproducer other
    than our full container setup using a compress-force=zstd filesystem on
    top of another compress-force=zstd filesystem.
    
    Suggested-by: Tejun Heo <tj@kernel.org>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Omar Sandoval <osandov@fb.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e5ae20bb9b5e37d9ec07fe7933e14b4bc19f75f
Author: Omar Sandoval <osandov@fb.com>
Date:   Mon Sep 16 11:30:54 2019 -0700

    btrfs: don't prematurely free work in end_workqueue_fn()
    
    [ Upstream commit 9be490f1e15c34193b1aae17da58e14dd9f55a95 ]
    
    Currently, end_workqueue_fn() frees the end_io_wq entry (which embeds
    the work item) and then calls bio_endio(). This is another potential
    instance of the bug in "btrfs: don't prematurely free work in
    run_ordered_work()".
    
    In particular, the endio call may depend on other work items. For
    example, btrfs_end_dio_bio() can call btrfs_subio_endio_read() ->
    __btrfs_correct_data_nocsum() -> dio_read_error() ->
    submit_dio_repair_bio(), which submits a bio that is also completed
    through a end_workqueue_fn() work item. However,
    __btrfs_correct_data_nocsum() waits for the newly submitted bio to
    complete, thus it depends on another work item.
    
    This example currently usually works because we use different workqueue
    helper functions for BTRFS_WQ_ENDIO_DATA and BTRFS_WQ_ENDIO_DIO_REPAIR.
    However, it may deadlock with stacked filesystems and is fragile
    overall. The proper fix is to free the work item at the very end of the
    work function, so let's do that.
    
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Omar Sandoval <osandov@fb.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9402dae57784ffc81e0f142647a205b13e700a10
Author: Eugeniu Rosca <erosca@de.adit-jv.com>
Date:   Fri Nov 15 14:44:30 2019 +0100

    mmc: tmio: Add MMC_CAP_ERASE to allow erase/discard/trim requests
    
    [ Upstream commit c91843463e9e821dc3b48fe37e3155fa38299f6e ]
    
    Isolated initially to renesas_sdhi_internal_dmac [1], Ulf suggested
    adding MMC_CAP_ERASE to the TMIO mmc core:
    
    On Fri, Nov 15, 2019 at 10:27:25AM +0100, Ulf Hansson wrote:
     -- snip --
     This test and due to the discussions with Wolfram and you in this
     thread, I would actually suggest that you enable MMC_CAP_ERASE for all
     tmio variants, rather than just for this particular one.
    
     In other words, set the cap in tmio_mmc_host_probe() should be fine,
     as it seems none of the tmio variants supports HW busy detection at
     this point.
     -- snip --
    
    Testing on R-Car H3ULCB-KF doesn't reveal any issues (v5.4-rc7):
    
    root@rcar-gen3:~# lsblk
    NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    mmcblk0      179:0    0 59.2G  0 disk  <--- eMMC
    mmcblk0boot0 179:8    0    4M  1 disk
    mmcblk0boot1 179:16   0    4M  1 disk
    mmcblk1      179:24   0   30G  0 disk  <--- SD card
    
    root@rcar-gen3:~# time blkdiscard /dev/mmcblk0
    real    0m8.659s
    user    0m0.001s
    sys     0m1.920s
    
    root@rcar-gen3:~# time blkdiscard /dev/mmcblk1
    real    0m1.176s
    user    0m0.001s
    sys     0m0.124s
    
    [1] https://lore.kernel.org/linux-renesas-soc/20191112134808.23546-1-erosca@de.adit-jv.com/
    
    Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
    Cc: Andrew Gabbasov <andrew_gabbasov@mentor.com>
    Originally-by: Harish Jenny K N <harish_kandiga@mentor.com>
    Suggested-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
    Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 50806c4aa26f941ef665bfd9c2d70a16d8d6e304
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Sat Nov 9 18:09:27 2019 +0100

    crypto: virtio - deal with unsupported input sizes
    
    [ Upstream commit 19c5da7d4a2662e85ea67d2d81df57e038fde3ab ]
    
    Return -EINVAL for input sizes that are not a multiple of the AES
    block size, since they are not supported by our CBC chaining mode.
    
    While at it, remove the pr_err() that reports unsupported key sizes
    being used: we shouldn't spam the kernel log with that.
    
    Fixes: dbaf0624ffa5 ("crypto: add virtio-crypto driver")
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: Gonglei <arei.gonglei@huawei.com>
    Cc: virtualization@lists.linux-foundation.org
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c4fd0e76e47195b9096f7334102d5e115cd91feb
Author: Chuhong Yuan <hslester96@gmail.com>
Date:   Fri Nov 15 16:31:22 2019 +0800

    spi: tegra20-slink: add missed clk_unprepare
    
    [ Upstream commit 04358e40ba96d687c0811c21d9dede73f5244a98 ]
    
    The driver misses calling clk_unprepare in probe failure and remove.
    Add the calls to fix it.
    
    Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
    Link: https://lore.kernel.org/r/20191115083122.12278-1-hslester96@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 79bb64337a1d9247d657fe8b1cd9643adfcdf382
Author: Wang Xuerui <wangxuerui@qiniu.com>
Date:   Fri Nov 15 09:28:02 2019 +0200

    iwlwifi: mvm: fix unaligned read of rx_pkt_status
    
    [ Upstream commit c5aaa8be29b25dfe1731e9a8b19fd91b7b789ee3 ]
    
    This is present since the introduction of iwlmvm.
    Example stack trace on MIPS:
    
    [<ffffffffc0789328>] iwl_mvm_rx_rx_mpdu+0xa8/0xb88 [iwlmvm]
    [<ffffffffc0632b40>] iwl_pcie_rx_handle+0x420/0xc48 [iwlwifi]
    
    Tested with a Wireless AC 7265 for ~6 months, confirmed to fix the
    problem. No other unaligned accesses are spotted yet.
    
    Signed-off-by: Wang Xuerui <wangxuerui@qiniu.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 061a175c9254cecc45ff0d44a0a2ea138b387fb3
Author: Lianbo Jiang <lijiang@redhat.com>
Date:   Fri Nov 8 17:00:27 2019 +0800

    x86/crash: Add a forward declaration of struct kimage
    
    [ Upstream commit 112eee5d06007dae561f14458bde7f2a4879ef4e ]
    
    Add a forward declaration of struct kimage to the crash.h header because
    future changes will invoke a crash-specific function from the realmode
    init path and the compiler will complain otherwise like this:
    
      In file included from arch/x86/realmode/init.c:11:
      ./arch/x86/include/asm/crash.h:5:32: warning: ‘struct kimage’ declared inside\
       parameter list will not be visible outside of this definition or declaration
          5 | int crash_load_segments(struct kimage *image);
            |                                ^~~~~~
      ./arch/x86/include/asm/crash.h:6:37: warning: ‘struct kimage’ declared inside\
       parameter list will not be visible outside of this definition or declaration
          6 | int crash_copy_backup_region(struct kimage *image);
            |                                     ^~~~~~
      ./arch/x86/include/asm/crash.h:7:39: warning: ‘struct kimage’ declared inside\
       parameter list will not be visible outside of this definition or declaration
          7 | int crash_setup_memmap_entries(struct kimage *image,
            |
    
     [ bp: Rewrite the commit message. ]
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: bhe@redhat.com
    Cc: d.hatayama@fujitsu.com
    Cc: dhowells@redhat.com
    Cc: dyoung@redhat.com
    Cc: ebiederm@xmission.com
    Cc: horms@verge.net.au
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jürgen Gross <jgross@suse.com>
    Cc: kexec@lists.infradead.org
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: vgoyal@redhat.com
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20191108090027.11082-4-lijiang@redhat.com
    Link: https://lkml.kernel.org/r/201910310233.EJRtTMWP%25lkp@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7c31408136db6c826911f4a214868048f30839b5
Author: Viresh Kumar <viresh.kumar@linaro.org>
Date:   Thu Nov 14 09:06:17 2019 +0530

    cpufreq: Register drivers only after CPU devices have been registered
    
    [ Upstream commit 46770be0cf94149ca48be87719bda1d951066644 ]
    
    The cpufreq core heavily depends on the availability of the struct
    device for CPUs and if they aren't available at the time cpufreq driver
    is registered, we will never succeed in making cpufreq work.
    
    This happens due to following sequence of events:
    
    - cpufreq_register_driver()
      - subsys_interface_register()
      - return 0; //successful registration of driver
    
    ... at a later point of time
    
    - register_cpu();
      - device_register();
        - bus_probe_device();
          - sif->add_dev();
            - cpufreq_add_dev();
              - get_cpu_device(); //FAILS
      - per_cpu(cpu_sys_devices, num) = &cpu->dev; //used by get_cpu_device()
      - return 0; //CPU registered successfully
    
    Because the per-cpu variable cpu_sys_devices is set only after the CPU
    device is regsitered, cpufreq will never be able to get it when
    cpufreq_add_dev() is called.
    
    This patch avoids this failure by making sure device structure of at
    least CPU0 is available when the cpufreq driver is registered, else
    return -EPROBE_DEFER.
    
    Reported-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Co-developed-by: Amit Kucheria <amit.kucheria@linaro.org>
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Tested-by: Amit Kucheria <amit.kucheria@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b524ed1fa05d4e2fef31b47da5abc053cadebd2
Author: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Date:   Wed Oct 16 15:45:39 2019 +0100

    parport: load lowlevel driver if ports not found
    
    [ Upstream commit 231ec2f24dad18d021b361045bbd618ba62a274e ]
    
    Usually all the distro will load the parport low level driver as part
    of their initialization. But we can get into a situation where all the
    parallel port drivers are built as module and we unload all the modules
    at a later time. Then if we just do "modprobe parport" it will only
    load the parport module and will not load the low level driver which
    will actually register the ports. So, check the bus if there is any
    parport registered, if not, load the low level driver.
    
    We can get into the above situation with all distro but only Suse has
    setup the alias for "parport_lowlevel" and so it only works in Suse.
    Users of Debian based distro will need to load the lowlevel module
    manually.
    
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Link: https://lore.kernel.org/r/20191016144540.18810-3-sudipm.mukherjee@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b391d3fe8ad79403521f866d2c7e7df7eec49dbe
Author: Ilya Leoshkevich <iii@linux.ibm.com>
Date:   Thu Oct 31 18:25:16 2019 +0100

    s390/disassembler: don't hide instruction addresses
    
    [ Upstream commit 544f1d62e3e6c6e6d17a5e56f6139208acb5ff46 ]
    
    Due to kptr_restrict, JITted BPF code is now displayed like this:
    
    000000000b6ed1b2: ebdff0800024  stmg    %r13,%r15,128(%r15)
    000000004cde2ba0: 41d0f040      la      %r13,64(%r15)
    00000000fbad41b0: a7fbffa0      aghi    %r15,-96
    
    Leaking kernel addresses to dmesg is not a concern in this case, because
    this happens only when JIT debugging is explicitly activated, which only
    root can do.
    
    Use %px in this particular instance, and also to print an instruction
    address in show_code and PCREL (e.g. brasl) arguments in print_insn.
    While at present functionally equivalent to %016lx, %px is recommended
    by Documentation/core-api/printk-formats.rst for such cases.
    
    Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
    Reviewed-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c6202094a4f8a395e563b67be9f7a5923111f63
Author: Yu-Hsuan Hsu <yuhsuan@chromium.org>
Date:   Tue Sep 24 00:29:40 2019 +0800

    ASoC: Intel: kbl_rt5663_rt5514_max98927: Add dmic format constraint
    
    [ Upstream commit e2db787bdcb4f2722ecf410168f0583764634e45 ]
    
    On KBL platform, the microphone is attached to external codec(rt5514)
    instead of PCH. However, TDM slot between PCH and codec is 16 bits only.
    In order to avoid setting wrong format, we should add a constraint to
    force to use 16 bits format forever.
    
    Signed-off-by: Yu-Hsuan Hsu <yuhsuan@chromium.org>
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20190923162940.199580-1-yuhsuan@chromium.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e83f9a617d27418978aa294b1328580c7614596d
Author: Ben Zhang <benzh@chromium.org>
Date:   Tue Nov 5 17:13:30 2019 -0800

    ASoC: rt5677: Mark reg RT5677_PWR_ANLG2 as volatile
    
    [ Upstream commit eabf424f7b60246c76dcb0ea6f1e83ef9abbeaa6 ]
    
    The codec dies when RT5677_PWR_ANLG2(MX-64h) is set to 0xACE1
    while it's streaming audio over SPI. The DSP firmware turns
    on PLL2 (MX-64 bit 8) when SPI streaming starts.  However regmap
    does not believe that register can change by itself. When
    BST1 (bit 15) is turned on with regmap_update_bits(), it doesn't
    read the register first before write, so PLL2 power bit is
    cleared by accident.
    
    Marking MX-64h as volatile in regmap solved the issue.
    
    Signed-off-by: Ben Zhang <benzh@chromium.org>
    Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
    Link: https://lore.kernel.org/r/20191106011335.223061-6-cujomalainey@chromium.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dad729c48e9d61d03a512a36ba9947f8541e2009
Author: Chuhong Yuan <hslester96@gmail.com>
Date:   Sat Nov 9 16:09:43 2019 +0800

    spi: pxa2xx: Add missed security checks
    
    [ Upstream commit 5eb263ef08b5014cfc2539a838f39d2fd3531423 ]
    
    pxa2xx_spi_init_pdata misses checks for devm_clk_get and
    platform_get_irq.
    Add checks for them to fix the bugs.
    
    Since ssp->clk and ssp->irq are used in probe, they are mandatory here.
    So we cannot use _optional() for devm_clk_get and platform_get_irq.
    
    Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
    Link: https://lore.kernel.org/r/20191109080943.30428-1-hslester96@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5c1ddeae6945b19cd7728f4dfcefa7fae3e4a40
Author: Robert Richter <rrichter@marvell.com>
Date:   Wed Nov 6 09:33:23 2019 +0000

    EDAC/ghes: Fix grain calculation
    
    [ Upstream commit 7088e29e0423d3195e09079b4f849ec4837e5a75 ]
    
    The current code to convert a physical address mask to a grain
    (defined as granularity in bytes) is:
    
            e->grain = ~(mem_err->physical_addr_mask & ~PAGE_MASK);
    
    This is broken in several ways:
    
    1) It calculates to wrong grain values. E.g., a physical address mask
    of ~0xfff should give a grain of 0x1000. Without considering
    PAGE_MASK, there is an off-by-one. Things are worse when also
    filtering it with ~PAGE_MASK. This will calculate to a grain with the
    upper bits set. In the example it even calculates to ~0.
    
    2) The grain does not depend on and is unrelated to the kernel's
    page-size. The page-size only matters when unmapping memory in
    memory_failure(). Smaller grains are wrongly rounded up to the
    page-size, on architectures with a configurable page-size (e.g. arm64)
    this could round up to the even bigger page-size of the hypervisor.
    
    Fix this with:
    
            e->grain = ~mem_err->physical_addr_mask + 1;
    
    The grain_bits are defined as:
    
            grain = 1 << grain_bits;
    
    Change also the grain_bits calculation accordingly, it is the same
    formula as in edac_mc.c now and the code can be unified.
    
    The value in ->physical_addr_mask coming from firmware is assumed to
    be contiguous, but this is not sanity-checked. However, in case the
    mask is non-contiguous, a conversion to grain_bits effectively
    converts the grain bit mask to a power of 2 by rounding it up.
    
    Suggested-by: James Morse <james.morse@arm.com>
    Signed-off-by: Robert Richter <rrichter@marvell.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Cc: "linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>
    Cc: Tony Luck <tony.luck@intel.com>
    Link: https://lkml.kernel.org/r/20191106093239.25517-11-rrichter@marvell.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8d065728cc900d2b101b39812a5e75f66e7216c
Author: Chuhong Yuan <hslester96@gmail.com>
Date:   Sun Nov 10 07:28:15 2019 +0100

    media: si470x-i2c: add missed operations in remove
    
    [ Upstream commit 2df200ab234a86836a8879a05a8007d6b884eb14 ]
    
    The driver misses calling v4l2_ctrl_handler_free and
    v4l2_device_unregister in remove like what is done in probe failure.
    Add the calls to fix it.
    
    Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1efdc4adb450903c1fb2d383c189129f6dcf444a
Author: Mike Isely <isely@pobox.com>
Date:   Wed Nov 6 12:11:14 2019 +0100

    media: pvrusb2: Fix oops on tear-down when radio support is not present
    
    [ Upstream commit 7f404ae9cf2a285f73b3c18ab9303d54b7a3d8e1 ]
    
    In some device configurations there's no radio or radio support in the
    driver.  That's OK, as the driver sets itself up accordingly.  However
    on tear-down in these caes it's still trying to tear down radio
    related context when there isn't anything there, leading to
    dereferences through a null pointer and chaos follows.
    
    How this bug survived unfixed for 11 years in the pvrusb2 driver is a
    mystery to me.
    
    [hverkuil: fix two checkpatch warnings]
    
    Signed-off-by: Mike Isely <isely@pobox.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 57c99b5a08e72a8b6086bfdb61fb6f1c8f7c4233
Author: Andrew Jeffery <andrew@aj.id.au>
Date:   Fri Nov 8 15:49:39 2019 +1030

    fsi: core: Fix small accesses and unaligned offsets via sysfs
    
    [ Upstream commit 9f4c2b516b4f031e3cd0e45957f4150b3c1a083d ]
    
    Subtracting the offset delta from four-byte alignment lead to wrapping
    of the requested length where `count` is less than `off`. Generalise the
    length handling to enable and optimise aligned access sizes for all
    offset and size combinations. The new formula produces the following
    results for given offset and count values:
    
        offset  count | length
        --------------+-------
        0       1     | 1
        0       2     | 2
        0       3     | 2
        0       4     | 4
        0       5     | 4
        1       1     | 1
        1       2     | 1
        1       3     | 1
        1       4     | 1
        1       5     | 1
        2       1     | 1
        2       2     | 2
        2       3     | 2
        2       4     | 2
        2       5     | 2
        3       1     | 1
        3       2     | 1
        3       3     | 1
        3       4     | 1
        3       5     | 1
    
    We might need something like this for the cfam chardevs as well, for
    example we don't currently implement any alignment restrictions /
    handling in the hardware master driver.
    
    Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
    Signed-off-by: Joel Stanley <joel@jms.id.au>
    Link: https://lore.kernel.org/r/20191108051945.7109-6-joel@jms.id.au
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ca36cb7f4c06650f22cb9e5f3ad75afa6ca8e0a3
Author: Miaoqing Pan <miaoqing@codeaurora.org>
Date:   Wed Nov 6 20:04:37 2019 +0200

    ath10k: fix get invalid tx rate for Mesh metric
    
    [ Upstream commit 05a11003a56507023f18d3249a4d4d119c0a3e9c ]
    
    ath10k does not provide transmit rate info per MSDU
    in tx completion, mark that as -1 so mac80211
    will ignore the rates. This fixes mac80211 update Mesh
    link metric with invalid transmit rate info.
    
    Tested HW: QCA9984
    Tested FW: 10.4-3.9.0.2-00035
    
    Signed-off-by: Hou Bao Hou <houbao@codeaurora.org>
    Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org>
    Signed-off-by: Miaoqing Pan <miaoqing@codeaurora.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 361b2a9cd86730eb028e16b95904b415f1c8dc31
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Oct 30 16:09:30 2019 +0900

    perf probe: Filter out instances except for inlined subroutine and subprogram
    
    [ Upstream commit da6cb952a89efe24bb76c4971370d485737a2d85 ]
    
    Filter out instances except for inlined_subroutine and subprogram DIE in
    die_walk_instances() and die_is_func_instance().
    
    This fixes an issue that perf probe sets some probes on calling address
    instead of a target function itself.
    
    When perf probe walks on instances of an abstruct origin (a kind of
    function prototype of inlined function), die_walk_instances() can also
    pass a GNU_call_site (a GNU extension for call site) to callback. Since
    it is not an inlined instance of target function, we have to filter out
    when searching a probe point.
    
    Without this patch, perf probe sets probes on call site address too.This
    can happen on some function which is marked "inlined", but has actual
    symbol. (I'm not sure why GCC mark it "inlined"):
    
      # perf probe -D vfs_read
      p:probe/vfs_read _text+2500017
      p:probe/vfs_read_1 _text+2499468
      p:probe/vfs_read_2 _text+2499563
      p:probe/vfs_read_3 _text+2498876
      p:probe/vfs_read_4 _text+2498512
      p:probe/vfs_read_5 _text+2498627
    
    With this patch:
    
    Slightly different results, similar tho:
    
      # perf probe -D vfs_read
      p:probe/vfs_read _text+2498512
    
    Committer testing:
    
      # uname -a
      Linux quaco 5.3.8-200.fc30.x86_64 #1 SMP Tue Oct 29 14:46:22 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
    
    Before:
    
      # perf probe -D vfs_read
      p:probe/vfs_read _text+3131557
      p:probe/vfs_read_1 _text+3130975
      p:probe/vfs_read_2 _text+3131047
      p:probe/vfs_read_3 _text+3130380
      p:probe/vfs_read_4 _text+3130000
      # uname -a
      Linux quaco 5.3.8-200.fc30.x86_64 #1 SMP Tue Oct 29 14:46:22 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
      #
    
    After:
    
      # perf probe -D vfs_read
      p:probe/vfs_read _text+3130000
      #
    
    Fixes: db0d2c6420ee ("perf probe: Search concrete out-of-line instances")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157241937063.32002.11024544873990816590.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c9560d9168aecbc6dcdbd6e84a45d68f48b20b9e
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Oct 30 16:09:21 2019 +0900

    perf probe: Skip end-of-sequence and non statement lines
    
    [ Upstream commit f4d99bdfd124823a81878b44b5e8750b97f73902 ]
    
    Skip end-of-sequence and non-statement lines while walking through lines
    list.
    
    The "end-of-sequence" line information means:
    
     "the current address is that of the first byte after the
      end of a sequence of target machine instructions."
     (DWARF version 4 spec 6.2.2)
    
    This actually means out of scope and we can not probe on it.
    
    On the other hand, the statement lines (is_stmt) means:
    
     "the current instruction is a recommended breakpoint location.
      A recommended breakpoint location is intended to “represent”
      a line, a statement and/or a semantically distinct subpart
      of a statement."
    
     (DWARF version 4 spec 6.2.2)
    
    So, non-statement line info also should be skipped.
    
    These can reduce unneeded probe points and also avoid an error.
    
    E.g. without this patch:
    
      # perf probe -a "clear_tasks_mm_cpumask:1"
      Added new events:
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask:1)
        probe:clear_tasks_mm_cpumask_1 (on clear_tasks_mm_cpumask:1)
        probe:clear_tasks_mm_cpumask_2 (on clear_tasks_mm_cpumask:1)
        probe:clear_tasks_mm_cpumask_3 (on clear_tasks_mm_cpumask:1)
        probe:clear_tasks_mm_cpumask_4 (on clear_tasks_mm_cpumask:1)
    
      You can now use it in all perf tools, such as:
    
            perf record -e probe:clear_tasks_mm_cpumask_4 -aR sleep 1
    
      #
    
    This puts 5 probes on one line, but acutally it's not inlined function.
    This is because there are many non statement instructions at the
    function prologue.
    
    With this patch:
    
      # perf probe -a "clear_tasks_mm_cpumask:1"
      Added new event:
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask:1)
    
      You can now use it in all perf tools, such as:
    
            perf record -e probe:clear_tasks_mm_cpumask -aR sleep 1
    
      #
    
    Now perf-probe skips unneeded addresses.
    
    Committer testing:
    
    Slightly different results, but similar:
    
    Before:
    
      # uname -a
      Linux quaco 5.3.8-200.fc30.x86_64 #1 SMP Tue Oct 29 14:46:22 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
      #
      # perf probe -a "clear_tasks_mm_cpumask:1"
      Added new events:
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask:1)
        probe:clear_tasks_mm_cpumask_1 (on clear_tasks_mm_cpumask:1)
        probe:clear_tasks_mm_cpumask_2 (on clear_tasks_mm_cpumask:1)
    
      You can now use it in all perf tools, such as:
    
            perf record -e probe:clear_tasks_mm_cpumask_2 -aR sleep 1
    
      #
    
    After:
    
      # perf probe -a "clear_tasks_mm_cpumask:1"
      Added new event:
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask:1)
    
      You can now use it in all perf tools, such as:
    
            perf record -e probe:clear_tasks_mm_cpumask -aR sleep 1
    
      # perf probe -l
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask@kernel/cpu.c)
      #
    
    Fixes: 4cc9cec636e7 ("perf probe: Introduce lines walker interface")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157241936090.32002.12156347518596111660.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c00f4acafc9122e9c0d6e7347d316ed6d8b44284
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Oct 30 16:09:40 2019 +0900

    perf probe: Fix to show calling lines of inlined functions
    
    [ Upstream commit 86c0bf8539e7f46d91bd105e55eda96e0064caef ]
    
    Fix to show calling lines of inlined functions (where an inline function
    is called).
    
    die_walk_lines() filtered out the lines inside inlined functions based
    on the address. However this also filtered out the lines which call
    those inlined functions from the target function.
    
    To solve this issue, check the call_file and call_line attributes and do
    not filter out if it matches to the line information.
    
    Without this fix, perf probe -L doesn't show some lines correctly.
    (don't see the lines after 17)
    
      # perf probe -L vfs_read
      <vfs_read@/home/mhiramat/ksrc/linux/fs/read_write.c:0>
            0  ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
            1  {
            2         ssize_t ret;
    
            4         if (!(file->f_mode & FMODE_READ))
                              return -EBADF;
            6         if (!(file->f_mode & FMODE_CAN_READ))
                              return -EINVAL;
            8         if (unlikely(!access_ok(buf, count)))
                              return -EFAULT;
    
           11         ret = rw_verify_area(READ, file, pos, count);
           12         if (!ret) {
           13                 if (count > MAX_RW_COUNT)
                                      count =  MAX_RW_COUNT;
           15                 ret = __vfs_read(file, buf, count, pos);
           16                 if (ret > 0) {
                                      fsnotify_access(file);
                                      add_rchar(current, ret);
                              }
    
    With this fix:
    
      # perf probe -L vfs_read
      <vfs_read@/home/mhiramat/ksrc/linux/fs/read_write.c:0>
            0  ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
            1  {
            2         ssize_t ret;
    
            4         if (!(file->f_mode & FMODE_READ))
                              return -EBADF;
            6         if (!(file->f_mode & FMODE_CAN_READ))
                              return -EINVAL;
            8         if (unlikely(!access_ok(buf, count)))
                              return -EFAULT;
    
           11         ret = rw_verify_area(READ, file, pos, count);
           12         if (!ret) {
           13                 if (count > MAX_RW_COUNT)
                                      count =  MAX_RW_COUNT;
           15                 ret = __vfs_read(file, buf, count, pos);
           16                 if (ret > 0) {
           17                         fsnotify_access(file);
           18                         add_rchar(current, ret);
                              }
           20                 inc_syscr(current);
                      }
    
    Fixes: 4cc9cec636e7 ("perf probe: Introduce lines walker interface")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157241937995.32002.17899884017011512577.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5935b5993f3f85ae26149a1c2a88da9076cc1730
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Tue Nov 5 09:16:49 2019 +0900

    perf probe: Return a better scope DIE if there is no best scope
    
    [ Upstream commit c701636aeec4c173208697d68da6e4271125564b ]
    
    Make find_best_scope() returns innermost DIE at given address if there
    is no best matched scope DIE. Since Gcc sometimes generates intuitively
    strange line info which is out of inlined function address range, we
    need this fixup.
    
    Without this, sometimes perf probe failed to probe on a line inside an
    inlined function:
    
      # perf probe -D ksys_open:3
      Failed to find scope of probe point.
        Error: Failed to add events.
    
    With this fix, 'perf probe' can probe it:
    
      # perf probe -D ksys_open:3
      p:probe/ksys_open _text+25707308
      p:probe/ksys_open_1 _text+25710596
      p:probe/ksys_open_2 _text+25711114
      p:probe/ksys_open_3 _text+25711343
      p:probe/ksys_open_4 _text+25714058
      p:probe/ksys_open_5 _text+2819653
      p:probe/ksys_open_6 _text+2819701
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
    Link: http://lore.kernel.org/lkml/157291300887.19771.14936015360963292236.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8f664b2e9b43168b0a11b1171f0f57cdabfccc30
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Oct 30 16:09:49 2019 +0900

    perf probe: Skip overlapped location on searching variables
    
    [ Upstream commit dee36a2abb67c175265d49b9a8c7dfa564463d9a ]
    
    Since debuginfo__find_probes() callback function can be called with  the
    location which already passed, the callback function must filter out
    such overlapped locations.
    
    add_probe_trace_event() has already done it by commit 1a375ae7659a
    ("perf probe: Skip same probe address for a given line"), but
    add_available_vars() doesn't. Thus perf probe -v shows same address
    repeatedly as below:
    
      # perf probe -V vfs_read:18
      Available variables at vfs_read:18
              @<vfs_read+217>
                      char*   buf
                      loff_t* pos
                      ssize_t ret
                      struct file*    file
              @<vfs_read+217>
                      char*   buf
                      loff_t* pos
                      ssize_t ret
                      struct file*    file
              @<vfs_read+226>
                      char*   buf
                      loff_t* pos
                      ssize_t ret
                      struct file*    file
    
    With this fix, perf probe -V shows it correctly:
    
      # perf probe -V vfs_read:18
      Available variables at vfs_read:18
              @<vfs_read+217>
                      char*   buf
                      loff_t* pos
                      ssize_t ret
                      struct file*    file
              @<vfs_read+226>
                      char*   buf
                      loff_t* pos
                      ssize_t ret
                      struct file*    file
    
    Fixes: cf6eb489e5c0 ("perf probe: Show accessible local variables")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157241938927.32002.4026859017790562751.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9dff39a5fa7728402727a901a1b34a6875f66dc1
Author: Ian Rogers <irogers@google.com>
Date:   Wed Oct 30 15:34:46 2019 -0700

    perf parse: If pmu configuration fails free terms
    
    [ Upstream commit 38f2c4226e6bc3e8c41c318242821ba5dc825aba ]
    
    Avoid a memory leak when the configuration fails.
    
    Signed-off-by: Ian Rogers <irogers@google.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Jin Yao <yao.jin@linux.intel.com>
    Cc: John Garry <john.garry@huawei.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Martin KaFai Lau <kafai@fb.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Song Liu <songliubraving@fb.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Yonghong Song <yhs@fb.com>
    Cc: bpf@vger.kernel.org
    Cc: clang-built-linux@googlegroups.com
    Cc: netdev@vger.kernel.org
    Link: http://lore.kernel.org/lkml/20191030223448.12930-9-irogers@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e54d9ee1b1ac31fcb420c1943abc3e481ce8b6aa
Author: Pan Bian <bianpan2016@163.com>
Date:   Wed Nov 6 17:14:45 2019 +0800

    drm/amdgpu: fix potential double drop fence reference
    
    [ Upstream commit 946ab8db6953535a3a88c957db8328beacdfed9d ]
    
    The object fence is not set to NULL after its reference is dropped. As a
    result, its reference may be dropped again if error occurs after that,
    which may lead to a use after free bug. To avoid the issue, fence is
    explicitly set to NULL after dropping its reference.
    
    Acked-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d622edacac43d1744d8b073daff78651028c268a
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Fri Oct 25 17:46:34 2019 +0900

    perf probe: Fix to probe a function which has no entry pc
    
    [ Upstream commit 5d16dbcc311d91267ddb45c6da4f187be320ecee ]
    
    Fix 'perf probe' to probe a function which has no entry pc or low pc but
    only has ranges attribute.
    
    probe_point_search_cb() uses dwarf_entrypc() to get the probe address,
    but that doesn't work for the function DIE which has only ranges
    attribute. Use die_entrypc() instead.
    
    Without this fix:
    
      # perf probe -k ../build-x86_64/vmlinux -D clear_tasks_mm_cpumask:0
      Probe point 'clear_tasks_mm_cpumask' not found.
        Error: Failed to add events.
    
    With this:
    
      # perf probe -k ../build-x86_64/vmlinux -D clear_tasks_mm_cpumask:0
      p:probe/clear_tasks_mm_cpumask clear_tasks_mm_cpumask+0
    
    Committer testing:
    
    Before:
    
      [root@quaco ~]# perf probe clear_tasks_mm_cpumask:0
      Probe point 'clear_tasks_mm_cpumask' not found.
        Error: Failed to add events.
      [root@quaco ~]#
    
    After:
    
      [root@quaco ~]# perf probe clear_tasks_mm_cpumask:0
      Added new event:
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask)
    
      You can now use it in all perf tools, such as:
    
            perf record -e probe:clear_tasks_mm_cpumask -aR sleep 1
    
      [root@quaco ~]#
    
    Using it with 'perf trace':
    
      [root@quaco ~]# perf trace -e probe:clear_tasks_mm_cpumask
    
    Doesn't seem to be used in x86_64:
    
      $ find . -name "*.c" | xargs grep clear_tasks_mm_cpumask
      ./kernel/cpu.c: * clear_tasks_mm_cpumask - Safely clear tasks' mm_cpumask for a CPU
      ./kernel/cpu.c:void clear_tasks_mm_cpumask(int cpu)
      ./arch/xtensa/kernel/smp.c:   clear_tasks_mm_cpumask(cpu);
      ./arch/csky/kernel/smp.c:     clear_tasks_mm_cpumask(cpu);
      ./arch/sh/kernel/smp.c:       clear_tasks_mm_cpumask(cpu);
      ./arch/arm/kernel/smp.c:      clear_tasks_mm_cpumask(cpu);
      ./arch/powerpc/mm/nohash/mmu_context.c:       clear_tasks_mm_cpumask(cpu);
      $ find . -name "*.h" | xargs grep clear_tasks_mm_cpumask
      ./include/linux/cpu.h:void clear_tasks_mm_cpumask(int cpu);
      $ find . -name "*.S" | xargs grep clear_tasks_mm_cpumask
      $
    
    Fixes: e1ecbbc3fa83 ("perf probe: Fix to handle optimized not-inlined functions")
    Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157199319438.8075.4695576954550638618.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b41920540deb197461ef7cb479c0a3d45f356da2
Author: James Clark <James.Clark@arm.com>
Date:   Mon Oct 28 11:34:01 2019 +0000

    libsubcmd: Use -O0 with DEBUG=1
    
    [ Upstream commit 22bd8f1b5a1dd168ba4eba27cb17643a11012f5d ]
    
    When a 'make DEBUG=1' build is done, the command parser is still built
    with -O6 and is hard to step through, fix it making it use -O0 in that
    case.
    
    Signed-off-by: James Clark <james.clark@arm.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: nd <nd@arm.com>
    Link: http://lore.kernel.org/lkml/20191028113340.4282-1-james.clark@arm.com
    [ split from a larger patch ]
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e19d77602f23d1d06ed6e00a498b78c7caf46ec9
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Fri Oct 25 17:47:01 2019 +0900

    perf probe: Fix to show inlined function callsite without entry_pc
    
    [ Upstream commit 18e21eb671dc87a4f0546ba505a89ea93598a634 ]
    
    Fix 'perf probe --line' option to show inlined function callsite lines
    even if the function DIE has only ranges.
    
    Without this:
    
      # perf probe -L amd_put_event_constraints
      ...
          2  {
          3         if (amd_has_nb(cpuc) && amd_is_nb_event(&event->hw))
                            __amd_put_nb_event_constraints(cpuc, event);
          5  }
    
    With this patch:
    
      # perf probe -L amd_put_event_constraints
      ...
          2  {
          3         if (amd_has_nb(cpuc) && amd_is_nb_event(&event->hw))
          4                 __amd_put_nb_event_constraints(cpuc, event);
          5  }
    
    Committer testing:
    
    Before:
    
      [root@quaco ~]# perf probe -L amd_put_event_constraints
      <amd_put_event_constraints@/usr/src/debug/kernel-5.2.fc30/linux-5.2.18-200.fc30.x86_64/arch/x86/events/amd/core.c:0>
            0  static void amd_put_event_constraints(struct cpu_hw_events *cpuc,
                                                    struct perf_event *event)
            2  {
            3         if (amd_has_nb(cpuc) && amd_is_nb_event(&event->hw))
                              __amd_put_nb_event_constraints(cpuc, event);
            5  }
    
               PMU_FORMAT_ATTR(event, "config:0-7,32-35");
               PMU_FORMAT_ATTR(umask, "config:8-15"   );
    
      [root@quaco ~]#
    
    After:
    
      [root@quaco ~]# perf probe -L amd_put_event_constraints
      <amd_put_event_constraints@/usr/src/debug/kernel-5.2.fc30/linux-5.2.18-200.fc30.x86_64/arch/x86/events/amd/core.c:0>
            0  static void amd_put_event_constraints(struct cpu_hw_events *cpuc,
                                                    struct perf_event *event)
            2  {
            3         if (amd_has_nb(cpuc) && amd_is_nb_event(&event->hw))
            4                 __amd_put_nb_event_constraints(cpuc, event);
            5  }
    
               PMU_FORMAT_ATTR(event, "config:0-7,32-35");
               PMU_FORMAT_ATTR(umask, "config:8-15"   );
    
      [root@quaco ~]# perf probe amd_put_event_constraints:4
      Added new event:
        probe:amd_put_event_constraints (on amd_put_event_constraints:4)
    
      You can now use it in all perf tools, such as:
    
            perf record -e probe:amd_put_event_constraints -aR sleep 1
    
      [root@quaco ~]#
    
      [root@quaco ~]# perf probe -l
        probe:amd_put_event_constraints (on amd_put_event_constraints:4@arch/x86/events/amd/core.c)
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask@kernel/cpu.c)
      [root@quaco ~]#
    
    Using it:
    
      [root@quaco ~]# perf trace -e probe:*
      ^C[root@quaco ~]#
    
    Ok, Intel system here... :-)
    
    Fixes: 4cc9cec636e7 ("perf probe: Introduce lines walker interface")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157199322107.8075.12659099000567865708.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41d3087d6dcc8a7973b4b60c629f6b8afe96c14e
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Fri Oct 25 17:47:10 2019 +0900

    perf probe: Fix to show ranges of variables in functions without entry_pc
    
    [ Upstream commit af04dd2f8ebaa8fbd46f698714acbf43da14da45 ]
    
    Fix to show ranges of variables (--range and --vars option) in functions
    which DIE has only ranges but no entry_pc attribute.
    
    Without this fix:
    
      # perf probe --range -V clear_tasks_mm_cpumask
      Available variables at clear_tasks_mm_cpumask
            @<clear_tasks_mm_cpumask+0>
                    (No matched variables)
    
    With this fix:
    
      # perf probe --range -V clear_tasks_mm_cpumask
      Available variables at clear_tasks_mm_cpumask
            @<clear_tasks_mm_cpumask+0>
                    [VAL]   int     cpu     @<clear_tasks_mm_cpumask+[0-35,317-317,2052-2059]>
    
    Committer testing:
    
    Before:
    
      [root@quaco ~]# perf probe --range -V clear_tasks_mm_cpumask
      Available variables at clear_tasks_mm_cpumask
              @<clear_tasks_mm_cpumask+0>
                      (No matched variables)
      [root@quaco ~]#
    
    After:
    
      [root@quaco ~]# perf probe --range -V clear_tasks_mm_cpumask
      Available variables at clear_tasks_mm_cpumask
              @<clear_tasks_mm_cpumask+0>
                      [VAL]   int     cpu     @<clear_tasks_mm_cpumask+[0-23,23-105,105-106,106-106,1843-1850,1850-1862]>
      [root@quaco ~]#
    
    Using it:
    
      [root@quaco ~]# perf probe clear_tasks_mm_cpumask cpu
      Added new event:
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask with cpu)
    
      You can now use it in all perf tools, such as:
    
            perf record -e probe:clear_tasks_mm_cpumask -aR sleep 1
    
      [root@quaco ~]# perf probe -l
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask@kernel/cpu.c with cpu)
      [root@quaco ~]#
      [root@quaco ~]# perf trace -e probe:*cpumask
      ^C[root@quaco ~]#
    
    Fixes: 349e8d261131 ("perf probe: Add --range option to show a variable's location range")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157199323018.8075.8179744380479673672.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cebb762e56ebab6abde72e87d5a44d54cd159e22
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Fri Oct 25 17:46:43 2019 +0900

    perf probe: Fix to probe an inline function which has no entry pc
    
    [ Upstream commit eb6933b29d20bf2c3053883d409a53f462c1a3ac ]
    
    Fix perf probe to probe an inlne function which has no entry pc
    or low pc but only has ranges attribute.
    
    This seems very rare case, but I could find a few examples, as
    same as probe_point_search_cb(), use die_entrypc() to get the
    entry address in probe_point_inline_cb() too.
    
    Without this patch:
    
      # perf probe -D __amd_put_nb_event_constraints
      Failed to get entry address of __amd_put_nb_event_constraints.
      Probe point '__amd_put_nb_event_constraints' not found.
        Error: Failed to add events.
    
    With this patch:
    
      # perf probe -D __amd_put_nb_event_constraints
      p:probe/__amd_put_nb_event_constraints amd_put_event_constraints+43
    
    Committer testing:
    
    Before:
    
      [root@quaco ~]# perf probe -D __amd_put_nb_event_constraints
      Failed to get entry address of __amd_put_nb_event_constraints.
      Probe point '__amd_put_nb_event_constraints' not found.
        Error: Failed to add events.
      [root@quaco ~]#
    
    After:
    
      [root@quaco ~]# perf probe -D __amd_put_nb_event_constraints
      p:probe/__amd_put_nb_event_constraints _text+33789
      [root@quaco ~]#
    
    Fixes: 4ea42b181434 ("perf: Add perf probe subcommand, a kprobe-event setup helper")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157199320336.8075.16189530425277588587.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0fe578acbe986ae6d080f5839a7ed9f0eb76b54c
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Thu Oct 24 18:12:45 2019 +0900

    perf probe: Walk function lines in lexical blocks
    
    [ Upstream commit acb6a7047ac2146b723fef69ee1ab6b7143546bf ]
    
    Since some inlined functions are in lexical blocks of given function, we
    have to recursively walk through the DIE tree.  Without this fix,
    perf-probe -L can miss the inlined functions which is in a lexical block
    (like if (..) { func() } case.)
    
    However, even though, to walk the lines in a given function, we don't
    need to follow the children DIE of inlined functions because those do
    not have any lines in the specified function.
    
    We need to walk though whole trees only if we walk all lines in a given
    file, because an inlined function can include another inlined function
    in the same file.
    
    Fixes: b0e9cb2802d4 ("perf probe: Fix to search nested inlined functions in CU")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157190836514.1859.15996864849678136353.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 32ee45d86c5e8191d3408c2d0403fbefc29230cf
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Fri Oct 25 17:46:52 2019 +0900

    perf probe: Fix to list probe event with correct line number
    
    [ Upstream commit 3895534dd78f0fd4d3f9e05ee52b9cdd444a743e ]
    
    Since debuginfo__find_probe_point() uses dwarf_entrypc() for finding the
    entry address of the function on which a probe is, it will fail when the
    function DIE has only ranges attribute.
    
    To fix this issue, use die_entrypc() instead of dwarf_entrypc().
    
    Without this fix, perf probe -l shows incorrect offset:
    
      # perf probe -l
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask+18446744071579263632@work/linux/linux/kernel/cpu.c)
        probe:clear_tasks_mm_cpumask_1 (on clear_tasks_mm_cpumask+18446744071579263752@work/linux/linux/kernel/cpu.c)
    
    With this:
    
      # perf probe -l
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask@work/linux/linux/kernel/cpu.c)
        probe:clear_tasks_mm_cpumask_1 (on clear_tasks_mm_cpumask:21@work/linux/linux/kernel/cpu.c)
    
    Committer testing:
    
    Before:
    
      [root@quaco ~]# perf probe -l
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask+18446744071579765152@kernel/cpu.c)
      [root@quaco ~]#
    
    After:
    
      [root@quaco ~]# perf probe -l
        probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask@kernel/cpu.c)
      [root@quaco ~]#
    
    Fixes: 1d46ea2a6a40 ("perf probe: Fix listing incorrect line number with inline function")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157199321227.8075.14655572419136993015.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5fceb353b924c3674a2a3ac14bdaa87040ab57f4
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Thu Oct 24 18:12:36 2019 +0900

    perf probe: Fix to find range-only function instance
    
    [ Upstream commit b77afa1f810f37bd8a36cb1318178dfe2d7af6b6 ]
    
    Fix die_is_func_instance() to find range-only function instance.
    
    In some case, a function instance can be made without any low PC or
    entry PC, but only with address ranges by optimization.  (e.g. cold text
    partially in "text.unlikely" section) To find such function instance, we
    have to check the range attribute too.
    
    Fixes: e1ecbbc3fa83 ("perf probe: Fix to handle optimized not-inlined functions")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157190835669.1859.8368628035930950596.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6cb5c8d002eadfb1a58d7db753c5d57459a81fed
Author: Ping-Ke Shih <pkshih@realtek.com>
Date:   Tue Nov 5 10:18:38 2019 +0800

    rtlwifi: fix memory leak in rtl92c_set_fw_rsvdpagepkt()
    
    [ Upstream commit 5174f1e41074b5186608badc2e89441d021e8c08 ]
    
    This leak was found by testing the EDIMAX EW-7612 on Raspberry Pi 3B+ with
    Linux 5.4-rc5 (multi_v7_defconfig + rtlwifi + kmemleak) and noticed a
    single memory leak during probe:
    
    unreferenced object 0xec13ee40 (size 176):
      comm "kworker/u8:1", pid 36, jiffies 4294939321 (age 5580.790s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<fc1bbb3e>] __netdev_alloc_skb+0x9c/0x164
        [<863dfa6e>] rtl92c_set_fw_rsvdpagepkt+0x254/0x340 [rtl8192c_common]
        [<9572be0d>] rtl92cu_set_hw_reg+0xf48/0xfa4 [rtl8192cu]
        [<116df4d8>] rtl_op_bss_info_changed+0x234/0x96c [rtlwifi]
        [<8933575f>] ieee80211_bss_info_change_notify+0xb8/0x264 [mac80211]
        [<d4061e86>] ieee80211_assoc_success+0x934/0x1798 [mac80211]
        [<e55adb56>] ieee80211_rx_mgmt_assoc_resp+0x174/0x314 [mac80211]
        [<5974629e>] ieee80211_sta_rx_queued_mgmt+0x3f4/0x7f0 [mac80211]
        [<d91091c6>] ieee80211_iface_work+0x208/0x318 [mac80211]
        [<ac5fcae4>] process_one_work+0x22c/0x564
        [<f5e6d3b6>] worker_thread+0x44/0x5d8
        [<82c7b073>] kthread+0x150/0x154
        [<b43e1b7d>] ret_from_fork+0x14/0x2c
        [<794dff30>] 0x0
    
    It is because 8192cu doesn't implement usb_cmd_send_packet(), and this
    patch just frees the skb within the function to resolve memleak problem
    by now. Since 8192cu doesn't turn on fwctrl_lps that needs to download
    command packet for firmware via the function, applying this patch doesn't
    affect driver behavior.
    
    Reported-by: Stefan Wahren <wahrenst@gmx.net>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 62c94beda69786d7e988f99e2dbabd1be96d5bd7
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 6 16:42:57 2019 +0100

    ALSA: timer: Limit max amount of slave instances
    
    [ Upstream commit fdea53fe5de532969a332d6e5e727f2ad8bf084d ]
    
    The fuzzer tries to open the timer instances as much as possible, and
    this may cause a system hiccup easily.  We've already introduced the
    cap for the max number of available instances for the h/w timers, and
    we should put such a limit also to the slave timers, too.
    
    This patch introduces the limit to the multiple opened slave timers.
    The upper limit is hard-coded to 1000 for now, which should suffice
    for any practical usages up to now.
    
    Link: https://lore.kernel.org/r/20191106154257.5853-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6021cd87982255b7c7518e69cec1c78241e5d36d
Author: Pan Bian <bianpan2016@163.com>
Date:   Wed Nov 6 10:36:09 2019 +0800

    spi: img-spfi: fix potential double release
    
    [ Upstream commit e9a8ba9769a0e354341bc6cc01b98aadcea1dfe9 ]
    
    The channels spfi->tx_ch and spfi->rx_ch are not set to NULL after they
    are released. As a result, they will be released again, either on the
    error handling branch in the same function or in the corresponding
    remove function, i.e. img_spfi_remove(). This patch fixes the bug by
    setting the two members to NULL.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Link: https://lore.kernel.org/r/1573007769-20131-1-git-send-email-bianpan2016@163.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 44e2712909daca5390460ffefdfaaed0d080ca2d
Author: Manish Chopra <manishc@marvell.com>
Date:   Mon Nov 4 21:51:11 2019 -0800

    bnx2x: Fix PF-VF communication over multi-cos queues.
    
    [ Upstream commit dc5a3d79c345871439ffe72550b604fcde9770e1 ]
    
    PF driver doesn't enable tx-switching for all cos queues/clients,
    which causes packets drop from PF to VF. Fix this by enabling
    tx-switching on all cos queues/clients.
    
    Signed-off-by: Manish Chopra <manishc@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7a6c8ec56d804daa10879fce35843fe84da0ea4
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Thu Oct 24 19:40:42 2019 +0200

    rfkill: allocate static minor
    
    [ Upstream commit 8670b2b8b029a6650d133486be9d2ace146fd29a ]
    
    udev has a feature of creating /dev/<node> device-nodes if it finds
    a devnode:<node> modalias. This allows for auto-loading of modules that
    provide the node. This requires to use a statically allocated minor
    number for misc character devices.
    
    However, rfkill uses dynamic minor numbers and prevents auto-loading
    of the module. So allocate the next static misc minor number and use
    it for rfkill.
    
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Link: https://lore.kernel.org/r/20191024174042.19851-1-marcel@holtmann.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 29bfb2ee16b765b2150e03453aed33ba47578c2c
Author: Vandana BN <bnvandana@gmail.com>
Date:   Tue Oct 22 04:51:40 2019 -0300

    media: v4l2-core: fix touch support in v4l_g_fmt
    
    [ Upstream commit 545b618cfb5cadacd00c25066b9a36540e5ca9e9 ]
    
    v4l_s_fmt, for VFL_TYPE_TOUCH, sets unneeded members of
    the v4l2_pix_format structure to default values.This was
    missing in v4l_g_fmt, which would lead to failures in
    v4l2-compliance tests.
    
    Signed-off-by: Vandana BN <bnvandana@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3feec89682118fad5139e745c3453a4cf8580ef0
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Fri Oct 18 01:47:00 2019 -0300

    media: rcar_drif: fix a memory disclosure
    
    [ Upstream commit d39083234c60519724c6ed59509a2129fd2aed41 ]
    
    "f->fmt.sdr.reserved" is uninitialized. As other peer drivers
    like msi2500 and airspy do, the fix initializes it to avoid
    memory disclosures.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd423e4694eca922f15a40ccc862e19fe2c99b8e
Author: Manjunath Patil <manjunath.b.patil@oracle.com>
Date:   Sat Oct 5 08:20:03 2019 -0700

    ixgbe: protect TX timestamping from API misuse
    
    [ Upstream commit 07066d9dc3d2326fbad8f7b0cb0120cff7b7dedb ]
    
    HW timestamping can only be requested for a packet if the NIC is first
    setup via ioctl(SIOCSHWTSTAMP). If this step was skipped, then the ixgbe
    driver still allowed TX packets to request HW timestamping. In this
    situation, we see 'clearing Tx Timestamp hang' noise in the log.
    
    Fix this by checking that the NIC is configured for HW TX timestamping
    before accepting a HW TX timestamping request.
    
    Similar-to:
       commit 26bd4e2db06b ("igb: protect TX timestamping from API misuse")
       commit 0a6f2f05a2f5 ("igb: Fix a test with HWTSTAMP_TX_ON")
    
    Signed-off-by: Manjunath Patil <manjunath.b.patil@oracle.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 4ea31ac2bc4924c167b95e338d3ce4b264a9b535
Author: Ben Dooks (Codethink) <ben.dooks@codethink.co.uk>
Date:   Tue Oct 22 16:11:54 2019 +0100

    pinctrl: amd: fix __iomem annotation in amd_gpio_irq_handler()
    
    [ Upstream commit 10ff58aa3c2e2a093b6ad615a7e3d8bb0dc613e5 ]
    
    The regs pointer in amd_gpio_irq_handler() should have __iomem
    on it, so add that to fix the following sparse warnings:
    
    drivers/pinctrl/pinctrl-amd.c:555:14: warning: incorrect type in assignment (different address spaces)
    drivers/pinctrl/pinctrl-amd.c:555:14:    expected unsigned int [usertype] *regs
    drivers/pinctrl/pinctrl-amd.c:555:14:    got void [noderef] <asn:2> *base
    drivers/pinctrl/pinctrl-amd.c:563:34: warning: incorrect type in argument 1 (different address spaces)
    drivers/pinctrl/pinctrl-amd.c:563:34:    expected void const volatile [noderef] <asn:2> *addr
    drivers/pinctrl/pinctrl-amd.c:563:34:    got unsigned int [usertype] *
    drivers/pinctrl/pinctrl-amd.c:580:34: warning: incorrect type in argument 1 (different address spaces)
    drivers/pinctrl/pinctrl-amd.c:580:34:    expected void const volatile [noderef] <asn:2> *addr
    drivers/pinctrl/pinctrl-amd.c:580:34:    got unsigned int [usertype] *
    drivers/pinctrl/pinctrl-amd.c:587:25: warning: incorrect type in argument 2 (different address spaces)
    drivers/pinctrl/pinctrl-amd.c:587:25:    expected void volatile [noderef] <asn:2> *addr
    drivers/pinctrl/pinctrl-amd.c:587:25:    got unsigned int [usertype] *
    
    Signed-off-by: Ben Dooks (Codethink) <ben.dooks@codethink.co.uk>
    Link: https://lore.kernel.org/r/20191022151154.5986-1-ben.dooks@codethink.co.uk
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ccb2bae30094db6e8a57386d96f4a1701033307e
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Sun Nov 3 23:58:15 2019 +0200

    Bluetooth: Fix advertising duplicated flags
    
    [ Upstream commit 6012b9346d8959194c239fd60a62dfec98d43048 ]
    
    Instances may have flags set as part of its data in which case the code
    should not attempt to add it again otherwise it can cause duplication:
    
    < HCI Command: LE Set Extended Advertising Data (0x08|0x0037) plen 35
            Handle: 0x00
            Operation: Complete extended advertising data (0x03)
            Fragment preference: Minimize fragmentation (0x01)
            Data length: 0x06
            Flags: 0x04
              BR/EDR Not Supported
            Flags: 0x06
              LE General Discoverable Mode
              BR/EDR Not Supported
    
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 07debac18a320bd85c7b0e09f5d2daef5e4d0bb9
Author: Alexandru Ardelean <alexandru.ardelean@analog.com>
Date:   Wed Oct 23 11:26:34 2019 +0300

    iio: dln2-adc: fix iio_triggered_buffer_postenable() position
    
    [ Upstream commit a7bddfe2dfce1d8859422124abe1964e0ecd386e ]
    
    The iio_triggered_buffer_postenable() hook should be called first to
    attach the poll function. The iio_triggered_buffer_predisable() hook is
    called last (as is it should).
    
    This change moves iio_triggered_buffer_postenable() to be called first. It
    adds iio_triggered_buffer_predisable() on the error paths of the postenable
    hook.
    For the predisable hook, some code-paths have been changed to make sure
    that the iio_triggered_buffer_predisable() hook gets called in case there
    is an error before it.
    
    Signed-off-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 8f143cafa6f7b620923851a7c1a5442a44503b83
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu Oct 24 15:13:08 2019 +0200

    pinctrl: sh-pfc: sh7734: Fix duplicate TCLK1_B
    
    [ Upstream commit 884caadad128efad8e00c1cdc3177bc8912ee8ec ]
    
    The definitions for bit field [19:18] of the Peripheral Function Select
    Register 3 were accidentally copied from bit field [20], leading to
    duplicates for the TCLK1_B function, and missing TCLK0, CAN_CLK_B, and
    ET0_ETXD4 functions.
    
    Fix this by adding the missing GPIO_FN_CAN_CLK_B and GPIO_FN_ET0_ETXD4
    enum values, and correcting the functions.
    
    Reported-by: Ben Dooks <ben.dooks@codethink.co.uk>
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20191024131308.16659-1-geert+renesas@glider.be
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e35f9139082ae3640d19bafcdd940de079b2503
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Wed Oct 30 20:29:48 2019 -0700

    loop: fix no-unmap write-zeroes request behavior
    
    [ Upstream commit efcfec579f6139528c9e6925eca2bc4a36da65c6 ]
    
    Currently, if the loop device receives a WRITE_ZEROES request, it asks
    the underlying filesystem to punch out the range.  This behavior is
    correct if unmapping is allowed.  However, a NOUNMAP request means that
    the caller doesn't want us to free the storage backing the range, so
    punching out the range is incorrect behavior.
    
    To satisfy a NOUNMAP | WRITE_ZEROES request, loop should ask the
    underlying filesystem to FALLOC_FL_ZERO_RANGE, which is (according to
    the fallocate documentation) required to ensure that the entire range is
    backed by real storage, which suffices for our purposes.
    
    Fixes: 19372e2769179dd ("loop: implement REQ_OP_WRITE_ZEROES")
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6727fb4b064910866d4c292dd31838c0dca1752a
Author: John Garry <john.garry@huawei.com>
Date:   Wed Oct 16 18:19:52 2019 +0800

    libata: Ensure ata_port probe has completed before detach
    
    [ Upstream commit 130f4caf145c3562108b245a576db30b916199d2 ]
    
    With CONFIG_DEBUG_TEST_DRIVER_REMOVE set, we may find the following WARN:
    
    [   23.452574] ------------[ cut here ]------------
    [   23.457190] WARNING: CPU: 59 PID: 1 at drivers/ata/libata-core.c:6676 ata_host_detach+0x15c/0x168
    [   23.466047] Modules linked in:
    [   23.469092] CPU: 59 PID: 1 Comm: swapper/0 Not tainted 5.4.0-rc1-00010-g5b83fd27752b-dirty #296
    [   23.477776] Hardware name: Huawei D06 /D06, BIOS Hisilicon D06 UEFI RC0 - V1.16.01 03/15/2019
    [   23.486286] pstate: a0c00009 (NzCv daif +PAN +UAO)
    [   23.491065] pc : ata_host_detach+0x15c/0x168
    [   23.495322] lr : ata_host_detach+0x88/0x168
    [   23.499491] sp : ffff800011cabb50
    [   23.502792] x29: ffff800011cabb50 x28: 0000000000000007
    [   23.508091] x27: ffff80001137f068 x26: ffff8000112c0c28
    [   23.513390] x25: 0000000000003848 x24: ffff0023ea185300
    [   23.518689] x23: 0000000000000001 x22: 00000000000014c0
    [   23.523987] x21: 0000000000013740 x20: ffff0023bdc20000
    [   23.529286] x19: 0000000000000000 x18: 0000000000000004
    [   23.534584] x17: 0000000000000001 x16: 00000000000000f0
    [   23.539883] x15: ffff0023eac13790 x14: ffff0023eb76c408
    [   23.545181] x13: 0000000000000000 x12: ffff0023eac13790
    [   23.550480] x11: ffff0023eb76c228 x10: 0000000000000000
    [   23.555779] x9 : ffff0023eac13798 x8 : 0000000040000000
    [   23.561077] x7 : 0000000000000002 x6 : 0000000000000001
    [   23.566376] x5 : 0000000000000002 x4 : 0000000000000000
    [   23.571674] x3 : ffff0023bf08a0bc x2 : 0000000000000000
    [   23.576972] x1 : 3099674201f72700 x0 : 0000000000400284
    [   23.582272] Call trace:
    [   23.584706]  ata_host_detach+0x15c/0x168
    [   23.588616]  ata_pci_remove_one+0x10/0x18
    [   23.592615]  ahci_remove_one+0x20/0x40
    [   23.596356]  pci_device_remove+0x3c/0xe0
    [   23.600267]  really_probe+0xdc/0x3e0
    [   23.603830]  driver_probe_device+0x58/0x100
    [   23.608000]  device_driver_attach+0x6c/0x90
    [   23.612169]  __driver_attach+0x84/0xc8
    [   23.615908]  bus_for_each_dev+0x74/0xc8
    [   23.619730]  driver_attach+0x20/0x28
    [   23.623292]  bus_add_driver+0x148/0x1f0
    [   23.627115]  driver_register+0x60/0x110
    [   23.630938]  __pci_register_driver+0x40/0x48
    [   23.635199]  ahci_pci_driver_init+0x20/0x28
    [   23.639372]  do_one_initcall+0x5c/0x1b0
    [   23.643199]  kernel_init_freeable+0x1a4/0x24c
    [   23.647546]  kernel_init+0x10/0x108
    [   23.651023]  ret_from_fork+0x10/0x18
    [   23.654590] ---[ end trace 634a14b675b71c13 ]---
    
    With KASAN also enabled, we may also get many use-after-free reports.
    
    The issue is that when CONFIG_DEBUG_TEST_DRIVER_REMOVE is set, we may
    attempt to detach the ata_port before it has been probed.
    
    This is because the ata_ports are async probed, meaning that there is no
    guarantee that the ata_port has probed prior to detach. When the ata_port
    does probe in this scenario, we get all sorts of issues as the detach may
    have already happened.
    
    Fix by ensuring synchronisation with async_synchronize_full(). We could
    alternatively use the cookie returned from the ata_port probe
    async_schedule() call, but that means managing the cookie, so more
    complicated.
    
    Signed-off-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fbd35049727bdd819508a06fc803b68e5a9d1c77
Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Date:   Tue Oct 22 14:38:08 2019 +0200

    s390/mm: add mm_pxd_folded() checks to pxd_free()
    
    [ Upstream commit 2416cefc504ba8ae9b17e3e6b40afc72708f96be ]
    
    Unlike pxd_free_tlb(), the pxd_free() functions do not check for folded
    page tables. This is not an issue so far, as those functions will actually
    never be called, since no code will reach them when page tables are folded.
    
    In order to avoid future issues, and to make the s390 code more similar to
    other architectures, add mm_pxd_folded() checks, similar to how it is done
    in pxd_free_tlb().
    
    This was found by testing a patch from from Anshuman Khandual, which is
    currently discussed on LKML ("mm/debug: Add tests validating architecture
    page table helpers").
    
    Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit de3c88b857384e393979dc9b6e85bce88e010f64
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Tue Oct 29 14:09:47 2019 +0100

    s390/time: ensure get_clock_monotonic() returns monotonic values
    
    [ Upstream commit 011620688a71f2f1fe9901dbc2479a7c01053196 ]
    
    The current implementation of get_clock_monotonic() leaves it up to
    the caller to call the function with preemption disabled. The only
    core kernel caller (sched_clock) however does not disable preemption.
    
    In order to make sure that all callers of this function see monotonic
    values handle disabling preemption within the function itself.
    
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 17972ec7d6fff2d32e0a7022164402c25e264e2a
Author: Stephan Gerhold <stephan@gerhold.net>
Date:   Tue Oct 8 13:52:08 2019 +0200

    phy: qcom-usb-hs: Fix extcon double register after power cycle
    
    [ Upstream commit 64f86b9978449ff05bfa6c64b4c5439e21e9c80b ]
    
    Commit f0b5c2c96370 ("phy: qcom-usb-hs: Replace the extcon API")
    switched from extcon_register_notifier() to the resource-managed
    API, i.e. devm_extcon_register_notifier().
    
    This is problematic in this case, because the extcon notifier
    is dynamically registered/unregistered whenever the PHY is powered
    on/off. The resource-managed API does not unregister the notifier
    until the driver is removed, so as soon as the PHY is power cycled,
    attempting to register the notifier again results in:
    
            double register detected
            WARNING: CPU: 1 PID: 182 at kernel/notifier.c:26 notifier_chain_register+0x74/0xa0
            Call trace:
             ...
             extcon_register_notifier+0x74/0xb8
             devm_extcon_register_notifier+0x54/0xb8
             qcom_usb_hs_phy_power_on+0x1fc/0x208
             ...
    
    ... and USB stops working after plugging the cable out and in
    another time.
    
    The easiest way to fix this is to make a partial revert of
    commit f0b5c2c96370 ("phy: qcom-usb-hs: Replace the extcon API")
    and avoid using the resource-managed API in this case.
    
    Fixes: f0b5c2c96370 ("phy: qcom-usb-hs: Replace the extcon API")
    Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
    Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8e08c6af8694ef89bc6be0458ec59941649c7284
Author: Mao Wenan <maowenan@huawei.com>
Date:   Sat Oct 26 10:21:39 2019 +0800

    net: dsa: LAN9303: select REGMAP when LAN9303 enable
    
    [ Upstream commit b6989d248a2d13f02895bae1a9321b3bbccc0283 ]
    
    When NET_DSA_SMSC_LAN9303=y and NET_DSA_SMSC_LAN9303_MDIO=y,
    below errors can be seen:
    drivers/net/dsa/lan9303_mdio.c:87:23: error: REGMAP_ENDIAN_LITTLE
    undeclared here (not in a function)
      .reg_format_endian = REGMAP_ENDIAN_LITTLE,
    drivers/net/dsa/lan9303_mdio.c:93:3: error: const struct regmap_config
    has no member named reg_read
      .reg_read = lan9303_mdio_read,
    
    It should select REGMAP in config NET_DSA_SMSC_LAN9303.
    
    Fixes: dc7005831523 ("net: dsa: LAN9303: add MDIO managed mode support")
    Signed-off-by: Mao Wenan <maowenan@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23e22b632a980c26809fdc50c567de6112f45faf
Author: Thierry Reding <treding@nvidia.com>
Date:   Mon Oct 28 13:37:12 2019 +0100

    gpu: host1x: Allocate gather copy for host1x
    
    [ Upstream commit b78e70c04c149299bd210759d7c7af7c86b89ca8 ]
    
    Currently when the gather buffers are copied, they are copied to a
    buffer that is allocated for the host1x client that wants to execute the
    command streams in the buffers. However, the gather buffers will be read
    by the host1x device, which causes SMMU faults if the DMA API is backed
    by an IOMMU.
    
    Fix this by allocating the gather buffer copy for the host1x device,
    which makes sure that it will be mapped into the host1x's IOVA space if
    the DMA API is backed by an IOMMU.
    
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd77e656941aeeb3a7ed31e33878b5df433be10c
Author: Michal Kalderon <michal.kalderon@marvell.com>
Date:   Sun Oct 27 22:04:51 2019 +0200

    RDMA/qedr: Fix memory leak in user qp and mr
    
    [ Upstream commit 24e412c1e00ebfe73619e6b88cbc26c2c7d41b85 ]
    
    User QPs pbl's weren't freed properly.
    MR pbls weren't freed properly.
    
    Fixes: e0290cce6ac0 ("qedr: Add support for memory registeration verbs")
    Link: https://lore.kernel.org/r/20191027200451.28187-5-michal.kalderon@marvell.com
    Signed-off-by: Ariel Elior <ariel.elior@marvell.com>
    Signed-off-by: Michal Kalderon <michal.kalderon@marvell.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 700ef8b5a98f5fdece9270c4ce616f147a7bb768
Author: Grygorii Strashko <grygorii.strashko@ti.com>
Date:   Wed Oct 23 17:48:45 2019 +0300

    net: phy: dp83867: enable robust auto-mdix
    
    [ Upstream commit 5a7f08c2abb0efc9d17aff2fc75d6d3b85e622e4 ]
    
    The link detection timeouts can be observed (or link might not be detected
    at all) when dp83867 PHY is configured in manual mode (speed/duplex).
    
    CFG3[9] Robust Auto-MDIX option allows to significantly improve link detection
    in case dp83867 is configured in manual mode and reduce link detection
    time.
    As per DM: "If link partners are configured to operational modes that are
    not supported by normal Auto MDI/MDIX mode (like Auto-Neg versus Force
    100Base-TX or Force 100Base-TX versus Force 100Base-TX), this Robust Auto
    MDI/MDIX mode allows MDI/MDIX resolution and prevents deadlock."
    
    Hence, enable this option by default as there are no known reasons
    not to do so.
    
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 893a491267c56b9f7f8917c57241aad5ae6e77f6
Author: Yunfeng Ye <yeyunfeng@huawei.com>
Date:   Mon Oct 21 19:31:21 2019 +0800

    arm64: psci: Reduce the waiting time for cpu_psci_cpu_kill()
    
    [ Upstream commit bfcef4ab1d7ee8921bc322109b1692036cc6cbe0 ]
    
    In cases like suspend-to-disk and suspend-to-ram, a large number of CPU
    cores need to be shut down. At present, the CPU hotplug operation is
    serialised, and the CPU cores can only be shut down one by one. In this
    process, if PSCI affinity_info() does not return LEVEL_OFF quickly,
    cpu_psci_cpu_kill() needs to wait for 10ms. If hundreds of CPU cores
    need to be shut down, it will take a long time.
    
    Normally, there is no need to wait 10ms in cpu_psci_cpu_kill(). So
    change the wait interval from 10 ms to max 1 ms and use usleep_range()
    instead of msleep() for more accurate timer.
    
    In addition, reducing the time interval will increase the messages
    output, so remove the "Retry ..." message, instead, track time and
    output to the the sucessful message.
    
    Signed-off-by: Yunfeng Ye <yeyunfeng@huawei.com>
    Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c50ca0128abfd7692e72706126e357c34d752f64
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Thu Oct 17 12:19:01 2019 +0200

    x86/ioapic: Prevent inconsistent state when moving an interrupt
    
    [ Upstream commit df4393424af3fbdcd5c404077176082a8ce459c4 ]
    
    There is an issue with threaded interrupts which are marked ONESHOT
    and using the fasteoi handler:
    
      if (IS_ONESHOT())
        mask_irq();
      ....
      cond_unmask_eoi_irq()
        chip->irq_eoi();
          if (setaffinity_pending) {
             mask_ioapic();
             ...
             move_affinity();
             unmask_ioapic();
          }
    
    So if setaffinity is pending the interrupt will be moved and then
    unconditionally unmasked at the ioapic level, which is wrong in two
    aspects:
    
     1) It should be kept masked up to the point where the threaded handler
        finished.
    
     2) The physical chip state and the software masked state are inconsistent
    
    Guard both the mask and the unmask with a check for the software masked
    state. If the line is marked masked then the ioapic line is also masked, so
    both mask_ioapic() and unmask_ioapic() can be skipped safely.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sebastian Siewior <bigeasy@linutronix.de>
    Fixes: 3aa551c9b4c4 ("genirq: add threaded interrupt handler support")
    Link: https://lkml.kernel.org/r/20191017101938.321393687@linutronix.de
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bac95ac5731fe7efa43c505b3e55bded37951749
Author: Chris Chiu <chiu@endlessm.com>
Date:   Wed Oct 16 09:54:08 2019 +0800

    rtl8xxxu: fix RTL8723BU connection failure issue after warm reboot
    
    [ Upstream commit 0eeb91ade90ce06d2fa1e2fcb55e3316b64c203c ]
    
    The RTL8723BU has problems connecting to AP after each warm reboot.
    Sometimes it returns no scan result, and in most cases, it fails
    the authentication for unknown reason. However, it works totally
    fine after cold reboot.
    
    Compare the value of register SYS_CR and SYS_CLK_MAC_CLK_ENABLE
    for cold reboot and warm reboot, the registers imply that the MAC
    is already powered and thus some procedures are skipped during
    driver initialization. Double checked the vendor driver, it reads
    the SYS_CR and SYS_CLK_MAC_CLK_ENABLE also but doesn't skip any
    during initialization based on them. This commit only tells the
    RTL8723BU to do full initialization without checking MAC status.
    
    Signed-off-by: Chris Chiu <chiu@endlessm.com>
    Signed-off-by: Jes Sorensen <Jes.Sorensen@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4d4d3240a7a9defaac373ca5c599dcdea9c06279
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Thu Oct 17 23:41:50 2019 -0500

    drm/gma500: fix memory disclosures due to uninitialized bytes
    
    [ Upstream commit ec3b7b6eb8c90b52f61adff11b6db7a8db34de19 ]
    
    "clock" may be copied to "best_clock". Initializing best_clock
    is not sufficient. The fix initializes clock as well to avoid
    memory disclosures and informaiton leaks.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20191018044150.1899-1-kjlu@umn.edu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3f3756387d359f03a7c9544452d80b6dd21579c
Author: Benjamin Berg <bberg@redhat.com>
Date:   Wed Oct 9 17:54:24 2019 +0200

    x86/mce: Lower throttling MCE messages' priority to warning
    
    [ Upstream commit 9c3bafaa1fd88e4dd2dba3735a1f1abb0f2c7bb7 ]
    
    On modern CPUs it is quite normal that the temperature limits are
    reached and the CPU is throttled. In fact, often the thermal design is
    not sufficient to cool the CPU at full load and limits can quickly be
    reached when a burst in load happens. This will even happen with
    technologies like RAPL limitting the long term power consumption of
    the package.
    
    Also, these limits are "softer", as Srinivas explains:
    
    "CPU temperature doesn't have to hit max(TjMax) to get these warnings.
    OEMs ha[ve] an ability to program a threshold where a thermal interrupt
    can be generated. In some systems the offset is 20C+ (Read only value).
    
    In recent systems, there is another offset on top of it which can be
    programmed by OS, once some agent can adjust power limits dynamically.
    By default this is set to low by the firmware, which I guess the
    prime motivation of Benjamin to submit the patch."
    
    So these messages do not usually indicate a hardware issue (e.g.
    insufficient cooling). Log them as warnings to avoid confusion about
    their severity.
    
     [ bp: Massage commit mesage. ]
    
    Signed-off-by: Benjamin Berg <bberg@redhat.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Tested-by: Christian Kellner <ckellner@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20191009155424.249277-1-bberg@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 367028e7e7c6f17d8e039a43cd9d73b032430401
Author: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Date:   Wed Oct 16 20:20:39 2019 -0700

    Bluetooth: hci_core: fix init for HCI_USER_CHANNEL
    
    [ Upstream commit eb8c101e28496888a0dcfe16ab86a1bee369e820 ]
    
    During the setup() stage, HCI device drivers expect the chip to
    acknowledge its setup() completion via vendor specific frames.
    
    If userspace opens() such HCI device in HCI_USER_CHANNEL [1] mode,
    the vendor specific frames are never tranmitted to the driver, as
    they are filtered in hci_rx_work().
    
    Allow HCI devices which operate in HCI_USER_CHANNEL mode to receive
    frames if the HCI device is is HCI_INIT state.
    
    [1] https://www.spinics.net/lists/linux-bluetooth/msg37345.html
    
    Fixes: 23500189d7e0 ("Bluetooth: Introduce new HCI socket channel for user operation")
    Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3eb99789ca2cffecb2a4c4228341ef871bca6e08
Author: Ben Dooks (Codethink) <ben.dooks@codethink.co.uk>
Date:   Wed Oct 16 12:39:43 2019 +0100

    Bluetooth: missed cpu_to_le16 conversion in hci_init4_req
    
    [ Upstream commit 727ea61a5028f8ac96f75ab34cb1b56e63fd9227 ]
    
    It looks like in hci_init4_req() the request is being
    initialised from cpu-endian data but the packet is specified
    to be little-endian. This causes an warning from sparse due
    to __le16 to u16 conversion.
    
    Fix this by using cpu_to_le16() on the two fields in the packet.
    
    net/bluetooth/hci_core.c:845:27: warning: incorrect type in assignment (different base types)
    net/bluetooth/hci_core.c:845:27:    expected restricted __le16 [usertype] tx_len
    net/bluetooth/hci_core.c:845:27:    got unsigned short [usertype] le_max_tx_len
    net/bluetooth/hci_core.c:846:28: warning: incorrect type in assignment (different base types)
    net/bluetooth/hci_core.c:846:28:    expected restricted __le16 [usertype] tx_time
    net/bluetooth/hci_core.c:846:28:    got unsigned short [usertype] le_max_tx_time
    
    Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b94653802a0a4ca027f8d9ff3ea79b4ebd2aa52e
Author: Miquel Raynal <miquel.raynal@bootlin.com>
Date:   Fri Oct 11 16:43:42 2019 +0200

    iio: adc: max1027: Reset the device at probe time
    
    [ Upstream commit db033831b4f5589f9fcbadb837614a7c4eac0308 ]
    
    All the registers are configured by the driver, let's reset the chip
    at probe time, avoiding any conflict with a possible earlier
    configuration.
    
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8877aaf6afceb442f24e962eace325e6ebd7ca95
Author: Ingo Rohloff <ingo.rohloff@lauterbach.com>
Date:   Fri Oct 11 13:55:18 2019 +0200

    usb: usbfs: Suppress problematic bind and unbind uevents.
    
    [ Upstream commit abb0b3d96a1f9407dd66831ae33985a386d4200d ]
    
    commit 1455cf8dbfd0 ("driver core: emit uevents when device is bound
    to a driver") added bind and unbind uevents when a driver is bound or
    unbound to a physical device.
    
    For USB devices which are handled via the generic usbfs layer (via
    libusb for example), this is problematic:
    Each time a user space program calls
       ioctl(usb_fd, USBDEVFS_CLAIMINTERFACE, &usb_intf_nr);
    and then later
       ioctl(usb_fd, USBDEVFS_RELEASEINTERFACE, &usb_intf_nr);
    The kernel will now produce a bind or unbind event, which does not
    really contain any useful information.
    
    This allows a user space program to run a DoS attack against programs
    which listen to uevents (in particular systemd/eudev/upowerd):
    A malicious user space program just has to call in a tight loop
    
       ioctl(usb_fd, USBDEVFS_CLAIMINTERFACE, &usb_intf_nr);
       ioctl(usb_fd, USBDEVFS_RELEASEINTERFACE, &usb_intf_nr);
    
    With this loop the malicious user space program floods the kernel and
    all programs listening to uevents with tons of bind and unbind
    events.
    
    This patch suppresses uevents for ioctls USBDEVFS_CLAIMINTERFACE and
    USBDEVFS_RELEASEINTERFACE.
    
    Signed-off-by: Ingo Rohloff <ingo.rohloff@lauterbach.com>
    Link: https://lore.kernel.org/r/20191011115518.2801-1-ingo.rohloff@lauterbach.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b6b823da2b4798ea48a1089f1078842d0592f3c
Author: Jin Yao <yao.jin@linux.intel.com>
Date:   Fri Oct 11 10:21:22 2019 +0800

    perf report: Add warning when libunwind not compiled in
    
    [ Upstream commit 800d3f561659b5436f8c57e7c26dd1f6928b5615 ]
    
    We received a user report that call-graph DWARF mode was enabled in
    'perf record' but 'perf report' didn't unwind the callstack correctly.
    The reason was, libunwind was not compiled in.
    
    We can use 'perf -vv' to check the compiled libraries but it would be
    valuable to report a warning to user directly (especially valuable for
    a perf newbie).
    
    The warning is:
    
    Warning:
    Please install libunwind development packages during the perf build.
    
    Both TUI and stdio are supported.
    
    Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20191011022122.26369-1-yao.jin@linux.intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 30e2c60c63d14c9e9c162eb854367203eb48d278
Author: Leo Yan <leo.yan@linaro.org>
Date:   Fri Oct 11 17:19:41 2019 +0800

    perf test: Report failure for mmap events
    
    [ Upstream commit 6add129c5d9210ada25217abc130df0b7096ee02 ]
    
    When fail to mmap events in task exit case, it misses to set 'err' to
    -1; thus the testing will not report failure for it.
    
    This patch sets 'err' to -1 when fails to mmap events, thus Perf tool
    can report correct result.
    
    Fixes: d723a55096b8 ("perf test: Add test case for checking number of EXIT events")
    Signed-off-by: Leo Yan <leo.yan@linaro.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/20191011091942.29841-1-leo.yan@linaro.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88d9e1534feb485eee5455b356308b9aedf4c42f
Author: Daniel Kurtz <djkurtz@chromium.org>
Date:   Tue Oct 8 18:21:45 2019 +0800

    drm/bridge: dw-hdmi: Restore audio when setting a mode
    
    [ Upstream commit fadfee3f9d8f114435a8a3e9f83a227600d89de7 ]
    
    When setting a new display mode, dw_hdmi_setup() calls
    dw_hdmi_enable_video_path(), which disables all hdmi clocks, including
    the audio clock.
    
    We should only (re-)enable the audio clock if audio was already enabled
    when setting the new mode.
    
    Without this patch, on RK3288, there will be HDMI audio on some monitors
    if i2s was played to headphone when the monitor was plugged.
    ACER H277HU and ASUS PB278 are two of the monitors showing this issue.
    
    Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org>
    Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
    Signed-off-by: Yakir Yang <ykk@rock-chips.com>
    Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
    Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20191008102145.55134-1-cychiang@chromium.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0db2a984ba94d80cdeca87705540b8aaa0a6a78
Author: Sami Tolvanen <samitolvanen@google.com>
Date:   Fri Sep 13 14:14:02 2019 -0700

    x86/mm: Use the correct function type for native_set_fixmap()
    
    [ Upstream commit f53e2cd0b8ab7d9e390414470bdbd830f660133f ]
    
    We call native_set_fixmap indirectly through the function pointer
    struct pv_mmu_ops::set_fixmap, which expects the first parameter to be
    'unsigned' instead of 'enum fixed_addresses'. This patch changes the
    function type for native_set_fixmap to match the pointer, which fixes
    indirect call mismatches with Control-Flow Integrity (CFI) checking.
    
    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: H . Peter Anvin <hpa@zytor.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lkml.kernel.org/r/20190913211402.193018-1-samitolvanen@google.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e9555e31fe7a853f18bd6ecea74b575e9262ce2c
Author: Stephan Gerhold <stephan@gerhold.net>
Date:   Thu Oct 10 17:47:20 2019 +0200

    extcon: sm5502: Reset registers during initialization
    
    [ Upstream commit 6942635032cfd3e003e980d2dfa4e6323a3ce145 ]
    
    On some devices (e.g. Samsung Galaxy A5 (2015)), the bootloader
    seems to keep interrupts enabled for SM5502 when booting Linux.
    Changing the cable state (i.e. plugging in a cable) - until the driver
    is loaded - will therefore produce an interrupt that is never read.
    
    In this situation, the cable state will be stuck forever on the
    initial state because SM5502 stops sending interrupts.
    This can be avoided by clearing those pending interrupts after
    the driver has been loaded.
    
    One way to do this is to reset all registers to default state
    by writing to SM5502_REG_RESET. This ensures that we start from
    a clean state, with all interrupts disabled.
    
    Suggested-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
    Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23df4c40de1ebe4fbf97d1303990bf5601889bc2
Author: Benoit Parrot <bparrot@ti.com>
Date:   Mon Oct 7 12:09:59 2019 -0300

    media: ti-vpe: vpe: fix a v4l2-compliance failure about invalid sizeimage
    
    [ Upstream commit 0bac73adea4df8d34048b38f6ff24dc3e73e90b6 ]
    
    v4l2-compliance fails with this message:
    
       fail: v4l2-test-formats.cpp(463): !pfmt.sizeimage
       fail: v4l2-test-formats.cpp(736): \
            Video Capture Multiplanar is valid, \
            but TRY_FMT failed to return a format
       test VIDIOC_TRY_FMT: FAIL
    
    This failure is causd by the driver failing to handle out range
    'bytesperline' values from user space applications.
    
    VPDMA hardware is limited to 64k line stride (16 bytes aligned, so 65520
    bytes). So make sure the provided or calculated 'bytesperline' is
    smaller than the maximum value.
    
    Signed-off-by: Benoit Parrot <bparrot@ti.com>
    Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    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 21d6b3c33c88dcd57a6f2d1abda980ea99d9e2bd
Author: Benoit Parrot <bparrot@ti.com>
Date:   Mon Oct 7 12:10:01 2019 -0300

    media: ti-vpe: vpe: ensure buffers are cleaned up properly in abort cases
    
    [ Upstream commit cf6acb73b050e98b5cc435fae0e8ae0157520410 ]
    
    v4l2-compliance fails with this message:
    
       fail: v4l2-test-buffers.cpp(691): ret == 0
       fail: v4l2-test-buffers.cpp(974): captureBufs(node, q, m2m_q,
    frame_count, true)
       test MMAP: FAIL
    
    This caused the following Kernel Warning:
    
    WARNING: CPU: 0 PID: 961 at
    drivers/media/v4l2-core/videobuf2-core.c:1658
    __vb2_queue_cancel+0x174/0x1d8
    ...
    CPU: 0 PID: 961 Comm: v4l2-compliance Not tainted
    4.14.62-01720-g20ecd717e87a #6
    Hardware name: Generic DRA72X (Flattened Device Tree)
    Backtrace:
    [<c020b5bc>] (dump_backtrace) from [<c020b8a0>] (show_stack+0x18/0x1c)
     r7:00000009 r6:60070013 r5:00000000 r4:c1053824
    [<c020b888>] (show_stack) from [<c09232e8>] (dump_stack+0x90/0xa4)
    [<c0923258>] (dump_stack) from [<c022b740>] (__warn+0xec/0x104)
      r7:00000009 r6:c0c0ad50 r5:00000000 r4:00000000
    [<c022b654>] (__warn) from [<c022b810>] (warn_slowpath_null+0x28/0x30)
      r9:00000008 r8:00000000 r7:eced4808 r6:edbc9bac r5:eced4844
    r4:eced4808
    [<c022b7e8>] (warn_slowpath_null) from [<c0726f48>]
    (__vb2_queue_cancel+0x174/0x1d8)
    [<c0726dd4>] (__vb2_queue_cancel) from [<c0727648>]
    (vb2_core_queue_release+0x20/0x40)
      r10:ecc7bd70 r9:00000008 r8:00000000 r7:edb73010 r6:edbc9bac
    r5:eced4844
      r4:eced4808 r3:00000004
    [<c0727628>] (vb2_core_queue_release) from [<c0729528>]
    (vb2_queue_release+0x10/0x14)
      r5:edbc9810 r4:eced4800
    [<c0729518>] (vb2_queue_release) from [<c0724d08>]
    (v4l2_m2m_ctx_release+0x1c/0x30)
    [<c0724cec>] (v4l2_m2m_ctx_release) from [<bf0e8f28>]
    (vpe_release+0x74/0xb0 [ti_vpe])
      r5:edbc9810 r4:ed67a400
    [<bf0e8eb4>] (vpe_release [ti_vpe]) from [<c070fccc>]
    (v4l2_release+0x3c/0x80)
      r7:edb73010 r6:ed176aa0 r5:edbc9868 r4:ed5119c0
    [<c070fc90>] (v4l2_release) from [<c033cf1c>] (__fput+0x8c/0x1dc)
      r5:ecc7bd70 r4:ed5119c0
    [<c033ce90>] (__fput) from [<c033d0cc>] (____fput+0x10/0x14)
      r10:00000000 r9:ed5119c0 r8:ece392d0 r7:c1059544 r6:ece38d80
    r5:ece392b4
      r4:00000000
    [<c033d0bc>] (____fput) from [<c0246e00>] (task_work_run+0x98/0xb8)
    [<c0246d68>] (task_work_run) from [<c022f1d8>] (do_exit+0x170/0xa80)
      r9:ece351fc r8:00000000 r7:ecde3f58 r6:ffffe000 r5:ece351c0
    r4:ece38d80
    [<c022f068>] (do_exit) from [<c022fb6c>] (do_group_exit+0x48/0xc4)
      r7:000000f8
    [<c022fb24>] (do_group_exit) from [<c022fc00>]
    (__wake_up_parent+0x0/0x28)
      r7:000000f8 r6:b6c6a798 r5:00000001 r4:00000001
    [<c022fbe8>] (SyS_exit_group) from [<c0207c80>]
    (ret_fast_syscall+0x0/0x4c)
    
    These warnings are caused by buffers which not properly cleaned
    up/release during an abort use case.
    
    In the abort cases the VPDMA desc buffers would still be mapped and the
    in-flight VB2 buffers would not be released properly causing a kernel
    warning from being generated by the videobuf2-core level.
    
    Signed-off-by: Benoit Parrot <bparrot@ti.com>
    Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    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 b86957058be437d5be8832a3d627c9c08298dea6
Author: Benoit Parrot <bparrot@ti.com>
Date:   Mon Oct 7 12:09:56 2019 -0300

    media: ti-vpe: vpe: fix a v4l2-compliance failure causing a kernel panic
    
    [ Upstream commit a37980ac5be29b83da67bf7d571c6bd9f90f8e45 ]
    
    v4l2-compliance fails with this message:
    
       warn: v4l2-test-formats.cpp(717): \
            TRY_FMT cannot handle an invalid pixelformat.
       test VIDIOC_TRY_FMT: FAIL
    
    This causes the following kernel panic:
    
    Unable to handle kernel paging request at virtual address 56595561
    pgd = ecd80e00
    *pgd=00000000
    Internal error: Oops: 205 [#1] PREEMPT SMP ARM
    ...
    CPU: 0 PID: 930 Comm: v4l2-compliance Not tainted \
            4.14.62-01715-gc8cd67f49a19 #1
    Hardware name: Generic DRA72X (Flattened Device Tree)
    task: ece44d80 task.stack: ecc6e000
    PC is at __vpe_try_fmt+0x18c/0x2a8 [ti_vpe]
    LR is at 0x8
    
    Because the driver fails to properly check the 'num_planes' values for
    proper ranges it ends up accessing out of bound data causing the kernel
    panic.
    
    Since this driver only handle single or dual plane pixel format, make
    sure the provided value does not exceed 2 planes.
    
    Signed-off-by: Benoit Parrot <bparrot@ti.com>
    Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    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 95961770a970cad9a803da935c0ebe091eca6442
Author: Benoit Parrot <bparrot@ti.com>
Date:   Mon Oct 7 12:09:58 2019 -0300

    media: ti-vpe: vpe: Make sure YUYV is set as default format
    
    [ Upstream commit e20b248051ca0f90d84b4d9378e4780bc31f16c6 ]
    
    v4l2-compliance fails with this message:
    
       fail: v4l2-test-formats.cpp(672): \
            Video Capture Multiplanar: TRY_FMT(G_FMT) != G_FMT
       fail: v4l2-test-formats.cpp(672): \
            Video Output Multiplanar: TRY_FMT(G_FMT) != G_FMT
            ...
       test VIDIOC_TRY_FMT: FAIL
    
    The default pixel format was setup as pointing to a specific offset in
    the vpe_formats table assuming it was pointing to the V4L2_PIX_FMT_YUYV
    entry. This became false after the addition on the NV21 format (see
    above commid-id)
    
    So instead of hard-coding an offset which might change over time we need
    to use a lookup helper instead so we know the default will always be what
    we intended.
    
    Signed-off-by: Benoit Parrot <bparrot@ti.com>
    Fixes: 40cc823f7005 ("media: ti-vpe: Add support for NV21 format")
    Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    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 cd27dd240d198d9c0fee540dc7467be5842523de
Author: Benoit Parrot <bparrot@ti.com>
Date:   Mon Oct 7 12:10:00 2019 -0300

    media: ti-vpe: vpe: fix a v4l2-compliance failure about frame sequence number
    
    [ Upstream commit 2444846c0dbfa4ead21b621e4300ec32c90fbf38 ]
    
    v4l2-compliance fails with this message:
    
       fail: v4l2-test-buffers.cpp(294): \
            (int)g_sequence() < seq.last_seq + 1
       fail: v4l2-test-buffers.cpp(740): \
            buf.check(m2m_q, last_m2m_seq)
       fail: v4l2-test-buffers.cpp(974): \
            captureBufs(node, q, m2m_q, frame_count, true)
       test MMAP: FAIL
    
    The driver is failing to update the source frame sequence number in the
    vb2 buffer object. Only the destination frame sequence was being
    updated.
    
    This is only a reporting issue if the user space app actually cares
    about the frame sequence number. But it is fixed nonetheless.
    
    Signed-off-by: Benoit Parrot <bparrot@ti.com>
    Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    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 5c181a4e29d2fd537e9908036d771dc63f91e098
Author: Benoit Parrot <bparrot@ti.com>
Date:   Mon Oct 7 12:09:57 2019 -0300

    media: ti-vpe: vpe: fix a v4l2-compliance warning about invalid pixel format
    
    [ Upstream commit 06bec72b250b2cb3ba96fa45c2b8e0fb83745517 ]
    
    v4l2-compliance warns with this message:
    
       warn: v4l2-test-formats.cpp(717): \
            TRY_FMT cannot handle an invalid pixelformat.
       warn: v4l2-test-formats.cpp(718): \
            This may or may not be a problem. For more information see:
       warn: v4l2-test-formats.cpp(719): \
            http://www.mail-archive.com/linux-media@vger.kernel.org/msg56550.html
            ...
       test VIDIOC_TRY_FMT: FAIL
    
    We need to make sure that the returns a valid pixel format in all
    instance. Based on the v4l2 framework convention drivers must return a
    valid pixel format when the requested pixel format is either invalid or
    not supported.
    
    Signed-off-by: Benoit Parrot <bparrot@ti.com>
    Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    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 110df032c196ebf4df05a8b67b286192d0f1bc25
Author: Benoit Parrot <bparrot@ti.com>
Date:   Mon Oct 7 12:09:50 2019 -0300

    media: ti-vpe: vpe: Fix Motion Vector vpdma stride
    
    [ Upstream commit 102af9b9922f658f705a4b0deaccabac409131bf ]
    
    commit 3dc2046ca78b ("[media] media: ti-vpe: vpe: allow use of user
    specified stride") and commit da4414eaed15 ("[media] media: ti-vpe: vpdma:
    add support for user specified stride") resulted in the Motion Vector
    stride to be the same as the image stride.
    
    This caused memory corruption in the output image as mentioned in
    commit 00db969964c8 ("[media] media: ti-vpe: vpe: Fix line stride
    for output motion vector").
    
    Fixes: 3dc2046ca78b ("[media] media: ti-vpe: vpe: allow use of user specified stride")
    Fixes: da4414eaed15 ("[media] media: ti-vpe: vpdma: add support for user specified stride")
    Signed-off-by: Benoit Parrot <bparrot@ti.com>
    Acked-by: Nikhil Devshatwar <nikhil.nd@ti.com>
    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 f69d37afeb98a2f9b0f8bfea8d4e2f88a7c02ad0
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Sep 22 04:41:23 2019 -0300

    media: cx88: Fix some error handling path in 'cx8800_initdev()'
    
    [ Upstream commit e1444e9b0424c70def6352580762d660af50e03f ]
    
    A call to 'pci_disable_device()' is missing in the error handling path.
    In some cases, a call to 'free_irq()' may also be missing.
    
    Reorder the error handling path, add some new labels and fix the 2 issues
    mentionned above.
    
    This way, the error handling path in more in line with 'cx8800_finidev()'
    (i.e. the remove function)
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    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 1cdafe368ec4ad7e878eddc30ea0d11a0f57b222
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Fri Oct 4 15:16:48 2019 -0500

    mwifiex: pcie: Fix memory leak in mwifiex_pcie_init_evt_ring
    
    [ Upstream commit d10dcb615c8e29d403a24d35f8310a7a53e3050c ]
    
    In mwifiex_pcie_init_evt_ring, a new skb is allocated which should be
    released if mwifiex_map_pci_memory() fails. The release for skb and
    card->evtbd_ring_vbase is added.
    
    Fixes: 0732484b47b5 ("mwifiex: separate ring initialization and ring creation routines")
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Acked-by: Ganapathi Bhat <gbhat@marvell.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8e1823f13a0f3c8635c64c789f9804316ad8934d
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon Sep 30 16:00:41 2019 -0700

    block: Fix writeback throttling W=1 compiler warnings
    
    [ Upstream commit 1d200e9d6f635ae894993a7d0f1b9e0b6e522e3b ]
    
    Fix the following compiler warnings:
    
    In file included from ./include/linux/bitmap.h:9,
                     from ./include/linux/cpumask.h:12,
                     from ./arch/x86/include/asm/cpumask.h:5,
                     from ./arch/x86/include/asm/msr.h:11,
                     from ./arch/x86/include/asm/processor.h:21,
                     from ./arch/x86/include/asm/cpufeature.h:5,
                     from ./arch/x86/include/asm/thread_info.h:53,
                     from ./include/linux/thread_info.h:38,
                     from ./arch/x86/include/asm/preempt.h:7,
                     from ./include/linux/preempt.h:78,
                     from ./include/linux/spinlock.h:51,
                     from ./include/linux/mmzone.h:8,
                     from ./include/linux/gfp.h:6,
                     from ./include/linux/mm.h:10,
                     from ./include/linux/bvec.h:13,
                     from ./include/linux/blk_types.h:10,
                     from block/blk-wbt.c:23:
    In function 'strncpy',
        inlined from 'perf_trace_wbt_stat' at ./include/trace/events/wbt.h:15:1:
    ./include/linux/string.h:260:9: warning: '__builtin_strncpy' specified bound 32 equals destination size [-Wstringop-truncation]
      return __builtin_strncpy(p, q, size);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In function 'strncpy',
        inlined from 'perf_trace_wbt_lat' at ./include/trace/events/wbt.h:58:1:
    ./include/linux/string.h:260:9: warning: '__builtin_strncpy' specified bound 32 equals destination size [-Wstringop-truncation]
      return __builtin_strncpy(p, q, size);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In function 'strncpy',
        inlined from 'perf_trace_wbt_step' at ./include/trace/events/wbt.h:87:1:
    ./include/linux/string.h:260:9: warning: '__builtin_strncpy' specified bound 32 equals destination size [-Wstringop-truncation]
      return __builtin_strncpy(p, q, size);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In function 'strncpy',
        inlined from 'perf_trace_wbt_timer' at ./include/trace/events/wbt.h:126:1:
    ./include/linux/string.h:260:9: warning: '__builtin_strncpy' specified bound 32 equals destination size [-Wstringop-truncation]
      return __builtin_strncpy(p, q, size);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In function 'strncpy',
        inlined from 'trace_event_raw_event_wbt_stat' at ./include/trace/events/wbt.h:15:1:
    ./include/linux/string.h:260:9: warning: '__builtin_strncpy' specified bound 32 equals destination size [-Wstringop-truncation]
      return __builtin_strncpy(p, q, size);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In function 'strncpy',
        inlined from 'trace_event_raw_event_wbt_lat' at ./include/trace/events/wbt.h:58:1:
    ./include/linux/string.h:260:9: warning: '__builtin_strncpy' specified bound 32 equals destination size [-Wstringop-truncation]
      return __builtin_strncpy(p, q, size);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In function 'strncpy',
        inlined from 'trace_event_raw_event_wbt_timer' at ./include/trace/events/wbt.h:126:1:
    ./include/linux/string.h:260:9: warning: '__builtin_strncpy' specified bound 32 equals destination size [-Wstringop-truncation]
      return __builtin_strncpy(p, q, size);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In function 'strncpy',
        inlined from 'trace_event_raw_event_wbt_step' at ./include/trace/events/wbt.h:87:1:
    ./include/linux/string.h:260:9: warning: '__builtin_strncpy' specified bound 32 equals destination size [-Wstringop-truncation]
      return __builtin_strncpy(p, q, size);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Ming Lei <ming.lei@redhat.com>
    Cc: Hannes Reinecke <hare@suse.com>
    Cc: Johannes Thumshirn <jthumshirn@suse.de>
    Fixes: e34cbd307477 ("blk-wbt: add general throttling mechanism"; v4.10).
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a957513cc75f24b7414235e31c59baea03603a5a
Author: Daniel T. Lee <danieltimlee@gmail.com>
Date:   Sat Oct 5 17:25:07 2019 +0900

    samples: pktgen: fix proc_cmd command result check logic
    
    [ Upstream commit 3cad8f911575191fb3b81d8ed0e061e30f922223 ]
    
    Currently, proc_cmd is used to dispatch command to 'pg_ctrl', 'pg_thread',
    'pg_set'. proc_cmd is designed to check command result with grep the
    "Result:", but this might fail since this string is only shown in
    'pg_thread' and 'pg_set'.
    
    This commit fixes this logic by grep-ing the "Result:" string only when
    the command is not for 'pg_ctrl'.
    
    For clarity of an execution flow, 'errexit' flag has been set.
    
    To cleanup pktgen on exit, trap has been added for EXIT signal.
    
    Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
    Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 739c4f80e3376bfb1c5e34ac359ad6456363554d
Author: Matthias Kaehlcke <mka@chromium.org>
Date:   Wed Oct 2 12:44:06 2019 -0700

    drm/bridge: dw-hdmi: Refuse DDC/CI transfers on the internal I2C controller
    
    [ Upstream commit bee447e224b2645911c5d06e35dc90d8433fcef6 ]
    
    The DDC/CI protocol involves sending a multi-byte request to the
    display via I2C, which is typically followed by a multi-byte
    response. The internal I2C controller only allows single byte
    reads/writes or reads of 8 sequential bytes, hence DDC/CI is not
    supported when the internal I2C controller is used. The I2C
    transfers complete without errors, however the data in the response
    is garbage. Abort transfers to/from slave address 0x37 (DDC) with
    -EOPNOTSUPP, to make it evident that the communication is failing.
    
    Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Sean Paul <sean@poorly.run>
    Acked-by: Neil Armstrong <narmstrong@baylibre.com>
    Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20191002124354.v2.1.I709dfec496f5f0b44a7b61dcd4937924da8d8382@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9068d32b52425d2ac2031e69a42f7d3cf3912030
Author: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Date:   Tue Oct 1 04:56:38 2019 -0300

    media: cec-funcs.h: add status_req checks
    
    [ Upstream commit 9b211f9c5a0b67afc435b86f75d78273b97db1c5 ]
    
    The CEC_MSG_GIVE_DECK_STATUS and CEC_MSG_GIVE_TUNER_DEVICE_STATUS commands
    both have a status_req argument: ON, OFF, ONCE. If ON or ONCE, then the
    follower will reply with a STATUS message. Either once or whenever the
    status changes (status_req == ON).
    
    If status_req == OFF, then it will stop sending continuous status updates,
    but the follower will *not* send a STATUS message in that case.
    
    This means that if status_req == OFF, then msg->reply should be 0 as well
    since no reply is expected in that case.
    
    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 c6a2abe123cdbb39d90ef0938084d8cbed999d01
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Tue Sep 24 06:49:04 2019 -0300

    media: flexcop-usb: fix NULL-ptr deref in flexcop_usb_transfer_init()
    
    [ Upstream commit 649cd16c438f51d4cd777e71ca1f47f6e0c5e65d ]
    
    If usb_set_interface() failed, iface->cur_altsetting will
    not be assigned and it will be used in flexcop_usb_transfer_init()
    It may lead a NULL pointer dereference.
    
    Check usb_set_interface() return value in flexcop_usb_init()
    and return failed to avoid using this NULL pointer.
    
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d8233bd84b2ba05aeb8739bd394c65b5f9168c02
Author: Yizhuo <yzhai003@ucr.edu>
Date:   Thu Oct 3 10:58:13 2019 -0700

    regulator: max8907: Fix the usage of uninitialized variable in max8907_regulator_probe()
    
    [ Upstream commit 472b39c3d1bba0616eb0e9a8fa3ad0f56927c7d7 ]
    
    Inside function max8907_regulator_probe(), variable val could
    be uninitialized if regmap_read() fails. However, val is used
    later in the if statement to decide the content written to
    "pmic", which is potentially unsafe.
    
    Signed-off-by: Yizhuo <yzhai003@ucr.edu>
    Link: https://lore.kernel.org/r/20191003175813.16415-1-yzhai003@ucr.edu
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1271cd8f220236db2cef1741eb56e22d11470d2a
Author: Tony Lindgren <tony@atomide.com>
Date:   Sat Sep 14 14:02:56 2019 -0700

    hwrng: omap3-rom - Call clk_disable_unprepare() on exit only if not idled
    
    [ Upstream commit eaecce12f5f0d2c35d278e41e1bc4522393861ab ]
    
    When unloading omap3-rom-rng, we'll get the following:
    
    WARNING: CPU: 0 PID: 100 at drivers/clk/clk.c:948 clk_core_disable
    
    This is because the clock may be already disabled by omap3_rom_rng_idle().
    Let's fix the issue by checking for rng_idle on exit.
    
    Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
    Cc: Adam Ford <aford173@gmail.com>
    Cc: Pali Rohár <pali.rohar@gmail.com>
    Cc: Sebastian Reichel <sre@kernel.org>
    Cc: Tero Kristo <t-kristo@ti.com>
    Fixes: 1c6b7c2108bd ("hwrng: OMAP3 ROM Random Number Generator support")
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 40ba746f3c492fbd56015f1e0a5cbb4b4f3e42bf
Author: Veeraiyan Chidambaram <veeraiyan.chidambaram@in.bosch.com>
Date:   Wed Sep 11 15:15:56 2019 +0200

    usb: renesas_usbhs: add suspend event support in gadget mode
    
    [ Upstream commit 39abcc84846bbc0538f13c190b6a9c7e36890cd2 ]
    
    When R-Car Gen3 USB 2.0 is in Gadget mode, if host is detached an interrupt
    will be generated and Suspended state bit is set in interrupt status
    register. Interrupt handler will call driver->suspend(composite_suspend)
    if suspended state bit is set. composite_suspend will call
    ffs_func_suspend which will post FUNCTIONFS_SUSPEND and will be consumed
    by user space application via /dev/ep0.
    
    To be able to detect host detach, extend the DVSQ_MASK to cover the
    Suspended bit of the DVSQ[2:0] bitfield from the Interrupt Status
    Register 0 (INTSTS0) register and perform appropriate action in the
    DVST interrupt handler (usbhsg_irq_dev_state).
    
    Without this commit, disconnection of the phone from R-Car-H3 ES2.0
    Salvator-X CN9 port is not recognized and reverse role switch does
    not happen. If phone is connected again it does not enumerate.
    
    With this commit, disconnection will be recognized and reverse role
    switch will happen by a user space application. If phone is connected
    again it will enumerate properly and will become visible in the output
    of 'lsusb'.
    
    Signed-off-by: Veeraiyan Chidambaram <veeraiyan.chidambaram@in.bosch.com>
    Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
    Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Link: https://lore.kernel.org/r/1568207756-22325-3-git-send-email-external.veeraiyan.c@de.adit-jv.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 752117fccf0b886a992910b41acf7219b11a96c1
Author: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Date:   Wed Oct 2 15:04:04 2019 +0300

    selftests/bpf: Correct path to include msg + path
    
    [ Upstream commit c588146378962786ddeec817f7736a53298a7b01 ]
    
    The "path" buf is supposed to contain path + printf msg up to 24 bytes.
    It will be cut anyway, but compiler generates truncation warns like:
    
    "
    samples/bpf/../../tools/testing/selftests/bpf/cgroup_helpers.c: In
    function ‘setup_cgroup_environment’:
    samples/bpf/../../tools/testing/selftests/bpf/cgroup_helpers.c:52:34:
    warning: ‘/cgroup.controllers’ directive output may be truncated
    writing 19 bytes into a region of size between 1 and 4097
    [-Wformat-truncation=]
    snprintf(path, sizeof(path), "%s/cgroup.controllers", cgroup_path);
                                      ^~~~~~~~~~~~~~~~~~~
    samples/bpf/../../tools/testing/selftests/bpf/cgroup_helpers.c:52:2:
    note: ‘snprintf’ output between 20 and 4116 bytes into a destination
    of size 4097
    snprintf(path, sizeof(path), "%s/cgroup.controllers", cgroup_path);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    samples/bpf/../../tools/testing/selftests/bpf/cgroup_helpers.c:72:34:
    warning: ‘/cgroup.subtree_control’ directive output may be truncated
    writing 23 bytes into a region of size between 1 and 4097
    [-Wformat-truncation=]
    snprintf(path, sizeof(path), "%s/cgroup.subtree_control",
                                      ^~~~~~~~~~~~~~~~~~~~~~~
    cgroup_path);
    samples/bpf/../../tools/testing/selftests/bpf/cgroup_helpers.c:72:2:
    note: ‘snprintf’ output between 24 and 4120 bytes into a destination
    of size 4097
    snprintf(path, sizeof(path), "%s/cgroup.subtree_control",
    cgroup_path);
    "
    
    In order to avoid warns, lets decrease buf size for cgroup workdir on
    24 bytes with assumption to include also "/cgroup.subtree_control" to
    the address. The cut will never happen anyway.
    
    Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Song Liu <songliubraving@fb.com>
    Link: https://lore.kernel.org/bpf/20191002120404.26962-3-ivan.khoronzhuk@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 679c4f27b8958b65bb51d1c3dfdbf3befe4a33a3
Author: Will Deacon <will@kernel.org>
Date:   Wed Oct 2 13:42:06 2019 +0100

    pinctrl: devicetree: Avoid taking direct reference to device name string
    
    [ Upstream commit be4c60b563edee3712d392aaeb0943a768df7023 ]
    
    When populating the pinctrl mapping table entries for a device, the
    'dev_name' field for each entry is initialised to point directly at the
    string returned by 'dev_name()' for the device and subsequently used by
    'create_pinctrl()' when looking up the mappings for the device being
    probed.
    
    This is unreliable in the presence of calls to 'dev_set_name()', which may
    reallocate the device name string leaving the pinctrl mappings with a
    dangling reference. This then leads to a use-after-free every time the
    name is dereferenced by a device probe:
    
      | BUG: KASAN: invalid-access in strcmp+0x20/0x64
      | Read of size 1 at addr 13ffffc153494b00 by task modprobe/590
      | Pointer tag: [13], memory tag: [fe]
      |
      | Call trace:
      |  __kasan_report+0x16c/0x1dc
      |  kasan_report+0x10/0x18
      |  check_memory_region
      |  __hwasan_load1_noabort+0x4c/0x54
      |  strcmp+0x20/0x64
      |  create_pinctrl+0x18c/0x7f4
      |  pinctrl_get+0x90/0x114
      |  devm_pinctrl_get+0x44/0x98
      |  pinctrl_bind_pins+0x5c/0x450
      |  really_probe+0x1c8/0x9a4
      |  driver_probe_device+0x120/0x1d8
    
    Follow the example of sysfs, and duplicate the device name string before
    stashing it away in the pinctrl mapping entries.
    
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Reported-by: Elena Petrova <lenaptr@google.com>
    Tested-by: Elena Petrova <lenaptr@google.com>
    Signed-off-by: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20191002124206.22928-1-will@kernel.org
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f29ead458d231b59d44c41310c7f76bb5023c915
Author: Ben Greear <greearb@candelatech.com>
Date:   Tue Oct 17 17:03:12 2017 -0700

    ath10k: fix offchannel tx failure when no ath10k_mac_tx_frm_has_freq
    
    [ Upstream commit cc6df017e55764ffef9819dd9554053182535ffd ]
    
    Offchannel management frames were failing:
    
    [18099.253732] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3780
    [18102.293686] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3780
    [18105.333653] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3780
    [18108.373712] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3780
    [18111.413687] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e36c0
    [18114.453726] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3f00
    [18117.493773] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e36c0
    [18120.533631] ath10k_pci 0000:01:00.0: timed out waiting for offchannel skb cf0e3f00
    
    This bug appears to have been added between 4.0 (which works for us),
    and 4.4, which does not work.
    
    I think this is because the tx-offchannel logic gets in a loop when
    ath10k_mac_tx_frm_has_freq(ar) is false, so pkt is never actually
    sent to the firmware for transmit.
    
    This patch fixes the problem on 4.9 for me, and now HS20 clients
    can work again with my firmware.
    
    Antonio: tested with 10.4-3.5.3-00057 on QCA4019 and QCA9888
    
    Signed-off-by: Ben Greear <greearb@candelatech.com>
    Tested-by: Antonio Quartulli <antonio.quartulli@kaiwoo.ai>
    [kvalo@codeaurora.org: improve commit log, remove unneeded parenthesis]
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 03b7865f4cba3e1523a61192fea0d9dbe27bbdfb
Author: Loic Poulain <loic.poulain@linaro.org>
Date:   Wed Sep 11 11:45:59 2019 -0300

    media: venus: core: Fix msm8996 frequency table
    
    [ Upstream commit c690435ed07901737e5c007a65ec59f53b33eb71 ]
    
    In downstream driver, there are two frequency tables defined,
    one for the encoder and one for the decoder:
    
    /* Encoders /
    <972000 490000000 0x55555555>, / 4k UHD @ 30 /
    <489600 320000000 0x55555555>, / 1080p @ 60 /
    <244800 150000000 0x55555555>, / 1080p @ 30 /
    <108000 75000000 0x55555555>, / 720p @ 30 */
    
    /* Decoders /
    <1944000 490000000 0xffffffff>, / 4k UHD @ 60 /
    < 972000 320000000 0xffffffff>, / 4k UHD @ 30 /
    < 489600 150000000 0xffffffff>, / 1080p @ 60 /
    < 244800 75000000 0xffffffff>; / 1080p @ 30 */
    
    It shows that encoder always needs a higher clock than decoder.
    
    In current venus driver, the unified frequency table is aligned
    with the downstream decoder table which causes performance issues
    in encoding scenarios. Fix that by aligning frequency table on
    worst case (encoding).
    
    Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
    Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5790fca95d46eaa94a3ddb6cd163509a8b73741b
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Fri Sep 27 09:26:42 2019 -0700

    tools/power/cpupower: Fix initializer override in hsw_ext_cstates
    
    [ Upstream commit 7e5705c635ecfccde559ebbbe1eaf05b5cc60529 ]
    
    When building cpupower with clang, the following warning appears:
    
     utils/idle_monitor/hsw_ext_idle.c:42:16: warning: initializer overrides
     prior initialization of this subobject [-Winitializer-overrides]
                     .desc                   = N_("Processor Package C2"),
                                                  ^~~~~~~~~~~~~~~~~~~~~~
     ./utils/helpers/helpers.h:25:33: note: expanded from macro 'N_'
     #define N_(String) gettext_noop(String)
                                     ^~~~~~
     ./utils/helpers/helpers.h:23:30: note: expanded from macro
     'gettext_noop'
     #define gettext_noop(String) String
                                  ^~~~~~
     utils/idle_monitor/hsw_ext_idle.c:41:16: note: previous initialization
     is here
                     .desc                   = N_("Processor Package C9"),
                                                  ^~~~~~~~~~~~~~~~~~~~~~
     ./utils/helpers/helpers.h:25:33: note: expanded from macro 'N_'
     #define N_(String) gettext_noop(String)
                                     ^~~~~~
     ./utils/helpers/helpers.h:23:30: note: expanded from macro
     'gettext_noop'
     #define gettext_noop(String) String
                                 ^~~~~~
     1 warning generated.
    
    This appears to be a copy and paste or merge mistake because the name
    and id fields both have PC9 in them, not PC2. Remove the second
    assignment to fix the warning.
    
    Fixes: 7ee767b69b68 ("cpupower: Add Haswell family 0x45 specific idle monitor to show PC8,9,10 states")
    Link: https://github.com/ClangBuiltLinux/linux/issues/718
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 319f54451969667fa942f701270b68749f6bcbc9
Author: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Date:   Tue Sep 3 17:11:44 2019 -0300

    media: ov6650: Fix stored crop rectangle not in sync with hardware
    
    [ Upstream commit 1463b371aff0682c70141f7521db13cc4bbf3016 ]
    
    The driver stores crop rectangle settings supposed to be in line with
    hardware state in a device private structure.  Since the driver initial
    submission, crop rectangle width and height settings are not updated
    correctly when rectangle offset settings are applied on hardware.  If
    an error occurs while the device is updated, the stored settings my no
    longer reflect hardware state and consecutive calls to .get_selection()
    as well as .get/set_fmt() may return incorrect information.  That in
    turn may affect ability of a bridge device to use correct DMA transfer
    settings if such incorrect informamtion on active frame format returned
    by .get/set_fmt() is used.
    
    Assuming a failed update of the device means its actual settings haven't
    changed, update crop rectangle width and height settings stored in the
    device private structure correctly while the rectangle offset is
    successfully applied on hardware so the stored values always reflect
    actual hardware state to the extent possible.
    
    Fixes: 2f6e2404799a ("[media] SoC Camera: add driver for OV6650 sensor")
    Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d882197149063af8cb01a55a806b32c538529cdb
Author: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Date:   Tue Sep 3 17:11:43 2019 -0300

    media: ov6650: Fix stored frame format not in sync with hardware
    
    [ Upstream commit 3143b459de4cdcce67b36827476c966e93c1cf01 ]
    
    The driver stores frame format settings supposed to be in line with
    hardware state in a device private structure.  Since the driver initial
    submission, those settings are updated before they are actually applied
    on hardware.  If an error occurs on device update, the stored settings
    my not reflect hardware state anymore and consecutive calls to
    .get_fmt() may return incorrect information.  That in turn may affect
    ability of a bridge device to use correct DMA transfer settings if such
    incorrect informmation on active frame format returned by .get_fmt() is
    used.
    
    Assuming a failed device update means its state hasn't changed, update
    frame format related settings stored in the device private structure
    only after they are successfully applied so the stored values always
    reflect hardware state as closely as possible.
    
    Fixes: 2f6e2404799a ("[media] SoC Camera: add driver for OV6650 sensor")
    Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ff18daf0602cf0903612aad01f0ee9b00151c30
Author: Benoit Parrot <bparrot@ti.com>
Date:   Mon Sep 30 10:06:43 2019 -0300

    media: i2c: ov2659: Fix missing 720p register config
    
    [ Upstream commit 9d669fbfca20e6035ead814e55d9ef1a6b500540 ]
    
    The initial registers sequence is only loaded at probe
    time. Afterward only the resolution and format specific
    register are modified. Care must be taken to make sure
    registers modified by one resolution setting are reverted
    back when another resolution is programmed.
    
    This was not done properly for the 720p case.
    
    Signed-off-by: Benoit Parrot <bparrot@ti.com>
    Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4580d7bfecd2e176decabd3013a21ae6f4ed6726
Author: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Date:   Tue Sep 3 17:11:38 2019 -0300

    media: ov6650: Fix crop rectangle alignment not passed back
    
    [ Upstream commit 7b188d6ba27a131e7934a51a14ece331c0491f18 ]
    
    Commit 4f996594ceaf ("[media] v4l2: make vidioc_s_crop const")
    introduced a writable copy of constified user requested crop rectangle
    in order to be able to perform hardware alignments on it.  Later
    on, commit 10d5509c8d50 ("[media] v4l2: remove g/s_crop from video
    ops") replaced s_crop() video operation using that const argument with
    set_selection() pad operation which had a corresponding argument not
    constified, however the original behavior of the driver was not
    restored.  Since that time, any hardware alignment applied on a user
    requested crop rectangle is not passed back to the user calling
    .set_selection() as it should be.
    
    Fix the issue by dropping the copy and replacing all references to it
    with references to the crop rectangle embedded in the user argument.
    
    Fixes: 10d5509c8d50 ("[media] v4l2: remove g/s_crop from video ops")
    Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 267c32049704190c31f2e03ad41d7c4c48908a5e
Author: Benoit Parrot <bparrot@ti.com>
Date:   Mon Sep 30 10:06:40 2019 -0300

    media: i2c: ov2659: fix s_stream return value
    
    [ Upstream commit 85c4043f1d403c222d481dfc91846227d66663fb ]
    
    In ov2659_s_stream() return value for invoked function should be checked
    and propagated.
    
    Signed-off-by: Benoit Parrot <bparrot@ti.com>
    Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a385d400aa50933c3e498e59cbbb33dab6e1bf6b
Author: Benoit Parrot <bparrot@ti.com>
Date:   Fri Sep 20 14:05:48 2019 -0300

    media: am437x-vpfe: Setting STD to current value is not an error
    
    [ Upstream commit 13aa21cfe92ce9ebb51824029d89f19c33f81419 ]
    
    VIDIOC_S_STD should not return an error if the value is identical
    to the current one.
    This error was highlighted by the v4l2-compliance test.
    
    Signed-off-by: Benoit Parrot <bparrot@ti.com>
    Acked-by: Lad Prabhakar <prabhakar.csengg@gmail.com>
    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 7642460c2780aab4e66852576d1de5484de8da63
Author: Max Gurtovoy <maxg@mellanox.com>
Date:   Wed Sep 25 00:03:47 2019 +0300

    IB/iser: bound protection_sg size by data_sg size
    
    [ Upstream commit 7718cf03c3ce4b6ebd90107643ccd01c952a1fce ]
    
    In case we don't set the sg_prot_tablesize, the scsi layer assign the
    default size (65535 entries). We should limit this size since we should
    take into consideration the underlaying device capability. This cap is
    considered when calculating the sg_tablesize. Otherwise, for example,
    we can get that /sys/block/sdb/queue/max_segments is 128 and
    /sys/block/sdb/queue/max_integrity_segments is 65535.
    
    Link: https://lore.kernel.org/r/1569359027-10987-1-git-send-email-maxg@mellanox.com
    Signed-off-by: Max Gurtovoy <maxg@mellanox.com>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b88d9f8b8ba5722ab4aef7d01c2a5a66b5414b83
Author: Allen Pais <allen.pais@oracle.com>
Date:   Wed Sep 18 22:05:00 2019 +0530

    libertas: fix a potential NULL pointer dereference
    
    [ Upstream commit 7da413a18583baaf35dd4a8eb414fa410367d7f2 ]
    
    alloc_workqueue is not checked for errors and as a result,
    a potential NULL dereference could occur.
    
    Signed-off-by: Allen Pais <allen.pais@oracle.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9c84ba30947a9d8ac2c67abaafc17087ead04426
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Tue Sep 24 20:20:21 2019 -0500

    rtlwifi: prevent memory leak in rtl_usb_probe
    
    [ Upstream commit 3f93616951138a598d930dcaec40f2bfd9ce43bb ]
    
    In rtl_usb_probe if allocation for usb_data fails the allocated hw
    should be released. In addition the allocated rtlpriv->usb_data should
    be released on error handling path.
    
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ac64e1a9bc6b281c115853b49e6ccbad35b264a
Author: Connor Kuehl <connor.kuehl@canonical.com>
Date:   Thu Sep 26 08:03:17 2019 -0700

    staging: rtl8188eu: fix possible null dereference
    
    [ Upstream commit 228241944a48113470d3c3b46c88ba7fbe0a274b ]
    
    Inside a nested 'else' block at the beginning of this function is a
    call that assigns 'psta' to the return value of 'rtw_get_stainfo()'.
    If 'rtw_get_stainfo()' returns NULL and the flow of control reaches
    the 'else if' where 'psta' is dereferenced, then we will dereference
    a NULL pointer.
    
    Fix this by checking if 'psta' is not NULL before reading its
    'psta->qos_option' data member.
    
    Addresses-Coverity: ("Dereference null return value")
    
    Signed-off-by: Connor Kuehl <connor.kuehl@canonical.com>
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Link: https://lore.kernel.org/r/20190926150317.5894-1-connor.kuehl@canonical.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 21c84659c60223461d51942498087c7a8cf8e3dc
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Thu Sep 19 21:51:33 2019 -0500

    staging: rtl8192u: fix multiple memory leaks on error path
    
    [ Upstream commit ca312438cf176a16d4b89350cade8789ba8d7133 ]
    
    In rtl8192_tx on error handling path allocated urbs and also skb should
    be released.
    
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Link: https://lore.kernel.org/r/20190920025137.29407-1-navid.emamdoost@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af64290527d1148a99b59a59a3b1ae1b63a563ee
Author: Lukasz Majewski <lukma@denx.de>
Date:   Wed Sep 25 11:11:42 2019 +0200

    spi: Add call to spi_slave_abort() function when spidev driver is released
    
    [ Upstream commit 9f918a728cf86b2757b6a7025e1f46824bfe3155 ]
    
    This change is necessary for spidev devices (e.g. /dev/spidev3.0) working
    in the slave mode (like NXP's dspi driver for Vybrid SoC).
    
    When SPI HW works in this mode - the master is responsible for providing
    CS and CLK signals. However, when some fault happens - like for example
    distortion on SPI lines - the SPI Linux driver needs a chance to recover
    from this abnormal situation and prepare itself for next (correct)
    transmission.
    
    This change doesn't pose any threat on drivers working in master mode as
    spi_slave_abort() function checks if SPI slave mode is supported.
    
    Signed-off-by: Lukasz Majewski <lukma@denx.de>
    Link: https://lore.kernel.org/r/20190924110547.14770-2-lukma@denx.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Reported-by: kbuild test robot <lkp@intel.com>
    Link: https://lore.kernel.org/r/20190925091143.15468-2-lukma@denx.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0ea124722c685ee64e1d3d77cfe6790679ab1cba
Author: Krzysztof Wilczynski <kw@linux.com>
Date:   Fri Sep 13 22:24:13 2019 +0200

    iio: light: bh1750: Resolve compiler warning and make code more readable
    
    [ Upstream commit f552fde983d378e7339f9ea74a25f918563bf0d3 ]
    
    Separate the declaration of struct bh1750_chip_info from definition
    of bh1750_chip_info_tbl[] in a single statement as it makes the code
    hard to read, and with the extra newline it makes it look as if the
    bh1750_chip_info_tbl[] had no explicit type.
    
    This change also resolves the following compiler warning about the
    unusual position of the static keyword that can be seen when building
    with warnings enabled (W=1):
    
    drivers/iio/light/bh1750.c:64:1: warning:
      ‘static’ is not at beginning of declaration [-Wold-style-declaration]
    
    Related to commit 3a11fbb037a1 ("iio: light: add support for ROHM
    BH1710/BH1715/BH1721/BH1750/BH1751 ambient light sensors").
    
    Signed-off-by: Krzysztof Wilczynski <kw@linux.com>
    Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c81f7b7c9ef00277c8cc6e364e590eab8a337e86
Author: Brian Masney <masneyb@onstation.org>
Date:   Wed Aug 14 20:48:46 2019 -0400

    drm/bridge: analogix-anx78xx: silence -EPROBE_DEFER warnings
    
    [ Upstream commit 2708e876272d89bbbff811d12834adbeef85f022 ]
    
    Silence two warning messages that occur due to -EPROBE_DEFER errors to
    help cleanup the system boot log.
    
    Signed-off-by: Brian Masney <masneyb@onstation.org>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190815004854.19860-4-masneyb@onstation.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 80eb7d92e253a83f090dd927b3d653de0ce7ceb6
Author: Sean Paul <seanpaul@chromium.org>
Date:   Thu Aug 29 12:52:19 2019 -0400

    drm: mst: Fix query_payload ack reply struct
    
    [ Upstream commit 268de6530aa18fe5773062367fd119f0045f6e88 ]
    
    Spec says[1] Allocated_PBN is 16 bits
    
    [1]- DisplayPort 1.2 Spec, Section 2.11.9.8, Table 2-98
    
    Fixes: ad7f8a1f9ced ("drm/helper: add Displayport multi-stream helper (v0.6)")
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: Todd Previte <tprevite@gmail.com>
    Cc: Dave Airlie <airlied@redhat.com>
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Maxime Ripard <maxime.ripard@bootlin.com>
    Cc: Sean Paul <sean@poorly.run>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: dri-devel@lists.freedesktop.org
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190829165223.129662-1-sean@poorly.run
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ea929ea14a07ae4f8d3befa1a6e4039aa3dcd89e
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Dec 13 09:51:10 2019 +0100

    ALSA: hda/ca0132 - Avoid endless loop
    
    commit cb04fc3b6b076f67d228a0b7d096c69ad486c09c upstream.
    
    Introduce a timeout to dspio_clear_response_queue() so that it won't
    be caught in an endless loop even if the hardware doesn't respond
    properly.
    
    Fixes: a73d511c4867 ("ALSA: hda/ca0132: Add unsol handler for DSP and jack detection")
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20191213085111.22855-3-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c06539b5d420b4adc2ec9538fc59c25f5339f68e
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Dec 13 09:51:09 2019 +0100

    ALSA: hda/ca0132 - Keep power on during processing DSP response
    
    commit 377bc0cfabce0244632dada19060839ced4e6949 upstream.
    
    We need to keep power on while processing the DSP response via unsol
    event.  Each snd_hda_codec_read() call does the power management, so
    it should work normally, but still it's safer to keep the power up for
    the whole function.
    
    Fixes: a73d511c4867 ("ALSA: hda/ca0132: Add unsol handler for DSP and jack detection")
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20191213085111.22855-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f79c61a90d46c026b83ec0c9ae7ef71796ccdb42
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Dec 11 16:57:42 2019 +0100

    ALSA: pcm: Avoid possible info leaks from PCM stream buffers
    
    commit add9d56d7b3781532208afbff5509d7382fb6efe upstream.
    
    The current PCM code doesn't initialize explicitly the buffers
    allocated for PCM streams, hence it might leak some uninitialized
    kernel data or previous stream contents by mmapping or reading the
    buffer before actually starting the stream.
    
    Since this is a common problem, this patch simply adds the clearance
    of the buffer data at hw_params callback.  Although this does only
    zero-clear no matter which format is used, which doesn't mean the
    silence for some formats, but it should be OK because the intention is
    just to clear the previous data on the buffer.
    
    Reported-by: Lionel Koenig <lionel.koenig@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20191211155742.3213-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1622a3416b534aaa7d7f8760908c021c073954ac
Author: Filipe Manana <fdmanana@suse.com>
Date:   Fri Dec 6 12:27:39 2019 +0000

    Btrfs: fix removal logic of the tree mod log that leads to use-after-free issues
    
    commit 6609fee8897ac475378388238456c84298bff802 upstream.
    
    When a tree mod log user no longer needs to use the tree it calls
    btrfs_put_tree_mod_seq() to remove itself from the list of users and
    delete all no longer used elements of the tree's red black tree, which
    should be all elements with a sequence number less then our equals to
    the caller's sequence number. However the logic is broken because it
    can delete and free elements from the red black tree that have a
    sequence number greater then the caller's sequence number:
    
    1) At a point in time we have sequence numbers 1, 2, 3 and 4 in the
       tree mod log;
    
    2) The task which got assigned the sequence number 1 calls
       btrfs_put_tree_mod_seq();
    
    3) Sequence number 1 is deleted from the list of sequence numbers;
    
    4) The current minimum sequence number is computed to be the sequence
       number 2;
    
    5) A task using sequence number 2 is at tree_mod_log_rewind() and gets
       a pointer to one of its elements from the red black tree through
       a call to tree_mod_log_search();
    
    6) The task with sequence number 1 iterates the red black tree of tree
       modification elements and deletes (and frees) all elements with a
       sequence number less then or equals to 2 (the computed minimum sequence
       number) - it ends up only leaving elements with sequence numbers of 3
       and 4;
    
    7) The task with sequence number 2 now uses the pointer to its element,
       already freed by the other task, at __tree_mod_log_rewind(), resulting
       in a use-after-free issue. When CONFIG_DEBUG_PAGEALLOC=y it produces
       a trace like the following:
    
      [16804.546854] general protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC PTI
      [16804.547451] CPU: 0 PID: 28257 Comm: pool Tainted: G        W         5.4.0-rc8-btrfs-next-51 #1
      [16804.548059] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org 04/01/2014
      [16804.548666] RIP: 0010:rb_next+0x16/0x50
      (...)
      [16804.550581] RSP: 0018:ffffb948418ef9b0 EFLAGS: 00010202
      [16804.551227] RAX: 6b6b6b6b6b6b6b6b RBX: ffff90e0247f6600 RCX: 6b6b6b6b6b6b6b6b
      [16804.551873] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff90e0247f6600
      [16804.552504] RBP: ffff90dffe0d4688 R08: 0000000000000001 R09: 0000000000000000
      [16804.553136] R10: ffff90dffa4a0040 R11: 0000000000000000 R12: 000000000000002e
      [16804.553768] R13: ffff90e0247f6600 R14: 0000000000001663 R15: ffff90dff77862b8
      [16804.554399] FS:  00007f4b197ae700(0000) GS:ffff90e036a00000(0000) knlGS:0000000000000000
      [16804.555039] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [16804.555683] CR2: 00007f4b10022000 CR3: 00000002060e2004 CR4: 00000000003606f0
      [16804.556336] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [16804.556968] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [16804.557583] Call Trace:
      [16804.558207]  __tree_mod_log_rewind+0xbf/0x280 [btrfs]
      [16804.558835]  btrfs_search_old_slot+0x105/0xd00 [btrfs]
      [16804.559468]  resolve_indirect_refs+0x1eb/0xc70 [btrfs]
      [16804.560087]  ? free_extent_buffer.part.19+0x5a/0xc0 [btrfs]
      [16804.560700]  find_parent_nodes+0x388/0x1120 [btrfs]
      [16804.561310]  btrfs_check_shared+0x115/0x1c0 [btrfs]
      [16804.561916]  ? extent_fiemap+0x59d/0x6d0 [btrfs]
      [16804.562518]  extent_fiemap+0x59d/0x6d0 [btrfs]
      [16804.563112]  ? __might_fault+0x11/0x90
      [16804.563706]  do_vfs_ioctl+0x45a/0x700
      [16804.564299]  ksys_ioctl+0x70/0x80
      [16804.564885]  ? trace_hardirqs_off_thunk+0x1a/0x20
      [16804.565461]  __x64_sys_ioctl+0x16/0x20
      [16804.566020]  do_syscall_64+0x5c/0x250
      [16804.566580]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
      [16804.567153] RIP: 0033:0x7f4b1ba2add7
      (...)
      [16804.568907] RSP: 002b:00007f4b197adc88 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
      [16804.569513] RAX: ffffffffffffffda RBX: 00007f4b100210d8 RCX: 00007f4b1ba2add7
      [16804.570133] RDX: 00007f4b100210d8 RSI: 00000000c020660b RDI: 0000000000000003
      [16804.570726] RBP: 000055de05a6cfe0 R08: 0000000000000000 R09: 00007f4b197add44
      [16804.571314] R10: 0000000000000000 R11: 0000000000000246 R12: 00007f4b197add48
      [16804.571905] R13: 00007f4b197add40 R14: 00007f4b100210d0 R15: 00007f4b197add50
      (...)
      [16804.575623] ---[ end trace 87317359aad4ba50 ]---
    
    Fix this by making btrfs_put_tree_mod_seq() skip deletion of elements that
    have a sequence number equals to the computed minimum sequence number, and
    not just elements with a sequence number greater then that minimum.
    
    Fixes: bd989ba359f2ac ("Btrfs: add tree modification log functions")
    CC: stable@vger.kernel.org # 4.4+
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a744f9eeea5b3216f7467aa61c3d3106e71bc4b
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Fri Dec 6 11:39:00 2019 -0500

    btrfs: handle ENOENT in btrfs_uuid_tree_iterate
    
    commit 714cd3e8cba6841220dce9063a7388a81de03825 upstream.
    
    If we get an -ENOENT back from btrfs_uuid_iter_rem when iterating the
    uuid tree we'll just continue and do btrfs_next_item().  However we've
    done a btrfs_release_path() at this point and no longer have a valid
    path.  So increment the key and go back and do a normal search.
    
    CC: stable@vger.kernel.org # 4.4+
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9cb1548707afef0d04875d34ab0eeb09874c5462
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Fri Dec 6 09:37:18 2019 -0500

    btrfs: do not leak reloc root if we fail to read the fs root
    
    commit ca1aa2818a53875cfdd175fb5e9a2984e997cce9 upstream.
    
    If we fail to read the fs root corresponding with a reloc root we'll
    just break out and free the reloc roots.  But we remove our current
    reloc_root from this list higher up, which means we'll leak this
    reloc_root.  Fix this by adding ourselves back to the reloc_roots list
    so we are properly cleaned up.
    
    CC: stable@vger.kernel.org # 4.4+
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 08c0e06a7ba7ae66046f97366c10353cdf2a4d0d
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Fri Dec 6 09:37:17 2019 -0500

    btrfs: skip log replay on orphaned roots
    
    commit 9bc574de590510eff899c3ca8dbaf013566b5efe upstream.
    
    My fsstress modifications coupled with generic/475 uncovered a failure
    to mount and replay the log if we hit a orphaned root.  We do not want
    to replay the log for an orphan root, but it's completely legitimate to
    have an orphaned root with a log attached.  Fix this by simply skipping
    replaying the log.  We still need to pin it's root node so that we do
    not overwrite it while replaying other logs, as we re-read the log root
    at every stage of the replay.
    
    CC: stable@vger.kernel.org # 4.4+
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0145dc5ac7bc8b216554437cc9575e116a03abb0
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Tue Nov 19 13:59:35 2019 -0500

    btrfs: do not call synchronize_srcu() in inode_tree_del
    
    commit f72ff01df9cf5db25c76674cac16605992d15467 upstream.
    
    Testing with the new fsstress uncovered a pretty nasty deadlock with
    lookup and snapshot deletion.
    
    Process A
    unlink
     -> final iput
       -> inode_tree_del
         -> synchronize_srcu(subvol_srcu)
    
    Process B
    btrfs_lookup  <- srcu_read_lock() acquired here
      -> btrfs_iget
        -> find inode that has I_FREEING set
          -> __wait_on_freeing_inode()
    
    We're holding the srcu_read_lock() while doing the iget in order to make
    sure our fs root doesn't go away, and then we are waiting for the inode
    to finish freeing.  However because the free'ing process is doing a
    synchronize_srcu() we deadlock.
    
    Fix this by dropping the synchronize_srcu() in inode_tree_del().  We
    don't need people to stop accessing the fs root at this point, we're
    only adding our empty root to the dead roots list.
    
    A larger much more invasive fix is forthcoming to address how we deal
    with fs roots, but this fixes the immediate problem.
    
    Fixes: 76dda93c6ae2 ("Btrfs: add snapshot/subvolume destroy ioctl")
    CC: stable@vger.kernel.org # 4.4+
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af6ba22a383189b75409859dcc54211e53fbf3d4
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Tue Nov 19 13:59:20 2019 -0500

    btrfs: don't double lock the subvol_sem for rename exchange
    
    commit 943eb3bf25f4a7b745dd799e031be276aa104d82 upstream.
    
    If we're rename exchanging two subvols we'll try to lock this lock
    twice, which is bad.  Just lock once if either of the ino's are subvols.
    
    Fixes: cdd1fedf8261 ("btrfs: add support for RENAME_EXCHANGE and RENAME_WHITEOUT")
    CC: stable@vger.kernel.org # 4.4+
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b63584780a35b566b575a38cddedad5df0ed43f
Author: Xin Long <lucien.xin@gmail.com>
Date:   Mon Dec 9 13:45:54 2019 +0800

    sctp: fully initialize v4 addr in some functions
    
    [ Upstream commit b6f3320b1d5267e7b583a6d0c88dda518101740c ]
    
    Syzbot found a crash:
    
      BUG: KMSAN: uninit-value in crc32_body lib/crc32.c:112 [inline]
      BUG: KMSAN: uninit-value in crc32_le_generic lib/crc32.c:179 [inline]
      BUG: KMSAN: uninit-value in __crc32c_le_base+0x4fa/0xd30 lib/crc32.c:202
      Call Trace:
        crc32_body lib/crc32.c:112 [inline]
        crc32_le_generic lib/crc32.c:179 [inline]
        __crc32c_le_base+0x4fa/0xd30 lib/crc32.c:202
        chksum_update+0xb2/0x110 crypto/crc32c_generic.c:90
        crypto_shash_update+0x4c5/0x530 crypto/shash.c:107
        crc32c+0x150/0x220 lib/libcrc32c.c:47
        sctp_csum_update+0x89/0xa0 include/net/sctp/checksum.h:36
        __skb_checksum+0x1297/0x12a0 net/core/skbuff.c:2640
        sctp_compute_cksum include/net/sctp/checksum.h:59 [inline]
        sctp_packet_pack net/sctp/output.c:528 [inline]
        sctp_packet_transmit+0x40fb/0x4250 net/sctp/output.c:597
        sctp_outq_flush_transports net/sctp/outqueue.c:1146 [inline]
        sctp_outq_flush+0x1823/0x5d80 net/sctp/outqueue.c:1194
        sctp_outq_uncork+0xd0/0xf0 net/sctp/outqueue.c:757
        sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1781 [inline]
        sctp_side_effects net/sctp/sm_sideeffect.c:1184 [inline]
        sctp_do_sm+0x8fe1/0x9720 net/sctp/sm_sideeffect.c:1155
        sctp_primitive_REQUESTHEARTBEAT+0x175/0x1a0 net/sctp/primitive.c:185
        sctp_apply_peer_addr_params+0x212/0x1d40 net/sctp/socket.c:2433
        sctp_setsockopt_peer_addr_params net/sctp/socket.c:2686 [inline]
        sctp_setsockopt+0x189bb/0x19090 net/sctp/socket.c:4672
    
    The issue was caused by transport->ipaddr set with uninit addr param, which
    was passed by:
    
      sctp_transport_init net/sctp/transport.c:47 [inline]
      sctp_transport_new+0x248/0xa00 net/sctp/transport.c:100
      sctp_assoc_add_peer+0x5ba/0x2030 net/sctp/associola.c:611
      sctp_process_param net/sctp/sm_make_chunk.c:2524 [inline]
    
    where 'addr' is set by sctp_v4_from_addr_param(), and it doesn't initialize
    the padding of addr->v4.
    
    Later when calling sctp_make_heartbeat(), hbinfo.daddr(=transport->ipaddr)
    will become the part of skb, and the issue occurs.
    
    This patch is to fix it by initializing the padding of addr->v4 in
    sctp_v4_from_addr_param(), as well as other functions that do the similar
    thing, and these functions shouldn't trust that the caller initializes the
    memory, as Marcelo suggested.
    
    Reported-by: syzbot+6dcbfea81cd3d4dd0b02@syzkaller.appspotmail.com
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e717f6b4f1737f3a81f727d821b9c834a892f6fb
Author: Manish Chopra <manishc@marvell.com>
Date:   Thu Dec 12 06:49:28 2019 -0800

    qede: Fix multicast mac configuration
    
    [ Upstream commit 0af67e49b018e7280a4227bfe7b6005bc9d3e442 ]
    
    Driver doesn't accommodate the configuration for max number
    of multicast mac addresses, in such particular case it leaves
    the device with improper/invalid multicast configuration state,
    causing connectivity issues (in lacp bonding like scenarios).
    
    Signed-off-by: Manish Chopra <manishc@marvell.com>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e125b01106007dcfcc81dfabdd169e6db23f5fb
Author: Cristian Birsan <cristian.birsan@microchip.com>
Date:   Thu Dec 12 13:52:47 2019 +0200

    net: usb: lan78xx: Fix suspend/resume PHY register access error
    
    [ Upstream commit 20032b63586ac6c28c936dff696981159913a13f ]
    
    Lan78xx driver accesses the PHY registers through MDIO bus over USB
    connection. When performing a suspend/resume, the PHY registers can be
    accessed before the USB connection is resumed. This will generate an
    error and will prevent the device to resume correctly.
    This patch adds the dependency between the MDIO bus and USB device to
    allow correct handling of suspend/resume.
    
    Fixes: ce85e13ad6ef ("lan78xx: Update to use phylib instead of mii_if_info.")
    Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de7e8ca720e622aae4dde1b66fd8544741f15b9c
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Tue Dec 17 01:57:40 2019 +0000

    net: qlogic: Fix error paths in ql_alloc_large_buffers()
    
    [ Upstream commit cad46039e4c99812db067c8ac22a864960e7acc4 ]
    
    ql_alloc_large_buffers() has the usual RX buffer allocation
    loop where it allocates skbs and maps them for DMA.  It also
    treats failure as a fatal error.
    
    There are (at least) three bugs in the error paths:
    
    1. ql_free_large_buffers() assumes that the lrg_buf[] entry for the
    first buffer that couldn't be allocated will have .skb == NULL.
    But the qla_buf[] array is not zero-initialised.
    
    2. ql_free_large_buffers() DMA-unmaps all skbs in lrg_buf[].  This is
    incorrect for the last allocated skb, if DMA mapping failed.
    
    3. Commit 1acb8f2a7a9f ("net: qlogic: Fix memory leak in
    ql_alloc_large_buffers") added a direct call to dev_kfree_skb_any()
    after the skb is recorded in lrg_buf[], so ql_free_large_buffers()
    will double-free it.
    
    The bugs are somewhat inter-twined, so fix them all at once:
    
    * Clear each entry in qla_buf[] before attempting to allocate
      an skb for it.  This goes half-way to fixing bug 1.
    * Set the .skb field only after the skb is DMA-mapped.  This
      fixes the rest.
    
    Fixes: 1357bfcf7106 ("qla3xxx: Dynamically size the rx buffer queue ...")
    Fixes: 0f8ab89e825f ("qla3xxx: Check return code from pci_map_single() ...")
    Fixes: 1acb8f2a7a9f ("net: qlogic: Fix memory leak in ql_alloc_large_buffers")
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f46b81843d9ff5f253cdbf69128c5abe7099e35f
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Wed Dec 18 17:21:55 2019 +0800

    net: nfc: nci: fix a possible sleep-in-atomic-context bug in nci_uart_tty_receive()
    
    [ Upstream commit b7ac893652cafadcf669f78452329727e4e255cc ]
    
    The kernel may sleep while holding a spinlock.
    The function call path (from bottom to top) in Linux 4.19 is:
    
    net/nfc/nci/uart.c, 349:
            nci_skb_alloc in nci_uart_default_recv_buf
    net/nfc/nci/uart.c, 255:
            (FUNC_PTR)nci_uart_default_recv_buf in nci_uart_tty_receive
    net/nfc/nci/uart.c, 254:
            spin_lock in nci_uart_tty_receive
    
    nci_skb_alloc(GFP_KERNEL) can sleep at runtime.
    (FUNC_PTR) means a function pointer is called.
    
    To fix this bug, GFP_KERNEL is replaced with GFP_ATOMIC for
    nci_skb_alloc().
    
    This bug is found by a static analysis tool STCheck written by myself.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df6f496b6ad9b3254103484fde03b29755e83b98
Author: Jiangfeng Xiao <xiaojiangfeng@huawei.com>
Date:   Thu Dec 19 10:08:07 2019 +0800

    net: hisilicon: Fix a BUG trigered by wrong bytes_compl
    
    [ Upstream commit 90b3b339364c76baa2436445401ea9ade040c216 ]
    
    When doing stress test, we get the following trace:
    kernel BUG at lib/dynamic_queue_limits.c:26!
    Internal error: Oops - BUG: 0 [#1] SMP ARM
    Modules linked in: hip04_eth
    CPU: 0 PID: 2003 Comm: tDblStackPcap0 Tainted: G           O L  4.4.197 #1
    Hardware name: Hisilicon A15
    task: c3637668 task.stack: de3bc000
    PC is at dql_completed+0x18/0x154
    LR is at hip04_tx_reclaim+0x110/0x174 [hip04_eth]
    pc : [<c041abfc>]    lr : [<bf0003a8>]    psr: 800f0313
    sp : de3bdc2c  ip : 00000000  fp : c020fb10
    r10: 00000000  r9 : c39b4224  r8 : 00000001
    r7 : 00000046  r6 : c39b4000  r5 : 0078f392  r4 : 0078f392
    r3 : 00000047  r2 : 00000000  r1 : 00000046  r0 : df5d5c80
    Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    Control: 32c5387d  Table: 1e189b80  DAC: 55555555
    Process tDblStackPcap0 (pid: 2003, stack limit = 0xde3bc190)
    Stack: (0xde3bdc2c to 0xde3be000)
    [<c041abfc>] (dql_completed) from [<bf0003a8>] (hip04_tx_reclaim+0x110/0x174 [hip04_eth])
    [<bf0003a8>] (hip04_tx_reclaim [hip04_eth]) from [<bf0012c0>] (hip04_rx_poll+0x20/0x388 [hip04_eth])
    [<bf0012c0>] (hip04_rx_poll [hip04_eth]) from [<c04c8d9c>] (net_rx_action+0x120/0x374)
    [<c04c8d9c>] (net_rx_action) from [<c021eaf4>] (__do_softirq+0x218/0x318)
    [<c021eaf4>] (__do_softirq) from [<c021eea0>] (irq_exit+0x88/0xac)
    [<c021eea0>] (irq_exit) from [<c0240130>] (msa_irq_exit+0x11c/0x1d4)
    [<c0240130>] (msa_irq_exit) from [<c0267ba8>] (__handle_domain_irq+0x110/0x148)
    [<c0267ba8>] (__handle_domain_irq) from [<c0201588>] (gic_handle_irq+0xd4/0x118)
    [<c0201588>] (gic_handle_irq) from [<c0558360>] (__irq_svc+0x40/0x58)
    Exception stack(0xde3bdde0 to 0xde3bde28)
    dde0: 00000000 00008001 c3637668 00000000 00000000 a00f0213 dd3627a0 c0af6380
    de00: c086d380 a00f0213 c0a22a50 de3bde6c 00000002 de3bde30 c0558138 c055813c
    de20: 600f0213 ffffffff
    [<c0558360>] (__irq_svc) from [<c055813c>] (_raw_spin_unlock_irqrestore+0x44/0x54)
    Kernel panic - not syncing: Fatal exception in interrupt
    
    Pre-modification code:
    int hip04_mac_start_xmit(struct sk_buff *skb, struct net_device *ndev)
    {
    [...]
    [1]     priv->tx_head = TX_NEXT(tx_head);
    [2]     count++;
    [3]     netdev_sent_queue(ndev, skb->len);
    [...]
    }
    An rx interrupt occurs if hip04_mac_start_xmit just executes to the line 2,
    tx_head has been updated, but corresponding 'skb->len' has not been
    added to dql_queue.
    
    And then
    hip04_mac_interrupt->__napi_schedule->hip04_rx_poll->hip04_tx_reclaim
    
    In hip04_tx_reclaim, because tx_head has been updated,
    bytes_compl will plus an additional "skb-> len"
    which has not been added to dql_queue. And then
    trigger the BUG_ON(bytes_compl > num_queued - dql->num_completed).
    
    To solve the problem described above, we put
    "netdev_sent_queue(ndev, skb->len);"
    before
    "priv->tx_head = TX_NEXT(tx_head);"
    
    Fixes: a41ea46a9a12 ("net: hisilicon: new hip04 ethernet driver")
    Signed-off-by: Jiangfeng Xiao <xiaojiangfeng@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1990ae775117fc4311c8cacea12f3c4d9481a97
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Fri Dec 20 14:31:40 2019 +0100

    net: dst: Force 4-byte alignment of dst_metrics
    
    [ Upstream commit 258a980d1ec23e2c786e9536a7dd260bea74bae6 ]
    
    When storing a pointer to a dst_metrics structure in dst_entry._metrics,
    two flags are added in the least significant bits of the pointer value.
    Hence this assumes all pointers to dst_metrics structures have at least
    4-byte alignment.
    
    However, on m68k, the minimum alignment of 32-bit values is 2 bytes, not
    4 bytes.  Hence in some kernel builds, dst_default_metrics may be only
    2-byte aligned, leading to obscure boot warnings like:
    
        WARNING: CPU: 0 PID: 7 at lib/refcount.c:28 refcount_warn_saturate+0x44/0x9a
        refcount_t: underflow; use-after-free.
        Modules linked in:
        CPU: 0 PID: 7 Comm: ksoftirqd/0 Tainted: G        W         5.5.0-rc2-atari-01448-g114a1a1038af891d-dirty #261
        Stack from 10835e6c:
                10835e6c 0038134f 00023fa6 00394b0f 0000001c 00000009 00321560 00023fea
                00394b0f 0000001c 001a70f8 00000009 00000000 10835eb4 00000001 00000000
                04208040 0000000a 00394b4a 10835ed4 00043aa8 001a70f8 00394b0f 0000001c
                00000009 00394b4a 0026aba8 003215a4 00000003 00000000 0026d5a8 00000001
                003215a4 003a4361 003238d6 000001f0 00000000 003215a4 10aa3b00 00025e84
                003ddb00 10834000 002416a8 10aa3b00 00000000 00000080 000aa038 0004854a
        Call Trace: [<00023fa6>] __warn+0xb2/0xb4
         [<00023fea>] warn_slowpath_fmt+0x42/0x64
         [<001a70f8>] refcount_warn_saturate+0x44/0x9a
         [<00043aa8>] printk+0x0/0x18
         [<001a70f8>] refcount_warn_saturate+0x44/0x9a
         [<0026aba8>] refcount_sub_and_test.constprop.73+0x38/0x3e
         [<0026d5a8>] ipv4_dst_destroy+0x5e/0x7e
         [<00025e84>] __local_bh_enable_ip+0x0/0x8e
         [<002416a8>] dst_destroy+0x40/0xae
    
    Fix this by forcing 4-byte alignment of all dst_metrics structures.
    
    Fixes: e5fd387ad5b30ca3 ("ipv6: do not overwrite inetpeer metrics prematurely")
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab8224804954d8d32b46805db5e662f174fd5e10
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Thu Dec 19 23:24:47 2019 +0000

    mod_devicetable: fix PHY module format
    
    [ Upstream commit d2ed49cf6c13e379c5819aa5ac20e1f9674ebc89 ]
    
    When a PHY is probed, if the top bit is set, we end up requesting a
    module with the string "mdio:-10101110000000100101000101010001" -
    the top bit is printed to a signed -1 value. This leads to the module
    not being loaded.
    
    Fix the module format string and the macro generating the values for
    it to ensure that we only print unsigned types and the top bit is
    always 0/1. We correctly end up with
    "mdio:10101110000000100101000101010001".
    
    Fixes: 8626d3b43280 ("phylib: Support phy module autoloading")
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Reviewed-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 377d7378a60511970b89c855e033bc523895c1e7
Author: Chuhong Yuan <hslester96@gmail.com>
Date:   Tue Dec 10 00:22:07 2019 +0800

    fjes: fix missed check in fjes_acpi_add
    
    [ Upstream commit a288f105a03a7e0e629a8da2b31f34ebf0343ee2 ]
    
    fjes_acpi_add() misses a check for platform_device_register_simple().
    Add a check to fix it.
    
    Fixes: 658d439b2292 ("fjes: Introduce FUJITSU Extended Socket Network Device driver")
    Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 665c9af8987880414e141e623bf7e6481d1c1696
Author: Mao Wenan <maowenan@huawei.com>
Date:   Mon Dec 9 21:31:25 2019 +0800

    af_packet: set defaule value for tmo
    
    [ Upstream commit b43d1f9f7067c6759b1051e8ecb84e82cef569fe ]
    
    There is softlockup when using TPACKET_V3:
    ...
    NMI watchdog: BUG: soft lockup - CPU#2 stuck for 60010ms!
    (__irq_svc) from [<c0558a0c>] (_raw_spin_unlock_irqrestore+0x44/0x54)
    (_raw_spin_unlock_irqrestore) from [<c027b7e8>] (mod_timer+0x210/0x25c)
    (mod_timer) from [<c0549c30>]
    (prb_retire_rx_blk_timer_expired+0x68/0x11c)
    (prb_retire_rx_blk_timer_expired) from [<c027a7ac>]
    (call_timer_fn+0x90/0x17c)
    (call_timer_fn) from [<c027ab6c>] (run_timer_softirq+0x2d4/0x2fc)
    (run_timer_softirq) from [<c021eaf4>] (__do_softirq+0x218/0x318)
    (__do_softirq) from [<c021eea0>] (irq_exit+0x88/0xac)
    (irq_exit) from [<c0240130>] (msa_irq_exit+0x11c/0x1d4)
    (msa_irq_exit) from [<c0209cf0>] (handle_IPI+0x650/0x7f4)
    (handle_IPI) from [<c02015bc>] (gic_handle_irq+0x108/0x118)
    (gic_handle_irq) from [<c0558ee4>] (__irq_usr+0x44/0x5c)
    ...
    
    If __ethtool_get_link_ksettings() is failed in
    prb_calc_retire_blk_tmo(), msec and tmo will be zero, so tov_in_jiffies
    is zero and the timer expire for retire_blk_timer is turn to
    mod_timer(&pkc->retire_blk_timer, jiffies + 0),
    which will trigger cpu usage of softirq is 100%.
    
    Fixes: f6fb8f100b80 ("af-packet: TPACKET_V3 flexible buffer implementation.")
    Tested-by: Xiao Jiangfeng <xiaojiangfeng@huawei.com>
    Signed-off-by: Mao Wenan <maowenan@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>