commit ab9dfda232481dcfaf549ce774004d116fc80c13
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun May 10 10:29:03 2020 +0200

    Linux 4.14.180

commit dbc839a90fb50f9ab52bbb64ab31991a0eb01d9f
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Mon Apr 20 09:04:24 2020 +0200

    cgroup, netclassid: remove double cond_resched
    
    commit 526f3d96b8f83b1b13d73bd0b5c79cc2c487ec8e upstream.
    
    Commit 018d26fcd12a ("cgroup, netclassid: periodically release file_lock
    on classid") added a second cond_resched to write_classid indirectly by
    update_classid_task. Remove the one in write_classid.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Cc: Dmitry Yakunin <zeil@yandex-team.ru>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1bfd4bed884d075f90793f297bc4ac09df3bd844
Author: Thomas Pedersen <thomas@adapt-ip.com>
Date:   Mon Jan 13 21:59:40 2020 -0800

    mac80211: add ieee80211_is_any_nullfunc()
    
    commit 30b2f0be23fb40e58d0ad2caf8702c2a44cda2e1 upstream.
    
    commit 08a5bdde3812 ("mac80211: consider QoS Null frames for STA_NULLFUNC_ACKED")
    Fixed a bug where we failed to take into account a
    nullfunc frame can be either non-QoS or QoS. It turns out
    there is at least one more bug in
    ieee80211_sta_tx_notify(), introduced in
    commit 7b6ddeaf27ec ("mac80211: use QoS NDP for AP probing"),
    where we forgot to check for the QoS variant and so
    assumed the QoS nullfunc frame never went out
    
    Fix this by adding a helper ieee80211_is_any_nullfunc()
    which consolidates the check for non-QoS and QoS nullfunc
    frames. Replace existing compound conditionals and add a
    couple more missing checks for QoS variant.
    
    Signed-off-by: Thomas Pedersen <thomas@adapt-ip.com>
    Link: https://lore.kernel.org/r/20200114055940.18502-3-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 092d8c20f03eb33920de5205d5d545fb4a6b7aeb
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Apr 24 08:12:22 2020 +0200

    ALSA: hda: Match both PCI ID and SSID for driver blacklist
    
    commit 977dfef40c8996b69afe23a9094d184049efb7bb upstream.
    
    The commit 3c6fd1f07ed0 ("ALSA: hda: Add driver blacklist") added a
    new blacklist for the devices that are known to have empty codecs, and
    one of the entries was ASUS ROG Zenith II (PCI SSID 1043:874f).
    However, it turned out that the very same PCI SSID is used for the
    previous model that does have the valid HD-audio codecs and the change
    broke the sound on it.
    
    Since the empty codec problem appear on the certain AMD platform (PCI
    ID 1022:1487), this patch changes the blacklist matching to both PCI
    ID and SSID using pci_match_id().  Also, the entry that was removed by
    the previous fix for ASUS ROG Zenigh II is re-added.
    
    Link: https://lore.kernel.org/r/20200424061222.19792-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc13f456ff64d205a62e339c3a60b3d1951bcbe1
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Thu Sep 21 16:22:49 2017 -0400

    tracing: Reverse the order of trace_types_lock and event_mutex
    
    commit 12ecef0cb12102d8c034770173d2d1363cb97d52 upstream.
    
    In order to make future changes where we need to call
    tracing_set_clock() from within an event command, the order of
    trace_types_lock and event_mutex must be reversed, as the event command
    will hold event_mutex and the trace_types_lock is taken from within
    tracing_set_clock().
    
    Link: http://lkml.kernel.org/r/20170921162249.0dde3dca@gandalf.local.home
    
    Requested-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Andress Kuo (郭孟修) <Andress.Kuo@mediatek.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3aa030ab4a2db5deac9ae574e25b972b39d6c0d7
Author: Jere Leppänen <jere.leppanen@nokia.com>
Date:   Tue Apr 21 22:03:42 2020 +0300

    sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
    
    commit 12dfd78e3a74825e6f0bc8df7ef9f938fbc6bfe3 upstream.
    
    When starting shutdown in sctp_sf_do_dupcook_a(), get the value for
    SHUTDOWN Cumulative TSN Ack from the new association, which is
    reconstructed from the cookie, instead of the old association, which
    the peer doesn't have anymore.
    
    Otherwise the SHUTDOWN is either ignored or replied to with an ABORT
    by the peer because CTSN Ack doesn't match the peer's Initial TSN.
    
    Fixes: bdf6fa52f01b ("sctp: handle association restarts when the socket is closed.")
    Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b39a1578fbcaa0c0acc930e31c5eef46814b2f16
Author: Doug Berger <opendmb@gmail.com>
Date:   Thu Apr 23 16:13:30 2020 -0700

    net: systemport: suppress warnings on failed Rx SKB allocations
    
    [ Upstream commit 3554e54a46125030c534820c297ed7f6c3907e24 ]
    
    The driver is designed to drop Rx packets and reclaim the buffers
    when an allocation fails, and the network interface needs to safely
    handle this packet loss. Therefore, an allocation failure of Rx
    SKBs is relatively benign.
    
    However, the output of the warning message occurs with a high
    scheduling priority that can cause excessive jitter/latency for
    other high priority processing.
    
    This commit suppresses the warning messages to prevent scheduling
    problems while retaining the failure count in the statistics of
    the network interface.
    
    Signed-off-by: Doug Berger <opendmb@gmail.com>
    Acked-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 27bdb2bdf2d5e3db8e4aec4b32ce6b79359efcc3
Author: Doug Berger <opendmb@gmail.com>
Date:   Thu Apr 23 16:02:11 2020 -0700

    net: bcmgenet: suppress warnings on failed Rx SKB allocations
    
    [ Upstream commit ecaeceb8a8a145d93c7e136f170238229165348f ]
    
    The driver is designed to drop Rx packets and reclaim the buffers
    when an allocation fails, and the network interface needs to safely
    handle this packet loss. Therefore, an allocation failure of Rx
    SKBs is relatively benign.
    
    However, the output of the warning message occurs with a high
    scheduling priority that can cause excessive jitter/latency for
    other high priority processing.
    
    This commit suppresses the warning messages to prevent scheduling
    problems while retaining the failure count in the statistics of
    the network interface.
    
    Signed-off-by: Doug Berger <opendmb@gmail.com>
    Acked-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 f7cfbf422d3963207c16a3ed548db8b0ee4cd042
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Mon Apr 13 12:50:42 2020 -0700

    lib/mpi: Fix building for powerpc with clang
    
    [ Upstream commit 5990cdee689c6885b27c6d969a3d58b09002b0bc ]
    
    0day reports over and over on an powerpc randconfig with clang:
    
    lib/mpi/generic_mpih-mul1.c:37:13: error: invalid use of a cast in a
    inline asm context requiring an l-value: remove the cast or build with
    -fheinous-gnu-extensions
    
    Remove the superfluous casts, which have been done previously for x86
    and arm32 in commit dea632cadd12 ("lib/mpi: fix build with clang") and
    commit 7b7c1df2883d ("lib/mpi/longlong.h: fix building with 32-bit
    x86").
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://github.com/ClangBuiltLinux/linux/issues/991
    Link: https://lore.kernel.org/r/20200413195041.24064-1-natechancellor@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20d782f80db489769e8f689e2dd8b949b796634d
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Mon Apr 20 20:26:54 2020 -0700

    net: dsa: b53: Rework ARL bin logic
    
    [ Upstream commit 6344dbde6a27d10d16246d734b968f84887841e2 ]
    
    When asking the ARL to read a MAC address, we will get a number of bins
    returned in a single read. Out of those bins, there can essentially be 3
    states:
    
    - all bins are full, we have no space left, and we can either replace an
      existing address or return that full condition
    
    - the MAC address was found, then we need to return its bin index and
      modify that one, and only that one
    
    - the MAC address was not found and we have a least one bin free, we use
      that bin index location then
    
    The code would unfortunately fail on all counts.
    
    Fixes: 1da6df85c6fb ("net: dsa: b53: Implement ARL add/del/dump operations")
    Signed-off-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 e6b43bda86caffea0453c6d3abb0fe55a7860b31
Author: Jeremie Francois (on alpha) <jeremie.francois@gmail.com>
Date:   Fri Apr 10 18:57:40 2020 +0200

    scripts/config: allow colons in option strings for sed
    
    [ Upstream commit e461bc9f9ab105637b86065d24b0b83f182d477c ]
    
    Sed broke on some strings as it used colon as a separator.
    I made it more robust by using \001, which is legit POSIX AFAIK.
    
    E.g. ./config --set-str CONFIG_USBNET_DEVADDR "de:ad:be:ef:00:01"
    failed with: sed: -e expression #1, char 55: unknown option to `s'
    
    Signed-off-by: Jeremie Francois (on alpha) <jeremie.francois@gmail.com>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ca221d120ab13df15d39c8b854692924b8bfff6
Author: Philipp Rudo <prudo@linux.ibm.com>
Date:   Mon Apr 6 14:47:48 2020 +0200

    s390/ftrace: fix potential crashes when switching tracers
    
    [ Upstream commit 8ebf6da9db1b2a20bb86cc1bee2552e894d03308 ]
    
    Switching tracers include instruction patching. To prevent that a
    instruction is patched while it's read the instruction patching is done
    in stop_machine 'context'. This also means that any function called
    during stop_machine must not be traced. Thus add 'notrace' to all
    functions called within stop_machine.
    
    Fixes: 1ec2772e0c3c ("s390/diag: add a statistic for diagnose calls")
    Fixes: 38f2c691a4b3 ("s390: improve wait logic of stop_machine")
    Fixes: 4ecf0a43e729 ("processor: get rid of cpu_relax_yield")
    Signed-off-by: Philipp Rudo <prudo@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4c49cf3581b920745afc0650613a676dbb81ef60
Author: Ronnie Sahlberg <lsahlber@redhat.com>
Date:   Tue Apr 21 12:37:39 2020 +1000

    cifs: protect updating server->dstaddr with a spinlock
    
    [ Upstream commit fada37f6f62995cc449b36ebba1220594bfe55fe ]
    
    We use a spinlock while we are reading and accessing the destination address for a server.
    We need to also use this spinlock to protect when we are modifying this address from
    reconn_set_ipaddr().
    
    Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88d82debb1f094ba34382e2f5a9b0c8a1facb671
Author: Julien Beraud <julien.beraud@orolia.com>
Date:   Wed Apr 15 14:24:32 2020 +0200

    net: stmmac: Fix sub-second increment
    
    [ Upstream commit 91a2559c1dc5b0f7e1256d42b1508935e8eabfbf ]
    
    In fine adjustement mode, which is the current default, the sub-second
        increment register is the number of nanoseconds that will be added to
        the clock when the accumulator overflows. At each clock cycle, the
        value of the addend register is added to the accumulator.
        Currently, we use 20ns = 1e09ns / 50MHz as this value whatever the
        frequency of the ptp clock actually is.
        The adjustment is then done on the addend register, only incrementing
        every X clock cycles X being the ratio between 50MHz and ptp_clock_rate
        (addend = 2^32 * 50MHz/ptp_clock_rate).
        This causes the following issues :
        - In case the frequency of the ptp clock is inferior or equal to 50MHz,
          the addend value calculation will overflow and the default
          addend value will be set to 0, causing the clock to not work at
          all. (For instance, for ptp_clock_rate = 50MHz, addend = 2^32).
        - The resolution of the timestamping clock is limited to 20ns while it
          is not needed, thus limiting the accuracy of the timestamping to
          20ns.
    
        Fix this by setting sub-second increment to 2e09ns / ptp_clock_rate.
        It will allow to reach the minimum possible frequency for
        ptp_clk_ref, which is 5MHz for GMII 1000Mps Full-Duplex by setting the
        sub-second-increment to a higher value. For instance, for 25MHz, it
        gives ssinc = 80ns and default_addend = 2^31.
        It will also allow to use a lower value for sub-second-increment, thus
        improving the timestamping accuracy with frequencies higher than
        100MHz, for instance, for 200MHz, ssinc = 10ns and default_addend =
        2^31.
    
    v1->v2:
     - Remove modifications to the calculation of default addend, which broke
     compatibility with clock frequencies for which 2000000000 / ptp_clk_freq
     is not an integer.
     - Modify description according to discussions.
    
    Signed-off-by: Julien Beraud <julien.beraud@orolia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2eb4ce777854e50606d379d8185baefe4c6c4c92
Author: Julien Beraud <julien.beraud@orolia.com>
Date:   Wed Apr 15 14:24:31 2020 +0200

    net: stmmac: fix enabling socfpga's ptp_ref_clock
    
    [ Upstream commit 15ce30609d1e88d42fb1cd948f453e6d5f188249 ]
    
    There are 2 registers to write to enable a ptp ref clock coming from the
    fpga.
    One that enables the usage of the clock from the fpga for emac0 and emac1
    as a ptp ref clock, and the other to allow signals from the fpga to reach
    emac0 and emac1.
    Currently, if the dwmac-socfpga has phymode set to PHY_INTERFACE_MODE_MII,
    PHY_INTERFACE_MODE_GMII, or PHY_INTERFACE_MODE_SGMII, both registers will
    be written and the ptp ref clock will be set as coming from the fpga.
    Separate the 2 register writes to only enable signals from the fpga to
    reach emac0 or emac1 when ptp ref clock is not coming from the fpga.
    
    Signed-off-by: Julien Beraud <julien.beraud@orolia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 67fd6fa9f1dd770f410d555f9a1d5ef2beee45f2
Author: Xiyu Yang <xiyuyang19@fudan.edu.cn>
Date:   Wed Apr 15 16:41:20 2020 +0800

    wimax/i2400m: Fix potential urb refcnt leak
    
    [ Upstream commit 7717cbec172c3554d470023b4020d5781961187e ]
    
    i2400mu_bus_bm_wait_for_ack() invokes usb_get_urb(), which increases the
    refcount of the "notif_urb".
    
    When i2400mu_bus_bm_wait_for_ack() returns, local variable "notif_urb"
    becomes invalid, so the refcount should be decreased to keep refcount
    balanced.
    
    The issue happens in all paths of i2400mu_bus_bm_wait_for_ack(), which
    forget to decrease the refcnt increased by usb_get_urb(), causing a
    refcnt leak.
    
    Fix this issue by calling usb_put_urb() before the
    i2400mu_bus_bm_wait_for_ack() returns.
    
    Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 95b62395de419da09875db4aa10b4928e9c30024
Author: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Date:   Wed Apr 15 12:28:49 2020 -0400

    ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry
    
    [ Upstream commit 326b509238171d37402dbe308e154cc234ed1960 ]
    
    If we don't find any pcm, pcm will point at address at an offset from
    the the list head and not a meaningful structure. Fix this by returning
    correct pcm if found and NULL if not. Found with coccinelle.
    
    Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
    Link: https://lore.kernel.org/r/20200415162849.308-1-amadeuszx.slawinski@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2e8f2acaf32d5e6f31a734d3e19f9cf8c154fc7e
Author: Matthias Blankertz <matthias.blankertz@cetitec.com>
Date:   Wed Apr 15 16:10:17 2020 +0200

    ASoC: rsnd: Fix HDMI channel mapping for multi-SSI mode
    
    [ Upstream commit b94e164759b82d0c1c80d4b1c8f12c9bee83f11d ]
    
    The HDMI?_SEL register maps up to four stereo SSI data lanes onto the
    sdata[0..3] inputs of the HDMI output block. The upper half of the
    register contains four blocks of 4 bits, with the most significant
    controlling the sdata3 line and the least significant the sdata0 line.
    
    The shift calculation has an off-by-one error, causing the parent SSI to
    be mapped to sdata3, the first multi-SSI child to sdata0 and so forth.
    As the parent SSI transmits the stereo L/R channels, and the HDMI core
    expects it on the sdata0 line, this causes no audio to be output when
    playing stereo audio on a multichannel capable HDMI out, and
    multichannel audio has permutated channels.
    
    Fix the shift calculation to map the parent SSI to sdata0, the first
    child to sdata1 etc.
    
    Signed-off-by: Matthias Blankertz <matthias.blankertz@cetitec.com>
    Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://lore.kernel.org/r/20200415141017.384017-3-matthias.blankertz@cetitec.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a500f557e4db9bd1415a061695fe72fb52d51bea
Author: Sebastian Reichel <sebastian.reichel@collabora.com>
Date:   Tue Apr 14 20:11:40 2020 +0200

    ASoC: sgtl5000: Fix VAG power-on handling
    
    [ Upstream commit aa7812737f2877e192d57626cbe8825cc7cf6de9 ]
    
    As mentioned slightly out of patch context in the code, there
    is no reset routine for the chip. On boards where the chip is
    supplied by a fixed regulator, it might not even be resetted
    during (e.g. watchdog) reboot and can be in any state.
    
    If the device is probed with VAG enabled, the driver's probe
    routine will generate a loud pop sound when ANA_POWER is
    being programmed. Avoid this by properly disabling just the
    VAG bit and waiting the required power down time.
    
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Reviewed-by: Fabio Estevam <festivem@gmail.com>
    Link: https://lore.kernel.org/r/20200414181140.145825-1-sebastian.reichel@collabora.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a88e01df10fec0c3c4170a9be3af4ec147287f29
Author: Tyler Hicks <tyhicks@linux.microsoft.com>
Date:   Mon Apr 13 15:21:45 2020 -0500

    selftests/ipc: Fix test failure seen after initial test run
    
    [ Upstream commit b87080eab4c1377706c113fc9c0157f19ea8fed1 ]
    
    After successfully running the IPC msgque test once, subsequent runs
    result in a test failure:
    
      $ sudo ./run_kselftest.sh
      TAP version 13
      1..1
      # selftests: ipc: msgque
      # Failed to get stats for IPC queue with id 0
      # Failed to dump queue: -22
      # Bail out!
      # # Pass 0 Fail 0 Xfail 0 Xpass 0 Skip 0 Error 0
      not ok 1 selftests: ipc: msgque # exit=1
    
    The dump_queue() function loops through the possible message queue index
    values using calls to msgctl(kern_id, MSG_STAT, ...) where kern_id
    represents the index value. The first time the test is ran, the initial
    index value of 0 is valid and the test is able to complete. The index
    value of 0 is not valid in subsequent test runs and the loop attempts to
    try index values of 1, 2, 3, and so on until a valid index value is
    found that corresponds to the message queue created earlier in the test.
    
    The msgctl() syscall returns -1 and sets errno to EINVAL when invalid
    index values are used. The test failure is caused by incorrectly
    comparing errno to -EINVAL when cycling through possible index values.
    
    Fix invalid test failures on subsequent runs of the msgque test by
    correctly comparing errno values to a non-negated EINVAL.
    
    Fixes: 3a665531a3b7 ("selftests: IPC message queue copy feature test")
    Signed-off-by: Tyler Hicks <tyhicks@linux.microsoft.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f111c1d80638aaa6de3b62b4a77e64c0b4f20725
Author: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Date:   Fri Mar 27 16:47:28 2020 -0400

    ASoC: topology: Check return value of pcm_new_ver
    
    [ Upstream commit b3677fc3d68dd942c92de52f0bd9dd8b472a40e6 ]
    
    Function pcm_new_ver can fail, so we should check it's return value and
    handle possible error.
    
    Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
    Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20200327204729.397-6-amadeuszx.slawinski@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 929599defc7aef8cee2c0ba836f1b281629e37e2
Author: Alexey Kardashevskiy <aik@ozlabs.ru>
Date:   Wed Jun 26 12:37:46 2019 +1000

    powerpc/pci/of: Parse unassigned resources
    
    commit dead1c845dbe97e0061dae2017eaf3bd8f8f06ee upstream.
    
    The pseries platform uses the PCI_PROBE_DEVTREE method of PCI probing
    which reads "assigned-addresses" of every PCI device and initializes
    the device resources. However if the property is missing or zero sized,
    then there is no fallback of any kind and the PCI resources remain
    undiscovered, i.e. pdev->resource[] array remains empty.
    
    This adds a fallback which parses the "reg" property in pretty much same
    way except it marks resources as "unset" which later make Linux assign
    those resources proper addresses.
    
    This has an effect when:
    1. a hypervisor failed to assign any resource for a device;
    2. /chosen/linux,pci-probe-only=0 is in the DT so the system may try
    assigning a resource.
    Neither is likely to happen under PowerVM.
    
    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad70bc0e012831920f2ddf37f7bd1f07970de9a7
Author: Jia He <justin.he@arm.com>
Date:   Fri May 1 12:38:40 2020 +0800

    vhost: vsock: kick send_pkt worker once device is started
    
    commit 0b841030625cde5f784dd62aec72d6a766faae70 upstream.
    
    Ning Bo reported an abnormal 2-second gap when booting Kata container [1].
    The unconditional timeout was caused by VSOCK_DEFAULT_CONNECT_TIMEOUT of
    connecting from the client side. The vhost vsock client tries to connect
    an initializing virtio vsock server.
    
    The abnormal flow looks like:
    host-userspace           vhost vsock                       guest vsock
    ==============           ===========                       ============
    connect()     -------->  vhost_transport_send_pkt_work()   initializing
       |                     vq->private_data==NULL
       |                     will not be queued
       V
    schedule_timeout(2s)
                             vhost_vsock_start()  <---------   device ready
                             set vq->private_data
    
    wait for 2s and failed
    connect() again          vq->private_data!=NULL         recv connecting pkt
    
    Details:
    1. Host userspace sends a connect pkt, at that time, guest vsock is under
       initializing, hence the vhost_vsock_start has not been called. So
       vq->private_data==NULL, and the pkt is not been queued to send to guest
    2. Then it sleeps for 2s
    3. After guest vsock finishes initializing, vq->private_data is set
    4. When host userspace wakes up after 2s, send connecting pkt again,
       everything is fine.
    
    As suggested by Stefano Garzarella, this fixes it by additional kicking the
    send_pkt worker in vhost_vsock_start once the virtio device is started. This
    makes the pending pkt sent again.
    
    After this patch, kata-runtime (with vsock enabled) boot time is reduced
    from 3s to 1s on a ThunderX2 arm64 server.
    
    [1] https://github.com/kata-containers/runtime/issues/1917
    
    Reported-by: Ning Bo <n.b@live.com>
    Suggested-by: Stefano Garzarella <sgarzare@redhat.com>
    Signed-off-by: Jia He <justin.he@arm.com>
    Link: https://lore.kernel.org/r/20200501043840.186557-1-justin.he@arm.com
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>