commit 7d8dbefc22ff71c12c5f63ab0c6de7f70d1f044a
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Nov 10 11:27:57 2019 +0100

    Linux 4.19.83

commit 818c96ac80beb8208b84cec0e156ee05ff82caf1
Author: Roger Quadros <rogerq@ti.com>
Date:   Thu Aug 22 16:40:28 2019 +0300

    usb: gadget: udc: core: Fix segfault if udc_bind_to_driver() for pending driver fails
    
    commit 163be6ff7739b12ff300d77897d340f661821da2 upstream.
    
    If a gadget driver is in the pending drivers list, a UDC
    becomes available and udc_bind_to_driver() fails, then it
    gets deleted from the pending list.
    i.e. list_del(&driver->pending) in check_pending_gadget_drivers().
    
    Then if that gadget driver is unregistered,
    usb_gadget_unregister_driver() does a list_del(&driver->pending)
    again thus causing a page fault as that list entry has been poisoned
    by the previous list_del().
    
    Fix this by using list_del_init() instead of list_del() in
    check_pending_gadget_drivers().
    
    Test case:
    
    - Make sure no UDC is available
    - modprobe g_mass_storage file=wrongfile
    - Load UDC driver so it becomes available
            lun0: unable to open backing file: wrongfile
    - modprobe -r g_mass_storage
    
    [   60.900431] Unable to handle kernel paging request at virtual address dead000000000108
    [   60.908346] Mem abort info:
    [   60.911145]   ESR = 0x96000044
    [   60.914227]   Exception class = DABT (current EL), IL = 32 bits
    [   60.920162]   SET = 0, FnV = 0
    [   60.923217]   EA = 0, S1PTW = 0
    [   60.926354] Data abort info:
    [   60.929228]   ISV = 0, ISS = 0x00000044
    [   60.933058]   CM = 0, WnR = 1
    [   60.936011] [dead000000000108] address between user and kernel address ranges
    [   60.943136] Internal error: Oops: 96000044 [#1] PREEMPT SMP
    [   60.948691] Modules linked in: g_mass_storage(-) usb_f_mass_storage libcomposite xhci_plat_hcd xhci_hcd usbcore ti_am335x_adc kfifo_buf omap_rng cdns3 rng_core udc_core crc32_ce xfrm_user crct10dif_ce snd_so6
    [   60.993995] Process modprobe (pid: 834, stack limit = 0x00000000c2aebc69)
    [   61.000765] CPU: 0 PID: 834 Comm: modprobe Not tainted 4.19.59-01963-g065f42a60499 #92
    [   61.008658] Hardware name: Texas Instruments SoC (DT)
    [   61.014472] pstate: 60000005 (nZCv daif -PAN -UAO)
    [   61.019253] pc : usb_gadget_unregister_driver+0x7c/0x108 [udc_core]
    [   61.025503] lr : usb_gadget_unregister_driver+0x30/0x108 [udc_core]
    [   61.031750] sp : ffff00001338fda0
    [   61.035049] x29: ffff00001338fda0 x28: ffff800846d40000
    [   61.040346] x27: 0000000000000000 x26: 0000000000000000
    [   61.045642] x25: 0000000056000000 x24: 0000000000000800
    [   61.050938] x23: ffff000008d7b0d0 x22: ffff0000088b07c8
    [   61.056234] x21: ffff000001100000 x20: ffff000002020260
    [   61.061530] x19: ffff0000010ffd28 x18: 0000000000000000
    [   61.066825] x17: 0000000000000000 x16: 0000000000000000
    [   61.072121] x15: 0000000000000000 x14: 0000000000000000
    [   61.077417] x13: ffff000000000000 x12: ffffffffffffffff
    [   61.082712] x11: 0000000000000030 x10: 7f7f7f7f7f7f7f7f
    [   61.088008] x9 : fefefefefefefeff x8 : 0000000000000000
    [   61.093304] x7 : ffffffffffffffff x6 : 000000000000ffff
    [   61.098599] x5 : 8080000000000000 x4 : 0000000000000000
    [   61.103895] x3 : ffff000001100020 x2 : ffff800846d40000
    [   61.109190] x1 : dead000000000100 x0 : dead000000000200
    [   61.114486] Call trace:
    [   61.116922]  usb_gadget_unregister_driver+0x7c/0x108 [udc_core]
    [   61.122828]  usb_composite_unregister+0x10/0x18 [libcomposite]
    [   61.128643]  msg_cleanup+0x18/0xfce0 [g_mass_storage]
    [   61.133682]  __arm64_sys_delete_module+0x17c/0x1f0
    [   61.138458]  el0_svc_common+0x90/0x158
    [   61.142192]  el0_svc_handler+0x2c/0x80
    [   61.145926]  el0_svc+0x8/0xc
    [   61.148794] Code: eb03003f d10be033 54ffff21 a94d0281 (f9000420)
    [   61.154869] ---[ end trace afb22e9b637bd9a7 ]---
    Segmentation fault
    
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Roger Quadros <rogerq@ti.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b06f37eaa2b3e99833081a527824ce5aa1f0d8f4
Author: Suman Anna <s-anna@ti.com>
Date:   Thu Aug 8 09:39:28 2019 -0500

    arm64: dts: ti: k3-am65-main: Fix gic-its node unit-address
    
    commit 389ce1a7c5279ebfb682fab220b4021b2bd49c8b upstream.
    
    The gic-its node unit-address has an additional zero compared
    to the actual reg value. Fix it.
    
    Fixes: ea47eed33a3f ("arm64: dts: ti: Add Support for AM654 SoC")
    Reported-by: Robert Tivy <rtivy@ti.com>
    Signed-off-by: Suman Anna <s-anna@ti.com>
    Signed-off-by: Tero Kristo <t-kristo@ti.com>
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 54ee5ccd0251472701bd58137acfd34dbe1c8ae9
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Thu Sep 19 10:16:52 2019 +0300

    ASoC: pcm3168a: The codec does not support S32_LE
    
    commit 7b2db65b59c30d58c129d3c8b2101feca686155a upstream.
    
    24 bits is supported in all modes and 16 bit only when the codec is slave
    and the DAI is set to RIGHT_J.
    
    Remove the unsupported sample format.
    
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Link: https://lore.kernel.org/r/20190919071652.31724-1-peter.ujfalusi@ti.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ddf2a70cf6dd7431bbb007158266a28262ce20a
Author: Desnes A. Nunes do Rosario <desnesn@linux.ibm.com>
Date:   Thu Oct 3 18:10:10 2019 -0300

    selftests/powerpc: Fix compile error on tlbie_test due to newer gcc
    
    commit 5b216ea1c40cf06eead15054c70e238c9bd4729e upstream.
    
    Newer versions of GCC (>= 9) demand that the size of the string to be
    copied must be explicitly smaller than the size of the destination.
    Thus, the NULL char has to be taken into account on strncpy.
    
    This will avoid the following compiling error:
    
      tlbie_test.c: In function 'main':
      tlbie_test.c:639:4: error: 'strncpy' specified bound 100 equals destination size
          strncpy(logdir, optarg, LOGDIR_NAME_SIZE);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      cc1: all warnings being treated as errors
    
    Signed-off-by: Desnes A. Nunes do Rosario <desnesn@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20191003211010.9711-1-desnesn@linux.ibm.com
    [sandipan: Backported to v4.19]
    Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7aaa8dd60c52cbe351c5213a50a92095763268f
Author: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Date:   Tue Sep 24 09:22:54 2019 +0530

    selftests/powerpc: Add test case for tlbie vs mtpidr ordering issue
    
    commit 93cad5f789951eaa27c3392b15294b4e51253944 upstream.
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    [mpe: Some minor fixes to make it build]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190924035254.24612-4-aneesh.kumar@linux.ibm.com
    [sandipan: Backported to v4.19]
    Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec199b24aa5c91555a2fc82b9c2c127e0e5e8834
Author: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Date:   Tue Sep 24 09:22:53 2019 +0530

    powerpc/mm: Fixup tlbie vs mtpidr/mtlpidr ordering issue on POWER9
    
    commit 047e6575aec71d75b765c22111820c4776cd1c43 upstream.
    
    On POWER9, under some circumstances, a broadcast TLB invalidation will
    fail to invalidate the ERAT cache on some threads when there are
    parallel mtpidr/mtlpidr happening on other threads of the same core.
    This can cause stores to continue to go to a page after it's unmapped.
    
    The workaround is to force an ERAT flush using PID=0 or LPID=0 tlbie
    flush. This additional TLB flush will cause the ERAT cache
    invalidation. Since we are using PID=0 or LPID=0, we don't get
    filtered out by the TLB snoop filtering logic.
    
    We need to still follow this up with another tlbie to take care of
    store vs tlbie ordering issue explained in commit:
    a5d4b5891c2f ("powerpc/mm: Fixup tlbie vs store ordering issue on
    POWER9"). The presence of ERAT cache implies we can still get new
    stores and they may miss store queue marking flush.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190924035254.24612-3-aneesh.kumar@linux.ibm.com
    [sandipan: Backported to v4.19]
    Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06e8438eddf87122fb32a3d0a940237a5678cad2
Author: Jan Kiszka <jan.kiszka@siemens.com>
Date:   Wed Sep 4 08:42:30 2019 +0200

    platform/x86: pmc_atom: Add Siemens SIMATIC IPC227E to critclk_systems DMI table
    
    commit ad0d315b4d4e7138f43acf03308192ec00e9614d upstream.
    
    The SIMATIC IPC227E uses the PMC clock for on-board components and gets
    stuck during boot if the clock is disabled. Therefore, add this device
    to the critical systems list.
    
    Fixes: 648e921888ad ("clk: x86: Stop marking clocks as CLK_IS_CRITICAL")
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d830cf287a59a7569a6fe27d5d05d5e3148c757
Author: Maxim Mikityanskiy <maxtram95@gmail.com>
Date:   Tue May 7 20:28:15 2019 +0300

    wireless: Skip directory when generating certificates
    
    [ Upstream commit 32b5a2c9950b9284000059d752f7afa164deb15e ]
    
    Commit 715a12334764 ("wireless: don't write C files on failures") drops
    the `test -f $$f` check. The list of targets contains the
    CONFIG_CFG80211_EXTRA_REGDB_KEYDIR directory itself, and this check used
    to filter it out. After the check was removed, the extra keydir option
    no longer works, failing with the following message:
    
    od: 'standard input': read error: Is a directory
    
    This commit restores the check to make extra keydir work again.
    
    Fixes: 715a12334764 ("wireless: don't write C files on failures")
    Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 558d2bdad5f6a0dd65ed7ed4f74419e826a97759
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Oct 22 07:57:46 2019 -0700

    net/flow_dissector: switch to siphash
    
    [ Upstream commit 55667441c84fa5e0911a0aac44fb059c15ba6da2 ]
    
    UDP IPv6 packets auto flowlabels are using a 32bit secret
    (static u32 hashrnd in net/core/flow_dissector.c) and
    apply jhash() over fields known by the receivers.
    
    Attackers can easily infer the 32bit secret and use this information
    to identify a device and/or user, since this 32bit secret is only
    set at boot time.
    
    Really, using jhash() to generate cookies sent on the wire
    is a serious security concern.
    
    Trying to change the rol32(hash, 16) in ip6_make_flowlabel() would be
    a dead end. Trying to periodically change the secret (like in sch_sfq.c)
    could change paths taken in the network for long lived flows.
    
    Let's switch to siphash, as we did in commit df453700e8d8
    ("inet: switch IP ID generator to siphash")
    
    Using a cryptographically strong pseudo random function will solve this
    privacy issue and more generally remove other weak points in the stack.
    
    Packet schedulers using skb_get_hash_perturb() benefit from this change.
    
    Fixes: b56774163f99 ("ipv6: Enable auto flow labels by default")
    Fixes: 42240901f7c4 ("ipv6: Implement different admin modes for automatic flow labels")
    Fixes: 67800f9b1f4e ("ipv6: Call skb_get_hash_flowi6 to get skb->hash in ip6_make_flowlabel")
    Fixes: cb1ce2ef387b ("ipv6: Implement automatic flow label generation on transmit")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Jonathan Berger <jonathann1@walla.com>
    Reported-by: Amit Klein <aksecurity@gmail.com>
    Reported-by: Benny Pinkas <benny@pinkas.net>
    Cc: Tom Herbert <tom@herbertland.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6ef35998fb0fc9e1b8e1234aa3e7a7ea221c0a5
Author: Kazutoshi Noguchi <noguchi.kazutosi@gmail.com>
Date:   Mon Oct 21 00:03:07 2019 +0900

    r8152: add device id for Lenovo ThinkPad USB-C Dock Gen 2
    
    [ Upstream commit b3060531979422d5bb18d80226f978910284dc70 ]
    
    This device is sold as 'ThinkPad USB-C Dock Gen 2 (40AS)'.
    Chipset is RTL8153 and works with r8152.
    Without this, the generic cdc_ether grabs the device, and the device jam
    connected networks up when the machine suspends.
    
    Signed-off-by: Kazutoshi Noguchi <noguchi.kazutosi@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c33f7efec3b346fcac55c0e2f74bf45290d5fc54
Author: Vivien Didelot <vivien.didelot@gmail.com>
Date:   Fri Oct 18 17:02:46 2019 -0400

    net: dsa: fix switch tree list
    
    [ Upstream commit 50c7d2ba9de20f60a2d527ad6928209ef67e4cdd ]
    
    If there are multiple switch trees on the device, only the last one
    will be listed, because the arguments of list_add_tail are swapped.
    
    Fixes: 83c0afaec7b7 ("net: dsa: Add new binding implementation")
    Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
    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 6b5bf3f37f726cf35e647aaec9f157d3685b291e
Author: Andrew Lunn <andrew@lunn.ch>
Date:   Thu Oct 17 21:29:26 2019 +0200

    net: usb: lan78xx: Connect PHY before registering MAC
    
    [ Upstream commit 38b4fe320119859c11b1dc06f6b4987a16344fa1 ]
    
    As soon as the netdev is registers, the kernel can start using the
    interface. If the driver connects the MAC to the PHY after the netdev
    is registered, there is a race condition where the interface can be
    opened without having the PHY connected.
    
    Change the order to close this race condition.
    
    Fixes: 92571a1aae40 ("lan78xx: Connect phy early")
    Reported-by: Daniel Wagner <dwagner@suse.de>
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Tested-by: Daniel Wagner <dwagner@suse.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07c62fc7bf28de7521a579d0a86f3f9ec3ef0b26
Author: Doug Berger <opendmb@gmail.com>
Date:   Wed Oct 16 16:06:32 2019 -0700

    net: bcmgenet: reset 40nm EPHY on energy detect
    
    [ Upstream commit 25382b991d252aed961cd434176240f9de6bb15f ]
    
    The EPHY integrated into the 40nm Set-Top Box devices can falsely
    detect energy when connected to a disabled peer interface. When the
    peer interface is enabled the EPHY will detect and report the link
    as active, but on occasion may get into a state where it is not
    able to exchange data with the connected GENET MAC. This issue has
    not been observed when the link parameters are auto-negotiated;
    however, it has been observed with a manually configured link.
    
    It has been empirically determined that issuing a soft reset to the
    EPHY when energy is detected prevents it from getting into this bad
    state.
    
    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d3ccc2a5b193316a744aebaed2a28f204f2c484
Author: Doug Berger <opendmb@gmail.com>
Date:   Wed Oct 16 16:06:30 2019 -0700

    net: phy: bcm7xxx: define soft_reset for 40nm EPHY
    
    [ Upstream commit fe586b823372a9f43f90e2c6aa0573992ce7ccb7 ]
    
    The internal 40nm EPHYs use a "Workaround for putting the PHY in
    IDDQ mode." These PHYs require a soft reset to restore functionality
    after they are powered back up.
    
    This commit defines the soft_reset function to use genphy_soft_reset
    during phy_init_hw to accommodate this.
    
    Fixes: 6e2d85ec0559 ("net: phy: Stop with excessive soft reset")
    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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97cc6827f418206f1c8056df5f33e0539d0231de
Author: Doug Berger <opendmb@gmail.com>
Date:   Wed Oct 16 16:06:29 2019 -0700

    net: bcmgenet: don't set phydev->link from MAC
    
    [ Upstream commit 7de48402faa32298c3551ea32c76ccb4f9d3025d ]
    
    When commit 28b2e0d2cd13 ("net: phy: remove parameter new_link from
    phy_mac_interrupt()") removed the new_link parameter it set the
    phydev->link state from the MAC before invoking phy_mac_interrupt().
    
    However, once commit 88d6272acaaa ("net: phy: avoid unneeded MDIO
    reads in genphy_read_status") was added this initialization prevents
    the proper determination of the connection parameters by the function
    genphy_read_status().
    
    This commit removes that initialization to restore the proper
    functionality.
    
    Fixes: 88d6272acaaa ("net: phy: avoid unneeded MDIO reads in genphy_read_status")
    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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57e286f67554aab378529282f1786f0635525350
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Sat Oct 5 15:05:18 2019 -0700

    net: dsa: b53: Do not clear existing mirrored port mask
    
    [ Upstream commit c763ac436b668d7417f0979430ec0312ede4093d ]
    
    Clearing the existing bitmask of mirrored ports essentially prevents us
    from capturing more than one port at any given time. This is clearly
    wrong, do not clear the bitmask prior to setting up the new port.
    
    Reported-by: Hubert Feurstein <h.feurstein@gmail.com>
    Fixes: ed3af5fd08eb ("net: dsa: b53: Add support for port mirroring")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db91be8e27c883387414656979253a037a73ce86
Author: Aya Levin <ayal@mellanox.com>
Date:   Wed Oct 2 16:53:21 2019 +0300

    net/mlx5e: Fix ethtool self test: link speed
    
    [ Upstream commit 534e7366f41b0c689b01af4375aefcd1462adedf ]
    
    Ethtool self test contains a test for link speed. This test reads the
    PTYS register and determines whether the current speed is valid or not.
    Change current implementation to use the function mlx5e_port_linkspeed()
    that does the same check and fails when speed is invalid. This code
    redundancy lead to a bug when mlx5e_port_linkspeed() was updated with
    expended speeds and the self test was not.
    
    Fixes: 2c81bfd5ae56 ("net/mlx5e: Move port speed code from en_ethtool.c to en/port.c")
    Signed-off-by: Aya Levin <ayal@mellanox.com>
    Reviewed-by: Moshe Shemesh <moshe@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5eb1967bfde372afb79bcbfa6bc10a93cc293df6
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Fri Nov 1 00:10:21 2019 +0100

    r8169: fix wrong PHY ID issue with RTL8168dp
    
    [ Upstream commit 62bdc8fd1c21d4263ebd18bec57f82532d09249f ]
    
    As reported in [0] at least one RTL8168dp version has problems
    establishing a link. This chip version has an integrated RTL8211b PHY,
    however the chip seems to report a wrong PHY ID, resulting in a wrong
    PHY driver (for Generic Realtek PHY) being loaded.
    Work around this issue by adding a hook to r8168dp_2_mdio_read()
    for returning the correct PHY ID.
    
    [0] https://bbs.archlinux.org/viewtopic.php?id=246508
    
    Fixes: 242cd9b5866a ("r8169: use phy_resume/phy_suspend")
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e7c4fa275cf845090cf1d56afa3a620b690796b
Author: Maxim Mikityanskiy <maximmi@mellanox.com>
Date:   Mon Sep 16 14:54:20 2019 +0300

    net/mlx5e: Fix handling of compressed CQEs in case of low NAPI budget
    
    [ Upstream commit 9df86bdb6746d7fcfc2fda715f7a7c3d0ddb2654 ]
    
    When CQE compression is enabled, compressed CQEs use the following
    structure: a title is followed by one or many blocks, each containing 8
    mini CQEs (except the last, which may contain fewer mini CQEs).
    
    Due to NAPI budget restriction, a complete structure is not always
    parsed in one NAPI run, and some blocks with mini CQEs may be deferred
    to the next NAPI poll call - we have the mlx5e_decompress_cqes_cont call
    in the beginning of mlx5e_poll_rx_cq. However, if the budget is
    extremely low, some blocks may be left even after that, but the code
    that follows the mlx5e_decompress_cqes_cont call doesn't check it and
    assumes that a new CQE begins, which may not be the case. In such cases,
    random memory corruptions occur.
    
    An extremely low NAPI budget of 8 is used when busy_poll or busy_read is
    active.
    
    This commit adds a check to make sure that the previous compressed CQE
    has been completely parsed after mlx5e_decompress_cqes_cont, otherwise
    it prevents a new CQE from being fetched in the middle of a compressed
    CQE.
    
    This commit fixes random crashes in __build_skb, __page_pool_put_page
    and other not-related-directly places, that used to happen when both CQE
    compression and busy_poll/busy_read were enabled.
    
    Fixes: 7219ab34f184 ("net/mlx5e: CQE compression")
    Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c3355cc8e1973cc4c22c1622f211fcbab793608
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Sat Oct 26 11:53:40 2019 +0200

    selftests: fib_tests: add more tests for metric update
    
    [ Upstream commit 37de3b354150450ba12275397155e68113e99901 ]
    
    This patch adds two more tests to ipv4_addr_metric_test() to
    explicitly cover the scenarios fixed by the previous patch.
    
    Suggested-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b166e8838a974734f38750dcc55012babb0b51cf
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Sat Oct 26 11:53:39 2019 +0200

    ipv4: fix route update on metric change.
    
    [ Upstream commit 0b834ba00ab5337e938c727e216e1f5249794717 ]
    
    Since commit af4d768ad28c ("net/ipv4: Add support for specifying metric
    of connected routes"), when updating an IP address with a different metric,
    the associated connected route is updated, too.
    
    Still, the mentioned commit doesn't handle properly some corner cases:
    
    $ ip addr add dev eth0 192.168.1.0/24
    $ ip addr add dev eth0 192.168.2.1/32 peer 192.168.2.2
    $ ip addr add dev eth0 192.168.3.1/24
    $ ip addr change dev eth0 192.168.1.0/24 metric 10
    $ ip addr change dev eth0 192.168.2.1/32 peer 192.168.2.2 metric 10
    $ ip addr change dev eth0 192.168.3.1/24 metric 10
    $ ip -4 route
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.0
    192.168.2.2 dev eth0 proto kernel scope link src 192.168.2.1
    192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.2.1 metric 10
    
    Only the last route is correctly updated.
    
    The problem is the current test in fib_modify_prefix_metric():
    
            if (!(dev->flags & IFF_UP) ||
                ifa->ifa_flags & (IFA_F_SECONDARY | IFA_F_NOPREFIXROUTE) ||
                ipv4_is_zeronet(prefix) ||
                prefix == ifa->ifa_local || ifa->ifa_prefixlen == 32)
    
    Which should be the logical 'not' of the pre-existing test in
    fib_add_ifaddr():
    
            if (!ipv4_is_zeronet(prefix) && !(ifa->ifa_flags & IFA_F_SECONDARY) &&
                (prefix != addr || ifa->ifa_prefixlen < 32))
    
    To properly negate the original expression, we need to change the last
    logical 'or' to a logical 'and'.
    
    Fixes: af4d768ad28c ("net/ipv4: Add support for specifying metric of connected routes")
    Reported-and-suggested-by: Beniamino Galvani <bgalvani@redhat.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd3bcb44ee3b77f60cfa8a8ff970b512ae9a002f
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Oct 23 22:44:52 2019 -0700

    net: add READ_ONCE() annotation in __skb_wait_for_more_packets()
    
    [ Upstream commit 7c422d0ce97552dde4a97e6290de70ec6efb0fc6 ]
    
    __skb_wait_for_more_packets() can be called while other cpus
    can feed packets to the socket receive queue.
    
    KCSAN reported :
    
    BUG: KCSAN: data-race in __skb_wait_for_more_packets / __udp_enqueue_schedule_skb
    
    write to 0xffff888102e40b58 of 8 bytes by interrupt on cpu 0:
     __skb_insert include/linux/skbuff.h:1852 [inline]
     __skb_queue_before include/linux/skbuff.h:1958 [inline]
     __skb_queue_tail include/linux/skbuff.h:1991 [inline]
     __udp_enqueue_schedule_skb+0x2d7/0x410 net/ipv4/udp.c:1470
     __udp_queue_rcv_skb net/ipv4/udp.c:1940 [inline]
     udp_queue_rcv_one_skb+0x7bd/0xc70 net/ipv4/udp.c:2057
     udp_queue_rcv_skb+0xb5/0x400 net/ipv4/udp.c:2074
     udp_unicast_rcv_skb.isra.0+0x7e/0x1c0 net/ipv4/udp.c:2233
     __udp4_lib_rcv+0xa44/0x17c0 net/ipv4/udp.c:2300
     udp_rcv+0x2b/0x40 net/ipv4/udp.c:2470
     ip_protocol_deliver_rcu+0x4d/0x420 net/ipv4/ip_input.c:204
     ip_local_deliver_finish+0x110/0x140 net/ipv4/ip_input.c:231
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ip_local_deliver+0x133/0x210 net/ipv4/ip_input.c:252
     dst_input include/net/dst.h:442 [inline]
     ip_rcv_finish+0x121/0x160 net/ipv4/ip_input.c:413
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ip_rcv+0x18f/0x1a0 net/ipv4/ip_input.c:523
     __netif_receive_skb_one_core+0xa7/0xe0 net/core/dev.c:5010
     __netif_receive_skb+0x37/0xf0 net/core/dev.c:5124
     process_backlog+0x1d3/0x420 net/core/dev.c:5955
    
    read to 0xffff888102e40b58 of 8 bytes by task 13035 on cpu 1:
     __skb_wait_for_more_packets+0xfa/0x320 net/core/datagram.c:100
     __skb_recv_udp+0x374/0x500 net/ipv4/udp.c:1683
     udp_recvmsg+0xe1/0xb10 net/ipv4/udp.c:1712
     inet_recvmsg+0xbb/0x250 net/ipv4/af_inet.c:838
     sock_recvmsg_nosec+0x5c/0x70 net/socket.c:871
     ___sys_recvmsg+0x1a0/0x3e0 net/socket.c:2480
     do_recvmmsg+0x19a/0x5c0 net/socket.c:2601
     __sys_recvmmsg+0x1ef/0x200 net/socket.c:2680
     __do_sys_recvmmsg net/socket.c:2703 [inline]
     __se_sys_recvmmsg net/socket.c:2696 [inline]
     __x64_sys_recvmmsg+0x89/0xb0 net/socket.c:2696
     do_syscall_64+0xcc/0x370 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 1 PID: 13035 Comm: syz-executor.3 Not tainted 5.4.0-rc3+ #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f3df7f1eaa70903c2c0c73c0999e120fe452a2a
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Oct 23 22:44:51 2019 -0700

    net: use skb_queue_empty_lockless() in busy poll contexts
    
    [ Upstream commit 3f926af3f4d688e2e11e7f8ed04e277a14d4d4a4 ]
    
    Busy polling usually runs without locks.
    Let's use skb_queue_empty_lockless() instead of skb_queue_empty()
    
    Also uses READ_ONCE() in __skb_try_recv_datagram() to address
    a similar potential problem.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eaf548feaa17308317bdac2903c1be820e5c186a
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Oct 23 22:44:50 2019 -0700

    net: use skb_queue_empty_lockless() in poll() handlers
    
    [ Upstream commit 3ef7cf57c72f32f61e97f8fa401bc39ea1f1a5d4 ]
    
    Many poll() handlers are lockless. Using skb_queue_empty_lockless()
    instead of skb_queue_empty() is more appropriate.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit afa1f5e98c1114d509a9c73747f0940de70bb494
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Oct 23 22:44:49 2019 -0700

    udp: use skb_queue_empty_lockless()
    
    [ Upstream commit 137a0dbe3426fd7bcfe3f8117b36a87b3590e4eb ]
    
    syzbot reported a data-race [1].
    
    We should use skb_queue_empty_lockless() to document that we are
    not ensuring a mutual exclusion and silence KCSAN.
    
    [1]
    BUG: KCSAN: data-race in __skb_recv_udp / __udp_enqueue_schedule_skb
    
    write to 0xffff888122474b50 of 8 bytes by interrupt on cpu 0:
     __skb_insert include/linux/skbuff.h:1852 [inline]
     __skb_queue_before include/linux/skbuff.h:1958 [inline]
     __skb_queue_tail include/linux/skbuff.h:1991 [inline]
     __udp_enqueue_schedule_skb+0x2c1/0x410 net/ipv4/udp.c:1470
     __udp_queue_rcv_skb net/ipv4/udp.c:1940 [inline]
     udp_queue_rcv_one_skb+0x7bd/0xc70 net/ipv4/udp.c:2057
     udp_queue_rcv_skb+0xb5/0x400 net/ipv4/udp.c:2074
     udp_unicast_rcv_skb.isra.0+0x7e/0x1c0 net/ipv4/udp.c:2233
     __udp4_lib_rcv+0xa44/0x17c0 net/ipv4/udp.c:2300
     udp_rcv+0x2b/0x40 net/ipv4/udp.c:2470
     ip_protocol_deliver_rcu+0x4d/0x420 net/ipv4/ip_input.c:204
     ip_local_deliver_finish+0x110/0x140 net/ipv4/ip_input.c:231
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ip_local_deliver+0x133/0x210 net/ipv4/ip_input.c:252
     dst_input include/net/dst.h:442 [inline]
     ip_rcv_finish+0x121/0x160 net/ipv4/ip_input.c:413
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ip_rcv+0x18f/0x1a0 net/ipv4/ip_input.c:523
     __netif_receive_skb_one_core+0xa7/0xe0 net/core/dev.c:5010
     __netif_receive_skb+0x37/0xf0 net/core/dev.c:5124
     process_backlog+0x1d3/0x420 net/core/dev.c:5955
    
    read to 0xffff888122474b50 of 8 bytes by task 8921 on cpu 1:
     skb_queue_empty include/linux/skbuff.h:1494 [inline]
     __skb_recv_udp+0x18d/0x500 net/ipv4/udp.c:1653
     udp_recvmsg+0xe1/0xb10 net/ipv4/udp.c:1712
     inet_recvmsg+0xbb/0x250 net/ipv4/af_inet.c:838
     sock_recvmsg_nosec+0x5c/0x70 net/socket.c:871
     ___sys_recvmsg+0x1a0/0x3e0 net/socket.c:2480
     do_recvmmsg+0x19a/0x5c0 net/socket.c:2601
     __sys_recvmmsg+0x1ef/0x200 net/socket.c:2680
     __do_sys_recvmmsg net/socket.c:2703 [inline]
     __se_sys_recvmmsg net/socket.c:2696 [inline]
     __x64_sys_recvmmsg+0x89/0xb0 net/socket.c:2696
     do_syscall_64+0xcc/0x370 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 1 PID: 8921 Comm: syz-executor.4 Not tainted 5.4.0-rc3+ #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d5ac4232c376c5785549be561e863b7f3c007827
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Oct 23 22:44:48 2019 -0700

    net: add skb_queue_empty_lockless()
    
    [ Upstream commit d7d16a89350ab263484c0aa2b523dd3a234e4a80 ]
    
    Some paths call skb_queue_empty() without holding
    the queue lock. We must use a barrier in order
    to not let the compiler do strange things, and avoid
    KCSAN splats.
    
    Adding a barrier in skb_queue_empty() might be overkill,
    I prefer adding a new helper to clearly identify
    points where the callers might be lockless. This might
    help us finding real bugs.
    
    The corresponding WRITE_ONCE() should add zero cost
    for current compilers.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 83532eb4804964463a36b6f31ce595f202525094
Author: Xin Long <lucien.xin@gmail.com>
Date:   Tue Oct 29 01:24:32 2019 +0800

    vxlan: check tun_info options_len properly
    
    [ Upstream commit eadf52cf1852196a1363044dcda22fa5d7f296f7 ]
    
    This patch is to improve the tun_info options_len by dropping
    the skb when TUNNEL_VXLAN_OPT is set but options_len is less
    than vxlan_metadata. This can void a potential out-of-bounds
    access on ip_tun_info.
    
    Fixes: ee122c79d422 ("vxlan: Flow based tunneling")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8a5adbbf77952a8794f20e9ae49ed79e767d80d
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Oct 24 11:43:31 2019 -0700

    udp: fix data-race in udp_set_dev_scratch()
    
    [ Upstream commit a793183caa9afae907a0d7ddd2ffd57329369bf5 ]
    
    KCSAN reported a data-race in udp_set_dev_scratch() [1]
    
    The issue here is that we must not write over skb fields
    if skb is shared. A similar issue has been fixed in commit
    89c22d8c3b27 ("net: Fix skb csum races when peeking")
    
    While we are at it, use a helper only dealing with
    udp_skb_scratch(skb)->csum_unnecessary, as this allows
    udp_set_dev_scratch() to be called once and thus inlined.
    
    [1]
    BUG: KCSAN: data-race in udp_set_dev_scratch / udpv6_recvmsg
    
    write to 0xffff888120278317 of 1 bytes by task 10411 on cpu 1:
     udp_set_dev_scratch+0xea/0x200 net/ipv4/udp.c:1308
     __first_packet_length+0x147/0x420 net/ipv4/udp.c:1556
     first_packet_length+0x68/0x2a0 net/ipv4/udp.c:1579
     udp_poll+0xea/0x110 net/ipv4/udp.c:2720
     sock_poll+0xed/0x250 net/socket.c:1256
     vfs_poll include/linux/poll.h:90 [inline]
     do_select+0x7d0/0x1020 fs/select.c:534
     core_sys_select+0x381/0x550 fs/select.c:677
     do_pselect.constprop.0+0x11d/0x160 fs/select.c:759
     __do_sys_pselect6 fs/select.c:784 [inline]
     __se_sys_pselect6 fs/select.c:769 [inline]
     __x64_sys_pselect6+0x12e/0x170 fs/select.c:769
     do_syscall_64+0xcc/0x370 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    read to 0xffff888120278317 of 1 bytes by task 10413 on cpu 0:
     udp_skb_csum_unnecessary include/net/udp.h:358 [inline]
     udpv6_recvmsg+0x43e/0xe90 net/ipv6/udp.c:310
     inet6_recvmsg+0xbb/0x240 net/ipv6/af_inet6.c:592
     sock_recvmsg_nosec+0x5c/0x70 net/socket.c:871
     ___sys_recvmsg+0x1a0/0x3e0 net/socket.c:2480
     do_recvmmsg+0x19a/0x5c0 net/socket.c:2601
     __sys_recvmmsg+0x1ef/0x200 net/socket.c:2680
     __do_sys_recvmmsg net/socket.c:2703 [inline]
     __se_sys_recvmmsg net/socket.c:2696 [inline]
     __x64_sys_recvmmsg+0x89/0xb0 net/socket.c:2696
     do_syscall_64+0xcc/0x370 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 0 PID: 10413 Comm: syz-executor.0 Not tainted 5.4.0-rc3+ #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    
    Fixes: 2276f58ac589 ("udp: use a separate rx queue for packet reception")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 12fab1634ab127c1d4ba6a3e21a83e6d71c392f4
Author: Wei Wang <weiwan@google.com>
Date:   Thu Oct 31 16:24:36 2019 -0700

    selftests: net: reuseport_dualstack: fix uninitalized parameter
    
    [ Upstream commit d64479a3e3f9924074ca7b50bd72fa5211dca9c1 ]
    
    This test reports EINVAL for getsockopt(SOL_SOCKET, SO_DOMAIN)
    occasionally due to the uninitialized length parameter.
    Initialize it to fix this, and also use int for "test_family" to comply
    with the API standard.
    
    Fixes: d6a61f80b871 ("soreuseport: test mixed v4/v6 sockets")
    Reported-by: Maciej Żenczykowski <maze@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Wei Wang <weiwan@google.com>
    Cc: Craig Gallek <cgallek@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 321c99155f4b4d29a77f2a9a30593fc0b222a305
Author: zhanglin <zhang.lin16@zte.com.cn>
Date:   Sat Oct 26 15:54:16 2019 +0800

    net: Zeroing the structure ethtool_wolinfo in ethtool_get_wol()
    
    [ Upstream commit 5ff223e86f5addbfae26419cbb5d61d98f6fbf7d ]
    
    memset() the structure ethtool_wolinfo that has padded bytes
    but the padded bytes have not been zeroed out.
    
    Signed-off-by: zhanglin <zhang.lin16@zte.com.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9da271c1cdc14839b694e23889a653c1ed0b5f8f
Author: Daniel Wagner <dwagner@suse.de>
Date:   Fri Oct 25 10:04:13 2019 +0200

    net: usb: lan78xx: Disable interrupts before calling generic_handle_irq()
    
    [ Upstream commit 0a29ac5bd3a988dc151c8d26910dec2557421f64 ]
    
    lan78xx_status() will run with interrupts enabled due to the change in
    ed194d136769 ("usb: core: remove local_irq_save() around ->complete()
    handler"). generic_handle_irq() expects to be run with IRQs disabled.
    
    [    4.886203] 000: irq 79 handler irq_default_primary_handler+0x0/0x8 enabled interrupts
    [    4.886243] 000: WARNING: CPU: 0 PID: 0 at kernel/irq/handle.c:152 __handle_irq_event_percpu+0x154/0x168
    [    4.896294] 000: Modules linked in:
    [    4.896301] 000: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.3.6 #39
    [    4.896310] 000: Hardware name: Raspberry Pi 3 Model B+ (DT)
    [    4.896315] 000: pstate: 60000005 (nZCv daif -PAN -UAO)
    [    4.896321] 000: pc : __handle_irq_event_percpu+0x154/0x168
    [    4.896331] 000: lr : __handle_irq_event_percpu+0x154/0x168
    [    4.896339] 000: sp : ffff000010003cc0
    [    4.896346] 000: x29: ffff000010003cc0 x28: 0000000000000060
    [    4.896355] 000: x27: ffff000011021980 x26: ffff00001189c72b
    [    4.896364] 000: x25: ffff000011702bc0 x24: ffff800036d6e400
    [    4.896373] 000: x23: 000000000000004f x22: ffff000010003d64
    [    4.896381] 000: x21: 0000000000000000 x20: 0000000000000002
    [    4.896390] 000: x19: ffff8000371c8480 x18: 0000000000000060
    [    4.896398] 000: x17: 0000000000000000 x16: 00000000000000eb
    [    4.896406] 000: x15: ffff000011712d18 x14: 7265746e69206465
    [    4.896414] 000: x13: ffff000010003ba0 x12: ffff000011712df0
    [    4.896422] 000: x11: 0000000000000001 x10: ffff000011712e08
    [    4.896430] 000: x9 : 0000000000000001 x8 : 000000000003c920
    [    4.896437] 000: x7 : ffff0000118cc410 x6 : ffff0000118c7f00
    [    4.896445] 000: x5 : 000000000003c920 x4 : 0000000000004510
    [    4.896453] 000: x3 : ffff000011712dc8 x2 : 0000000000000000
    [    4.896461] 000: x1 : 73a3f67df94c1500 x0 : 0000000000000000
    [    4.896466] 000: Call trace:
    [    4.896471] 000:  __handle_irq_event_percpu+0x154/0x168
    [    4.896481] 000:  handle_irq_event_percpu+0x50/0xb0
    [    4.896489] 000:  handle_irq_event+0x40/0x98
    [    4.896497] 000:  handle_simple_irq+0xa4/0xf0
    [    4.896505] 000:  generic_handle_irq+0x24/0x38
    [    4.896513] 000:  intr_complete+0xb0/0xe0
    [    4.896525] 000:  __usb_hcd_giveback_urb+0x58/0xd8
    [    4.896533] 000:  usb_giveback_urb_bh+0xd0/0x170
    [    4.896539] 000:  tasklet_action_common.isra.0+0x9c/0x128
    [    4.896549] 000:  tasklet_hi_action+0x24/0x30
    [    4.896556] 000:  __do_softirq+0x120/0x23c
    [    4.896564] 000:  irq_exit+0xb8/0xd8
    [    4.896571] 000:  __handle_domain_irq+0x64/0xb8
    [    4.896579] 000:  bcm2836_arm_irqchip_handle_irq+0x60/0xc0
    [    4.896586] 000:  el1_irq+0xb8/0x140
    [    4.896592] 000:  arch_cpu_idle+0x10/0x18
    [    4.896601] 000:  do_idle+0x200/0x280
    [    4.896608] 000:  cpu_startup_entry+0x20/0x28
    [    4.896615] 000:  rest_init+0xb4/0xc0
    [    4.896623] 000:  arch_call_rest_init+0xc/0x14
    [    4.896632] 000:  start_kernel+0x454/0x480
    
    Fixes: ed194d136769 ("usb: core: remove local_irq_save() around ->complete() handler")
    Cc: Woojung Huh <woojung.huh@microchip.com>
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Andrew Lunn <andrew@lunn.ch>
    Cc: Stefan Wahren <wahrenst@gmx.net>
    Cc: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: David Miller <davem@davemloft.net>
    Signed-off-by: Daniel Wagner <dwagner@suse.de>
    Tested-by: Stefan Wahren <wahrenst@gmx.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 40400fdd312a822aa3529f865fe78f8bdc32f762
Author: Guillaume Nault <gnault@redhat.com>
Date:   Wed Oct 23 18:39:04 2019 +0200

    netns: fix GFP flags in rtnl_net_notifyid()
    
    [ Upstream commit d4e4fdf9e4a27c87edb79b1478955075be141f67 ]
    
    In rtnl_net_notifyid(), we certainly can't pass a null GFP flag to
    rtnl_notify(). A GFP_KERNEL flag would be fine in most circumstances,
    but there are a few paths calling rtnl_net_notifyid() from atomic
    context or from RCU critical sections. The later also precludes the use
    of gfp_any() as it wouldn't detect the RCU case. Also, the nlmsg_new()
    call is wrong too, as it uses GFP_KERNEL unconditionally.
    
    Therefore, we need to pass the GFP flags as parameter and propagate it
    through function calls until the proper flags can be determined.
    
    In most cases, GFP_KERNEL is fine. The exceptions are:
      * openvswitch: ovs_vport_cmd_get() and ovs_vport_cmd_dump()
        indirectly call rtnl_net_notifyid() from RCU critical section,
    
      * rtnetlink: rtmsg_ifinfo_build_skb() already receives GFP flags as
        parameter.
    
    Also, in ovs_vport_cmd_build_info(), let's change the GFP flags used
    by nlmsg_new(). The function is allowed to sleep, so better make the
    flags consistent with the ones used in the following
    ovs_vport_cmd_fill_info() call.
    
    Found by code inspection.
    
    Fixes: 9a9634545c70 ("netns: notify netns id events")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Acked-by: Pravin B Shelar <pshelar@ovn.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d72dbb4ca2f4a955d476ca70e449f53a7d58924
Author: Eran Ben Elisha <eranbe@mellanox.com>
Date:   Sun Oct 27 16:39:15 2019 +0200

    net/mlx4_core: Dynamically set guaranteed amount of counters per VF
    
    [ Upstream commit e19868efea0c103f23b4b7e986fd0a703822111f ]
    
    Prior to this patch, the amount of counters guaranteed per VF in the
    resource tracker was MLX4_VF_COUNTERS_PER_PORT * MLX4_MAX_PORTS. It was
    set regardless if the VF was single or dual port.
    This caused several VFs to have no guaranteed counters although the
    system could satisfy their request.
    
    The fix is to dynamically guarantee counters, based on each VF
    specification.
    
    Fixes: 9de92c60beaa ("net/mlx4_core: Adjust counter grant policy in the resource tracker")
    Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f05975d9f393a4fb920c852afe5a8f71d919f576
Author: Jiangfeng Xiao <xiaojiangfeng@huawei.com>
Date:   Mon Oct 28 13:09:46 2019 +0800

    net: hisilicon: Fix ping latency when deal with high throughput
    
    [ Upstream commit e56bd641ca61beb92b135298d5046905f920b734 ]
    
    This is due to error in over budget processing.
    When dealing with high throughput, the used buffers
    that exceeds the budget is not cleaned up. In addition,
    it takes a lot of cycles to clean up the used buffer,
    and then the buffer where the valid data is located can take effect.
    
    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 1d5cb12a25393ed44d11865634707dbb5a52c9a0
Author: Tejun Heo <tj@kernel.org>
Date:   Thu Oct 24 13:50:27 2019 -0700

    net: fix sk_page_frag() recursion from memory reclaim
    
    [ Upstream commit 20eb4f29b60286e0d6dc01d9c260b4bd383c58fb ]
    
    sk_page_frag() optimizes skb_frag allocations by using per-task
    skb_frag cache when it knows it's the only user.  The condition is
    determined by seeing whether the socket allocation mask allows
    blocking - if the allocation may block, it obviously owns the task's
    context and ergo exclusively owns current->task_frag.
    
    Unfortunately, this misses recursion through memory reclaim path.
    Please take a look at the following backtrace.
    
     [2] RIP: 0010:tcp_sendmsg_locked+0xccf/0xe10
         ...
         tcp_sendmsg+0x27/0x40
         sock_sendmsg+0x30/0x40
         sock_xmit.isra.24+0xa1/0x170 [nbd]
         nbd_send_cmd+0x1d2/0x690 [nbd]
         nbd_queue_rq+0x1b5/0x3b0 [nbd]
         __blk_mq_try_issue_directly+0x108/0x1b0
         blk_mq_request_issue_directly+0xbd/0xe0
         blk_mq_try_issue_list_directly+0x41/0xb0
         blk_mq_sched_insert_requests+0xa2/0xe0
         blk_mq_flush_plug_list+0x205/0x2a0
         blk_flush_plug_list+0xc3/0xf0
     [1] blk_finish_plug+0x21/0x2e
         _xfs_buf_ioapply+0x313/0x460
         __xfs_buf_submit+0x67/0x220
         xfs_buf_read_map+0x113/0x1a0
         xfs_trans_read_buf_map+0xbf/0x330
         xfs_btree_read_buf_block.constprop.42+0x95/0xd0
         xfs_btree_lookup_get_block+0x95/0x170
         xfs_btree_lookup+0xcc/0x470
         xfs_bmap_del_extent_real+0x254/0x9a0
         __xfs_bunmapi+0x45c/0xab0
         xfs_bunmapi+0x15/0x30
         xfs_itruncate_extents_flags+0xca/0x250
         xfs_free_eofblocks+0x181/0x1e0
         xfs_fs_destroy_inode+0xa8/0x1b0
         destroy_inode+0x38/0x70
         dispose_list+0x35/0x50
         prune_icache_sb+0x52/0x70
         super_cache_scan+0x120/0x1a0
         do_shrink_slab+0x120/0x290
         shrink_slab+0x216/0x2b0
         shrink_node+0x1b6/0x4a0
         do_try_to_free_pages+0xc6/0x370
         try_to_free_mem_cgroup_pages+0xe3/0x1e0
         try_charge+0x29e/0x790
         mem_cgroup_charge_skmem+0x6a/0x100
         __sk_mem_raise_allocated+0x18e/0x390
         __sk_mem_schedule+0x2a/0x40
     [0] tcp_sendmsg_locked+0x8eb/0xe10
         tcp_sendmsg+0x27/0x40
         sock_sendmsg+0x30/0x40
         ___sys_sendmsg+0x26d/0x2b0
         __sys_sendmsg+0x57/0xa0
         do_syscall_64+0x42/0x100
         entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    In [0], tcp_send_msg_locked() was using current->page_frag when it
    called sk_wmem_schedule().  It already calculated how many bytes can
    be fit into current->page_frag.  Due to memory pressure,
    sk_wmem_schedule() called into memory reclaim path which called into
    xfs and then IO issue path.  Because the filesystem in question is
    backed by nbd, the control goes back into the tcp layer - back into
    tcp_sendmsg_locked().
    
    nbd sets sk_allocation to (GFP_NOIO | __GFP_MEMALLOC) which makes
    sense - it's in the process of freeing memory and wants to be able to,
    e.g., drop clean pages to make forward progress.  However, this
    confused sk_page_frag() called from [2].  Because it only tests
    whether the allocation allows blocking which it does, it now thinks
    current->page_frag can be used again although it already was being
    used in [0].
    
    After [2] used current->page_frag, the offset would be increased by
    the used amount.  When the control returns to [0],
    current->page_frag's offset is increased and the previously calculated
    number of bytes now may overrun the end of allocated memory leading to
    silent memory corruptions.
    
    Fix it by adding gfpflags_normal_context() which tests sleepable &&
    !reclaim and use it to determine whether to use current->task_frag.
    
    v2: Eric didn't like gfp flags being tested twice.  Introduce a new
        helper gfpflags_normal_context() and combine the two tests.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: Josef Bacik <josef@toxicpanda.com>
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 189982d111c077922b0811372e7bf4dc36c51e46
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Fri Oct 25 13:47:24 2019 +1100

    net: ethernet: ftgmac100: Fix DMA coherency issue with SW checksum
    
    [ Upstream commit 88824e3bf29a2fcacfd9ebbfe03063649f0f3254 ]
    
    We are calling the checksum helper after the dma_map_single()
    call to map the packet. This is incorrect as the checksumming
    code will touch the packet from the CPU. This means the cache
    won't be properly flushes (or the bounce buffering will leave
    us with the unmodified packet to DMA).
    
    This moves the calculation of the checksum & vlan tags to
    before the DMA mapping.
    
    This also has the side effect of fixing another bug: If the
    checksum helper fails, we goto "drop" to drop the packet, which
    will not unmap the DMA mapping.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Fixes: 05690d633f30 ("ftgmac100: Upgrade to NETIF_F_HW_CSUM")
    Reviewed-by: Vijay Khemka <vijaykhemka@fb.com>
    Tested-by: Vijay Khemka <vijaykhemka@fb.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5536fc891221464bc2900d1d108eb87da14614ff
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Thu Oct 31 15:54:05 2019 -0700

    net: dsa: bcm_sf2: Fix IMP setup for port different than 8
    
    [ Upstream commit 5fc0f21246e50afdf318b5a3a941f7f4f57b8947 ]
    
    Since it became possible for the DSA core to use a CPU port different
    than 8, our bcm_sf2_imp_setup() function was broken because it assumes
    that registers are applicable to port 8. In particular, the port's MAC
    is going to stay disabled, so make sure we clear the RX_DIS and TX_DIS
    bits if we are not configured for port 8.
    
    Fixes: 9f91484f6fcc ("net: dsa: make "label" property optional for dsa2")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c50a36d0b78405dd81ce144e492a6289c870296
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Oct 29 10:54:44 2019 -0700

    net: annotate lockless accesses to sk->sk_napi_id
    
    [ Upstream commit ee8d153d46a3b98c064ee15c0c0a3bbf1450e5a1 ]
    
    We already annotated most accesses to sk->sk_napi_id
    
    We missed sk_mark_napi_id() and sk_mark_napi_id_once()
    which might be called without socket lock held in UDP stack.
    
    KCSAN reported :
    BUG: KCSAN: data-race in udpv6_queue_rcv_one_skb / udpv6_queue_rcv_one_skb
    
    write to 0xffff888121c6d108 of 4 bytes by interrupt on cpu 0:
     sk_mark_napi_id include/net/busy_poll.h:125 [inline]
     __udpv6_queue_rcv_skb net/ipv6/udp.c:571 [inline]
     udpv6_queue_rcv_one_skb+0x70c/0xb40 net/ipv6/udp.c:672
     udpv6_queue_rcv_skb+0xb5/0x400 net/ipv6/udp.c:689
     udp6_unicast_rcv_skb.isra.0+0xd7/0x180 net/ipv6/udp.c:832
     __udp6_lib_rcv+0x69c/0x1770 net/ipv6/udp.c:913
     udpv6_rcv+0x2b/0x40 net/ipv6/udp.c:1015
     ip6_protocol_deliver_rcu+0x22a/0xbe0 net/ipv6/ip6_input.c:409
     ip6_input_finish+0x30/0x50 net/ipv6/ip6_input.c:450
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ip6_input+0x177/0x190 net/ipv6/ip6_input.c:459
     dst_input include/net/dst.h:442 [inline]
     ip6_rcv_finish+0x110/0x140 net/ipv6/ip6_input.c:76
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ipv6_rcv+0x1a1/0x1b0 net/ipv6/ip6_input.c:284
     __netif_receive_skb_one_core+0xa7/0xe0 net/core/dev.c:5010
     __netif_receive_skb+0x37/0xf0 net/core/dev.c:5124
     process_backlog+0x1d3/0x420 net/core/dev.c:5955
     napi_poll net/core/dev.c:6392 [inline]
     net_rx_action+0x3ae/0xa90 net/core/dev.c:6460
    
    write to 0xffff888121c6d108 of 4 bytes by interrupt on cpu 1:
     sk_mark_napi_id include/net/busy_poll.h:125 [inline]
     __udpv6_queue_rcv_skb net/ipv6/udp.c:571 [inline]
     udpv6_queue_rcv_one_skb+0x70c/0xb40 net/ipv6/udp.c:672
     udpv6_queue_rcv_skb+0xb5/0x400 net/ipv6/udp.c:689
     udp6_unicast_rcv_skb.isra.0+0xd7/0x180 net/ipv6/udp.c:832
     __udp6_lib_rcv+0x69c/0x1770 net/ipv6/udp.c:913
     udpv6_rcv+0x2b/0x40 net/ipv6/udp.c:1015
     ip6_protocol_deliver_rcu+0x22a/0xbe0 net/ipv6/ip6_input.c:409
     ip6_input_finish+0x30/0x50 net/ipv6/ip6_input.c:450
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ip6_input+0x177/0x190 net/ipv6/ip6_input.c:459
     dst_input include/net/dst.h:442 [inline]
     ip6_rcv_finish+0x110/0x140 net/ipv6/ip6_input.c:76
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ipv6_rcv+0x1a1/0x1b0 net/ipv6/ip6_input.c:284
     __netif_receive_skb_one_core+0xa7/0xe0 net/core/dev.c:5010
     __netif_receive_skb+0x37/0xf0 net/core/dev.c:5124
     process_backlog+0x1d3/0x420 net/core/dev.c:5955
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 1 PID: 10890 Comm: syz-executor.0 Not tainted 5.4.0-rc3+ #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    
    Fixes: e68b6e50fa35 ("udp: enable busy polling for all sockets")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0cfaf03c5d58f1b50151ee428911118d9bbd5556
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Oct 30 13:00:04 2019 -0700

    net: annotate accesses to sk->sk_incoming_cpu
    
    [ Upstream commit 7170a977743b72cf3eb46ef6ef89885dc7ad3621 ]
    
    This socket field can be read and written by concurrent cpus.
    
    Use READ_ONCE() and WRITE_ONCE() annotations to document this,
    and avoid some compiler 'optimizations'.
    
    KCSAN reported :
    
    BUG: KCSAN: data-race in tcp_v4_rcv / tcp_v4_rcv
    
    write to 0xffff88812220763c of 4 bytes by interrupt on cpu 0:
     sk_incoming_cpu_update include/net/sock.h:953 [inline]
     tcp_v4_rcv+0x1b3c/0x1bb0 net/ipv4/tcp_ipv4.c:1934
     ip_protocol_deliver_rcu+0x4d/0x420 net/ipv4/ip_input.c:204
     ip_local_deliver_finish+0x110/0x140 net/ipv4/ip_input.c:231
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ip_local_deliver+0x133/0x210 net/ipv4/ip_input.c:252
     dst_input include/net/dst.h:442 [inline]
     ip_rcv_finish+0x121/0x160 net/ipv4/ip_input.c:413
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ip_rcv+0x18f/0x1a0 net/ipv4/ip_input.c:523
     __netif_receive_skb_one_core+0xa7/0xe0 net/core/dev.c:5010
     __netif_receive_skb+0x37/0xf0 net/core/dev.c:5124
     process_backlog+0x1d3/0x420 net/core/dev.c:5955
     napi_poll net/core/dev.c:6392 [inline]
     net_rx_action+0x3ae/0xa90 net/core/dev.c:6460
     __do_softirq+0x115/0x33f kernel/softirq.c:292
     do_softirq_own_stack+0x2a/0x40 arch/x86/entry/entry_64.S:1082
     do_softirq.part.0+0x6b/0x80 kernel/softirq.c:337
     do_softirq kernel/softirq.c:329 [inline]
     __local_bh_enable_ip+0x76/0x80 kernel/softirq.c:189
    
    read to 0xffff88812220763c of 4 bytes by interrupt on cpu 1:
     sk_incoming_cpu_update include/net/sock.h:952 [inline]
     tcp_v4_rcv+0x181a/0x1bb0 net/ipv4/tcp_ipv4.c:1934
     ip_protocol_deliver_rcu+0x4d/0x420 net/ipv4/ip_input.c:204
     ip_local_deliver_finish+0x110/0x140 net/ipv4/ip_input.c:231
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ip_local_deliver+0x133/0x210 net/ipv4/ip_input.c:252
     dst_input include/net/dst.h:442 [inline]
     ip_rcv_finish+0x121/0x160 net/ipv4/ip_input.c:413
     NF_HOOK include/linux/netfilter.h:305 [inline]
     NF_HOOK include/linux/netfilter.h:299 [inline]
     ip_rcv+0x18f/0x1a0 net/ipv4/ip_input.c:523
     __netif_receive_skb_one_core+0xa7/0xe0 net/core/dev.c:5010
     __netif_receive_skb+0x37/0xf0 net/core/dev.c:5124
     process_backlog+0x1d3/0x420 net/core/dev.c:5955
     napi_poll net/core/dev.c:6392 [inline]
     net_rx_action+0x3ae/0xa90 net/core/dev.c:6460
     __do_softirq+0x115/0x33f kernel/softirq.c:292
     run_ksoftirqd+0x46/0x60 kernel/softirq.c:603
     smpboot_thread_fn+0x37d/0x4a0 kernel/smpboot.c:165
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 1 PID: 16 Comm: ksoftirqd/1 Not tainted 5.4.0-rc3+ #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07de738901d60302814a5bbde7d03a2b3b838e06
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Nov 1 10:32:19 2019 -0700

    inet: stop leaking jiffies on the wire
    
    [ Upstream commit a904a0693c189691eeee64f6c6b188bd7dc244e9 ]
    
    Historically linux tried to stick to RFC 791, 1122, 2003
    for IPv4 ID field generation.
    
    RFC 6864 made clear that no matter how hard we try,
    we can not ensure unicity of IP ID within maximum
    lifetime for all datagrams with a given source
    address/destination address/protocol tuple.
    
    Linux uses a per socket inet generator (inet_id), initialized
    at connection startup with a XOR of 'jiffies' and other
    fields that appear clear on the wire.
    
    Thiemo Nagel pointed that this strategy is a privacy
    concern as this provides 16 bits of entropy to fingerprint
    devices.
    
    Let's switch to a random starting point, this is just as
    good as far as RFC 6864 is concerned and does not leak
    anything critical.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Thiemo Nagel <tnagel@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 163901dc945b514fa776eeaa081d5448ca28a8f4
Author: Xin Long <lucien.xin@gmail.com>
Date:   Mon Oct 28 23:19:35 2019 +0800

    erspan: fix the tun_info options_len check for erspan
    
    [ Upstream commit 2eb8d6d2910cfe3dc67dc056f26f3dd9c63d47cd ]
    
    The check for !md doens't really work for ip_tunnel_info_opts(info) which
    only does info + 1. Also to avoid out-of-bounds access on info, it should
    ensure options_len is not less than erspan_metadata in both erspan_xmit()
    and ip6erspan_tunnel_xmit().
    
    Fixes: 1a66a836da ("gre: add collect_md mode to ERSPAN tunnel")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96df1ec22b97a7e10df98ae870e9c4939702926b
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Nov 4 07:57:55 2019 -0800

    dccp: do not leak jiffies on the wire
    
    [ Upstream commit 3d1e5039f5f87a8731202ceca08764ee7cb010d3 ]
    
    For some reason I missed the case of DCCP passive
    flows in my previous patch.
    
    Fixes: a904a0693c18 ("inet: stop leaking jiffies on the wire")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Thiemo Nagel <tnagel@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f291613ff140fb3c35bfb72a1dec6209229998ca
Author: Vishal Kulkarni <vishal@chelsio.com>
Date:   Wed Oct 30 20:17:57 2019 +0530

    cxgb4: fix panic when attaching to ULD fail
    
    [ Upstream commit fc89cc358fb64e2429aeae0f37906126636507ec ]
    
    Release resources when attaching to ULD fail. Otherwise, data
    mismatch is seen between LLD and ULD later on, which lead to
    kernel panic when accessing resources that should not even
    exist in the first place.
    
    Fixes: 94cdb8bb993a ("cxgb4: Add support for dynamic allocation of resources for ULD")
    Signed-off-by: Shahjada Abul Husain <shahjada@chelsio.com>
    Signed-off-by: Vishal Kulkarni <vishal@chelsio.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f032ca298dda0cc16eb121bce900f15373f346e
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Mon Oct 21 15:56:28 2019 -0400

    nbd: handle racing with error'ed out commands
    
    [ Upstream commit 7ce23e8e0a9cd38338fc8316ac5772666b565ca9 ]
    
    We hit the following warning in production
    
    print_req_error: I/O error, dev nbd0, sector 7213934408 flags 80700
    ------------[ cut here ]------------
    refcount_t: underflow; use-after-free.
    WARNING: CPU: 25 PID: 32407 at lib/refcount.c:190 refcount_sub_and_test_checked+0x53/0x60
    Workqueue: knbd-recv recv_work [nbd]
    RIP: 0010:refcount_sub_and_test_checked+0x53/0x60
    Call Trace:
     blk_mq_free_request+0xb7/0xf0
     blk_mq_complete_request+0x62/0xf0
     recv_work+0x29/0xa1 [nbd]
     process_one_work+0x1f5/0x3f0
     worker_thread+0x2d/0x3d0
     ? rescuer_thread+0x340/0x340
     kthread+0x111/0x130
     ? kthread_create_on_node+0x60/0x60
     ret_from_fork+0x1f/0x30
    ---[ end trace b079c3c67f98bb7c ]---
    
    This was preceded by us timing out everything and shutting down the
    sockets for the device.  The problem is we had a request in the queue at
    the same time, so we completed the request twice.  This can actually
    happen in a lot of cases, we fail to get a ref on our config, we only
    have one connection and just error out the command, etc.
    
    Fix this by checking cmd->status in nbd_read_stat.  We only change this
    under the cmd->lock, so we are safe to check this here and see if we've
    already error'ed this command out, which would indicate that we've
    completed it as well.
    
    Reviewed-by: Mike Christie <mchristi@redhat.com>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 82b7c99ee1410a50b52283f4b80dca31fa7591b6
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Mon Oct 21 15:56:27 2019 -0400

    nbd: protect cmd->status with cmd->lock
    
    [ Upstream commit de6346ecbc8f5591ebd6c44ac164e8b8671d71d7 ]
    
    We already do this for the most part, except in timeout and clear_req.
    For the timeout case we take the lock after we grab a ref on the config,
    but that isn't really necessary because we're safe to touch the cmd at
    this point, so just move the order around.
    
    For the clear_req cause this is initiated by the user, so again is safe.
    
    Reviewed-by: Mike Christie <mchristi@redhat.com>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 80b42f4381c25021cf6d3ca73eb0540c265018b7
Author: Dave Wysochanski <dwysocha@redhat.com>
Date:   Wed Oct 23 05:02:33 2019 -0400

    cifs: Fix cifsInodeInfo lock_sem deadlock when reconnect occurs
    
    [ Upstream commit d46b0da7a33dd8c99d969834f682267a45444ab3 ]
    
    There's a deadlock that is possible and can easily be seen with
    a test where multiple readers open/read/close of the same file
    and a disruption occurs causing reconnect.  The deadlock is due
    a reader thread inside cifs_strict_readv calling down_read and
    obtaining lock_sem, and then after reconnect inside
    cifs_reopen_file calling down_read a second time.  If in
    between the two down_read calls, a down_write comes from
    another process, deadlock occurs.
    
            CPU0                    CPU1
            ----                    ----
    cifs_strict_readv()
     down_read(&cifsi->lock_sem);
                                   _cifsFileInfo_put
                                      OR
                                   cifs_new_fileinfo
                                    down_write(&cifsi->lock_sem);
    cifs_reopen_file()
     down_read(&cifsi->lock_sem);
    
    Fix the above by changing all down_write(lock_sem) calls to
    down_write_trylock(lock_sem)/msleep() loop, which in turn
    makes the second down_read call benign since it will never
    block behind the writer while holding lock_sem.
    
    Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
    Suggested-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Reviewed--by: Ronnie Sahlberg <lsahlber@redhat.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7448991fa3e204a4050a63d5b949ac2c4b89bd1
Author: Alain Volmat <alain.volmat@st.com>
Date:   Tue Oct 15 15:11:58 2019 +0200

    i2c: stm32f7: remove warning when compiling with W=1
    
    [ Upstream commit 348e46fbb4cdb2aead79aee1fd8bb25ec5fd25db ]
    
    Remove the following warning:
    
    drivers/i2c/busses/i2c-stm32f7.c:315:
    warning: cannot understand function prototype:
    'struct stm32f7_i2c_spec i2c_specs[] =
    
    Replace a comment starting with /** by simply /* to avoid having
    it interpreted as a kernel-doc comment.
    
    Fixes: aeb068c57214 ("i2c: i2c-stm32f7: add driver")
    Signed-off-by: Alain Volmat <alain.volmat@st.com>
    Reviewed-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 86fd9e339ab4fc48a86479e115798ccdd6af576a
Author: Fabrice Gasnier <fabrice.gasnier@st.com>
Date:   Tue Oct 1 10:51:09 2019 +0200

    i2c: stm32f7: fix a race in slave mode with arbitration loss irq
    
    [ Upstream commit 6d6b0d0d5afc8c4c84b08261260ba11dfa5206f2 ]
    
    When in slave mode, an arbitration loss (ARLO) may be detected before the
    slave had a chance to detect the stop condition (STOPF in ISR).
    This is seen when two master + slave adapters switch their roles. It
    provokes the i2c bus to be stuck, busy as SCL line is stretched.
    - the I2C_SLAVE_STOP event is never generated due to STOPF flag is set but
      don't generate an irq (race with ARLO irq, STOPIE is masked). STOPF flag
      remains set until next master xfer (e.g. when STOPIE irq get unmasked).
      In this case, completion is generated too early: immediately upon new
      transfer request (then it doesn't send all data).
    - Some data get stuck in TXDR register. As a consequence, the controller
      stretches the SCL line: the bus gets busy until a future master transfer
      triggers the bus busy / recovery mechanism (this can take time... and
      may never happen at all)
    
    So choice is to let the STOPF being detected by the slave isr handler,
    to properly handle this stop condition. E.g. don't mask IRQs in error
    handler, when the slave is running.
    
    Fixes: 60d609f30de2 ("i2c: i2c-stm32f7: Add slave support")
    Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
    Reviewed-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d746ce649556795b09d721d34821d38c68400921
Author: Fabrice Gasnier <fabrice.gasnier@st.com>
Date:   Mon Sep 30 17:28:01 2019 +0200

    i2c: stm32f7: fix first byte to send in slave mode
    
    [ Upstream commit 02e64276c6dbcc4c5f39844f33d18180832a58f3 ]
    
    The slave-interface documentation [1] states "the bus driver should
    transmit the first byte" upon I2C_SLAVE_READ_REQUESTED slave event:
    - 'val': backend returns first byte to be sent
    The driver currently ignores the 1st byte to send on this event.
    
    [1] https://www.kernel.org/doc/Documentation/i2c/slave-interface
    
    Fixes: 60d609f30de2 ("i2c: i2c-stm32f7: Add slave support")
    Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
    Reviewed-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 18e7fae372a10334d34c7ad7a28060a14c10f17e
Author: Zenghui Yu <yuzenghui@huawei.com>
Date:   Wed Oct 23 03:46:26 2019 +0000

    irqchip/gic-v3-its: Use the exact ITSList for VMOVP
    
    [ Upstream commit 8424312516e5d9baeeb0a95d0e4523579b7aa395 ]
    
    On a system without Single VMOVP support (say GITS_TYPER.VMOVP == 0),
    we will map vPEs only on ITSs that will actually control interrupts
    for the given VM.  And when moving a vPE, the VMOVP command will be
    issued only for those ITSs.
    
    But when issuing VMOVPs we seemed fail to present the exact ITSList
    to ITSs who are actually included in the synchronization operation.
    The its_list_map we're currently using includes all ITSs in the system,
    even though some of them don't have the corresponding vPE mapping at all.
    
    Introduce get_its_list() to get the per-VM its_list_map, to indicate
    which ITSs have vPE mappings for the given VM, and use this map as
    the expected ITSList when building VMOVP. This is hopefully a performance
    gain not to do some synchronization with those unsuspecting ITSs.
    And initialize the whole command descriptor to zero at beginning, since
    the seq_num and its_list should be RES0 when GITS_TYPER.VMOVP == 1.
    
    Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/1571802386-2680-1-git-send-email-yuzenghui@huawei.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 39637aafa17388436ac1144f6e8f71a4a1416429
Author: Jonas Gorski <jonas.gorski@gmail.com>
Date:   Tue Oct 22 21:11:00 2019 +0200

    MIPS: bmips: mark exception vectors as char arrays
    
    [ Upstream commit e4f5cb1a9b27c0f94ef4f5a0178a3fde2d3d0e9e ]
    
    The vectors span more than one byte, so mark them as arrays.
    
    Fixes the following build error when building when using GCC 8.3:
    
    In file included from ./include/linux/string.h:19,
                     from ./include/linux/bitmap.h:9,
                     from ./include/linux/cpumask.h:12,
                     from ./arch/mips/include/asm/processor.h:15,
                     from ./arch/mips/include/asm/thread_info.h:16,
                     from ./include/linux/thread_info.h:38,
                     from ./include/asm-generic/preempt.h:5,
                     from ./arch/mips/include/generated/asm/preempt.h:1,
                     from ./include/linux/preempt.h:81,
                     from ./include/linux/spinlock.h:51,
                     from ./include/linux/mmzone.h:8,
                     from ./include/linux/bootmem.h:8,
                     from arch/mips/bcm63xx/prom.c:10:
    arch/mips/bcm63xx/prom.c: In function 'prom_init':
    ./arch/mips/include/asm/string.h:162:11: error: '__builtin_memcpy' forming offset [2, 32] is out of the bounds [0, 1] of object 'bmips_smp_movevec' with type 'char' [-Werror=array-bounds]
       __ret = __builtin_memcpy((dst), (src), __len); \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    arch/mips/bcm63xx/prom.c:97:3: note: in expansion of macro 'memcpy'
       memcpy((void *)0xa0000200, &bmips_smp_movevec, 0x20);
       ^~~~~~
    In file included from arch/mips/bcm63xx/prom.c:14:
    ./arch/mips/include/asm/bmips.h:80:13: note: 'bmips_smp_movevec' declared here
     extern char bmips_smp_movevec;
    
    Fixes: 18a1eef92dcd ("MIPS: BMIPS: Introduce bmips.h")
    Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Paul Burton <paulburton@kernel.org>
    Cc: linux-mips@vger.kernel.org
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <jhogan@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fcc3f7c810c3bc595ce179ea4d9e18f506fd0d03
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Fri Oct 4 13:58:43 2019 -0500

    of: unittest: fix memory leak in unittest_data_add
    
    [ Upstream commit e13de8fe0d6a51341671bbe384826d527afe8d44 ]
    
    In unittest_data_add, a copy buffer is created via kmemdup. This buffer
    is leaked if of_fdt_unflatten_tree fails. The release for the
    unittest_data buffer is added.
    
    Fixes: b951f9dc7f25 ("Enabling OF selftest to run without machine's devicetree")
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Reviewed-by: Frank Rowand <frowand.list@gmail.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c56b9da70d0918d545db1a18c33a61284813395e
Author: afzal mohammed <afzal.mohd.ma@gmail.com>
Date:   Mon Oct 21 06:06:14 2019 +0100

    ARM: 8926/1: v7m: remove register save to stack before svc
    
    [ Upstream commit 2ecb287998a47cc0a766f6071f63bc185f338540 ]
    
    r0-r3 & r12 registers are saved & restored, before & after svc
    respectively. Intention was to preserve those registers across thread to
    handler mode switch.
    
    On v7-M, hardware saves the register context upon exception in AAPCS
    complaint way. Restoring r0-r3 & r12 is done from stack location where
    hardware saves it, not from the location on stack where these registers
    were saved.
    
    To clarify, on stm32f429 discovery board:
    
    1. before svc, sp - 0x90009ff8
    2. r0-r3,r12 saved to 0x90009ff8 - 0x9000a00b
    3. upon svc, h/w decrements sp by 32 & pushes registers onto stack
    4. after svc,  sp - 0x90009fd8
    5. r0-r3,r12 restored from 0x90009fd8 - 0x90009feb
    
    Above means r0-r3,r12 is not restored from the location where they are
    saved, but since hardware pushes the registers onto stack, the registers
    are restored correctly.
    
    Note that during register saving to stack (step 2), it goes past
    0x9000a000. And it seems, based on objdump, there are global symbols
    residing there, and it perhaps can cause issues on a non-XIP Kernel
    (on XIP, data section is setup later).
    
    Based on the analysis above, manually saving registers onto stack is at
    best no-op and at worst can cause data section corruption. Hence remove
    storing of registers onto stack before svc.
    
    Fixes: b70cd406d7fe ("ARM: 8671/1: V7M: Preserve registers across switch from Thread to Handler mode")
    Signed-off-by: afzal mohammed <afzal.mohd.ma@gmail.com>
    Acked-by: Vladimir Murzin <vladimir.murzin@arm.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fa18f803d1f73851f89586a1b2e6469d6d7adbc1
Author: Zhengjun Xing <zhengjun.xing@linux.intel.com>
Date:   Fri Oct 18 09:20:34 2019 +0800

    tracing: Fix "gfp_t" format for synthetic events
    
    [ Upstream commit 9fa8c9c647be624e91b09ecffa7cd97ee0600b40 ]
    
    In the format of synthetic events, the "gfp_t" is shown as "signed:1",
    but in fact the "gfp_t" is "unsigned", should be shown as "signed:0".
    
    The issue can be reproduced by the following commands:
    
    echo 'memlatency u64 lat; unsigned int order; gfp_t gfp_flags; int migratetype' > /sys/kernel/debug/tracing/synthetic_events
    cat  /sys/kernel/debug/tracing/events/synthetic/memlatency/format
    
    name: memlatency
    ID: 2233
    format:
            field:unsigned short common_type;       offset:0;       size:2; signed:0;
            field:unsigned char common_flags;       offset:2;       size:1; signed:0;
            field:unsigned char common_preempt_count;       offset:3;       size:1; signed:0;
            field:int common_pid;   offset:4;       size:4; signed:1;
    
            field:u64 lat;  offset:8;       size:8; signed:0;
            field:unsigned int order;       offset:16;      size:4; signed:0;
            field:gfp_t gfp_flags;  offset:24;      size:4; signed:1;
            field:int migratetype;  offset:32;      size:4; signed:1;
    
    print fmt: "lat=%llu, order=%u, gfp_flags=%x, migratetype=%d", REC->lat, REC->order, REC->gfp_flags, REC->migratetype
    
    Link: http://lkml.kernel.org/r/20191018012034.6404-1-zhengjun.xing@linux.intel.com
    
    Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Zhengjun Xing <zhengjun.xing@linux.intel.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 63571a1f375e2b45abfc104b5bea32f05fb35075
Author: Bodo Stroesser <bstroesser@ts.fujitsu.com>
Date:   Mon Oct 14 20:29:04 2019 +0200

    scsi: target: core: Do not overwrite CDB byte 1
    
    [ Upstream commit 27e84243cb63601a10e366afe3e2d05bb03c1cb5 ]
    
    passthrough_parse_cdb() - used by TCMU and PSCSI - attepts to reset the LUN
    field of SCSI-2 CDBs (bits 5,6,7 of byte 1).  The current code is wrong as
    for newer commands not having the LUN field it overwrites relevant command
    bits (e.g. for SECURITY PROTOCOL IN / OUT). We think this code was
    unnecessary from the beginning or at least it is no longer useful. So we
    remove it entirely.
    
    Link: https://lore.kernel.org/r/12498eab-76fd-eaad-1316-c2827badb76a@ts.fujitsu.com
    Signed-off-by: Bodo Stroesser <bstroesser@ts.fujitsu.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1df8da335d40e3037d7207c47102b4edff0f3446
Author: Christian König <christian.koenig@amd.com>
Date:   Thu Sep 19 10:38:57 2019 +0200

    drm/amdgpu: fix potential VM faults
    
    [ Upstream commit 3122051edc7c27cc08534be730f4c7c180919b8a ]
    
    When we allocate new page tables under memory
    pressure we should not evict old ones.
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3cd2b6492cde09e1cb58f523321bcf5af6315f30
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Fri Aug 30 13:22:02 2019 +0300

    ARM: davinci: dm365: Fix McBSP dma_slave_map entry
    
    [ Upstream commit 564b6bb9d42d31fc80c006658cf38940a9b99616 ]
    
    dm365 have only single McBSP, so the device name is without .0
    
    Fixes: 0c750e1fe481d ("ARM: davinci: dm365: Add dma_slave_map to edma")
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: Sekhar Nori <nsekhar@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e18bf407ea3fab6a68d820387c2ba8ade131a784
Author: Yunfeng Ye <yeyunfeng@huawei.com>
Date:   Wed Oct 16 16:38:45 2019 +0800

    perf kmem: Fix memory leak in compact_gfp_flags()
    
    [ Upstream commit 1abecfcaa7bba21c9985e0136fa49836164dd8fd ]
    
    The memory @orig_flags is allocated by strdup(), it is freed on the
    normal path, but leak to free on the error path.
    
    Fix this by adding free(orig_flags) on the error path.
    
    Fixes: 0e11115644b3 ("perf kmem: Print gfp flags in human readable string")
    Signed-off-by: Yunfeng Ye <yeyunfeng@huawei.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Feilong Lin <linfeilong@huawei.com>
    Cc: Hu Shiyuan <hushiyuan@huawei.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/f9e9f458-96f3-4a97-a1d5-9feec2420e07@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 05dd6283b8fc4d16413b6318dc8a4ed6078e4447
Author: Colin Ian King <colin.king@canonical.com>
Date:   Sun Oct 13 23:00:16 2019 +0100

    8250-men-mcb: fix error checking when get_num_ports returns -ENODEV
    
    [ Upstream commit f50b6805dbb993152025ec04dea094c40cc93a0c ]
    
    The current checking for failure on the number of ports fails when
    -ENODEV is returned from the call to get_num_ports. Fix this by making
    num_ports and loop counter i signed rather than unsigned ints. Also
    add check for num_ports being less than zero to check for -ve error
    returns.
    
    Addresses-Coverity: ("Unsigned compared against 0")
    Fixes: e2fea54e4592 ("8250-men-mcb: add support for 16z025 and 16z057")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Reviewed-by: Michael Moese <mmoese@suse.de>
    Link: https://lore.kernel.org/r/20191013220016.9369-1-colin.king@canonical.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 81809424cad7ee577107fd87a6291d4751f3b496
Author: Yunfeng Ye <yeyunfeng@huawei.com>
Date:   Tue Oct 15 10:54:14 2019 +0800

    perf c2c: Fix memory leak in build_cl_output()
    
    [ Upstream commit ae199c580da1754a2b051321eeb76d6dacd8707b ]
    
    There is a memory leak problem in the failure paths of
    build_cl_output(), so fix it.
    
    Signed-off-by: Yunfeng Ye <yeyunfeng@huawei.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Feilong Lin <linfeilong@huawei.com>
    Cc: Hu Shiyuan <hushiyuan@huawei.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/4d3c0178-5482-c313-98e1-f82090d2d456@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7a79420034e03b8bc1f3a3ab7b2ca69307ea5762
Author: Anson Huang <Anson.Huang@nxp.com>
Date:   Mon Oct 7 08:43:42 2019 +0800

    ARM: dts: imx7s: Correct GPT's ipg clock source
    
    [ Upstream commit 252b9e21bcf46b0d16f733f2e42b21fdc60addee ]
    
    i.MX7S/D's GPT ipg clock should be from GPT clock root and
    controlled by CCM's GPT CCGR, using correct clock source for
    GPT ipg clock instead of IMX7D_CLK_DUMMY.
    
    Fixes: 3ef79ca6bd1d ("ARM: dts: imx7d: use imx7s.dtsi as base device tree")
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e601e103cfed5db42f08ad3dddb38279f7a2c891
Author: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Date:   Wed Oct 9 17:11:28 2019 +0200

    scsi: fix kconfig dependency warning related to 53C700_LE_ON_BE
    
    [ Upstream commit 8cbf0c173aa096dda526d1ccd66fc751c31da346 ]
    
    When building a kernel with SCSI_SNI_53C710 enabled, Kconfig warns:
    
    WARNING: unmet direct dependencies detected for 53C700_LE_ON_BE
      Depends on [n]: SCSI_LOWLEVEL [=y] && SCSI [=y] && SCSI_LASI700 [=n]
      Selected by [y]:
      - SCSI_SNI_53C710 [=y] && SCSI_LOWLEVEL [=y] && SNI_RM [=y] && SCSI [=y]
    
    Add the missing depends SCSI_SNI_53C710 to 53C700_LE_ON_BE to fix it.
    
    Link: https://lore.kernel.org/r/20191009151128.32411-1-tbogendoerfer@suse.de
    Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3dd0be3eeeb084eb41f8b75a6e6dd5cde5d92dc9
Author: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Date:   Wed Oct 9 17:11:18 2019 +0200

    scsi: sni_53c710: fix compilation error
    
    [ Upstream commit 0ee6211408a8e939428f662833c7301394125b80 ]
    
    Drop out memory dev_printk() with wrong device pointer argument.
    
    [mkp: typo]
    
    Link: https://lore.kernel.org/r/20191009151118.32350-1-tbogendoerfer@suse.de
    Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf372c60ed1300b81d05d618ac3aecec89f4481e
Author: Hannes Reinecke <hare@suse.com>
Date:   Mon Oct 7 15:57:01 2019 +0200

    scsi: scsi_dh_alua: handle RTPG sense code correctly during state transitions
    
    [ Upstream commit b6ce6fb121a655aefe41dccc077141c102145a37 ]
    
    Some arrays are not capable of returning RTPG data during state
    transitioning, but rather return an 'LUN not accessible, asymmetric access
    state transition' sense code. In these cases we can set the state to
    'transitioning' directly and don't need to evaluate the RTPG data (which we
    won't have anyway).
    
    Link: https://lore.kernel.org/r/20191007135701.32389-1-hare@suse.de
    Reviewed-by: Laurence Oberman <loberman@redhat.com>
    Reviewed-by: Ewan D. Milne <emilne@redhat.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ee6a8bdae81a09c1dc9c27d3a50e6b1b6a24676
Author: Allen Pais <allen.pais@oracle.com>
Date:   Wed Sep 18 22:06:58 2019 +0530

    scsi: qla2xxx: fix a potential NULL pointer dereference
    
    [ Upstream commit 35a79a63517981a8aea395497c548776347deda8 ]
    
    alloc_workqueue is not checked for errors and as a result a potential
    NULL dereference could occur.
    
    Link: https://lore.kernel.org/r/1568824618-4366-1-git-send-email-allen.pais@oracle.com
    Signed-off-by: Allen Pais <allen.pais@oracle.com>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    Acked-by: Himanshu Madhani <hmadhani@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9d27ba401eca6d504c2f2f539cd1598c1a60e6f7
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Sat Aug 31 17:01:58 2019 +0100

    ARM: mm: fix alignment handler faults under memory pressure
    
    [ Upstream commit 67e15fa5b487adb9b78a92789eeff2d6ec8f5cee ]
    
    When the system has high memory pressure, the page containing the
    instruction may be paged out.  Using probe_kernel_address() means that
    if the page is swapped out, the resulting page fault will not be
    handled because page faults are disabled by this function.
    
    Use get_user() to read the instruction instead.
    
    Reported-by: Jing Xiangfeng <jingxiangfeng@huawei.com>
    Fixes: b255188f90e2 ("ARM: fix scheduling while atomic warning in alignment handling code")
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f0eabc9e9acb68122bfb1e0321b13032ab20f2f3
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Sep 26 11:14:26 2019 +0300

    pinctrl: ns2: Fix off by one bugs in ns2_pinmux_enable()
    
    [ Upstream commit 39b65fbb813089e366b376bd8acc300b6fd646dc ]
    
    The pinctrl->functions[] array has pinctrl->num_functions elements and
    the pinctrl->groups[] array is the same way.  These are set in
    ns2_pinmux_probe().  So the > comparisons should be >= so that we don't
    read one element beyond the end of the array.
    
    Fixes: b5aa1006e4a9 ("pinctrl: ns2: add pinmux driver support for Broadcom NS2 SoC")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/20190926081426.GB2332@mwanda
    Acked-by: Scott Branden <scott.branden@broadcom.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9a5d5ffb32459f43a5c1a02f7a628bd75e8a7ae6
Author: Adam Ford <aford173@gmail.com>
Date:   Fri Aug 16 17:58:12 2019 -0500

    ARM: dts: logicpd-torpedo-som: Remove twl_keypad
    
    [ Upstream commit 6b512b0ee091edcb8e46218894e4c917d919d3dc ]
    
    The TWL4030 used on the Logit PD Torpedo SOM does not have the
    keypad pins routed.  This patch disables the twl_keypad driver
    to remove some splat during boot:
    
    twl4030_keypad 48070000.i2c:twl@48:keypad: missing or malformed property linux,keymap: -22
    twl4030_keypad 48070000.i2c:twl@48:keypad: Failed to build keymap
    twl4030_keypad: probe of 48070000.i2c:twl@48:keypad failed with error -22
    
    Signed-off-by: Adam Ford <aford173@gmail.com>
    [tony@atomide.com: removed error time stamps]
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d7e2a8e271aaeef572dc75b268c48fd4e6285ac1
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Wed Oct 2 16:30:37 2019 +0100

    ASoc: rockchip: i2s: Fix RPM imbalance
    
    [ Upstream commit b1e620e7d32f5aad5353cc3cfc13ed99fea65d3a ]
    
    If rockchip_pcm_platform_register() fails, e.g. upon deferring to wait
    for an absent DMA channel, we return without disabling RPM, which makes
    subsequent re-probe attempts scream with errors about the unbalanced
    enable. Don't do that.
    
    Fixes: ebb75c0bdba2 ("ASoC: rockchip: i2s: Adjust devm usage")
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Link: https://lore.kernel.org/r/bcb12a849a05437fb18372bc7536c649b94bdf07.1570029862.git.robin.murphy@arm.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 513474f59001d8d84b33b159d2b17ecc398ad356
Author: Stuart Henderson <stuarth@opensource.cirrus.com>
Date:   Wed Oct 2 09:42:40 2019 +0100

    ASoC: wm_adsp: Don't generate kcontrols without READ flags
    
    [ Upstream commit 3ae7359c0e39f42a96284d6798fc669acff38140 ]
    
    User space always expects to be able to read ALSA controls, so ensure
    no kcontrols are generated without an appropriate READ flag. In the case
    of a read of such a control zeros will be returned.
    
    Signed-off-by: Stuart Henderson <stuarth@opensource.cirrus.com>
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20191002084240.21589-1-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bab5c14b5c8909d80a7e322613405451b25b11aa
Author: Yizhuo <yzhai003@ucr.edu>
Date:   Sun Sep 29 10:09:57 2019 -0700

    regulator: pfuze100-regulator: Variable "val" in pfuze100_regulator_probe() could be uninitialized
    
    [ Upstream commit 1252b283141f03c3dffd139292c862cae10e174d ]
    
    In function pfuze100_regulator_probe(), variable "val" could be
    initialized if regmap_read() fails. However, "val" is used to
    decide the control flow later in the if statement, which is
    potentially unsafe.
    
    Signed-off-by: Yizhuo <yzhai003@ucr.edu>
    Link: https://lore.kernel.org/r/20190929170957.14775-1-yzhai003@ucr.edu
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6ef17b446081f41be552991b49c78d980f961a42
Author: Jaska Uimonen <jaska.uimonen@intel.com>
Date:   Fri Sep 27 15:14:07 2019 -0500

    ASoC: rt5682: add NULL handler to set_jack function
    
    [ Upstream commit a315e76fc544f09daf619530a7b2f85865e6b25e ]
    
    Implement NULL handler in set_jack function to disable
    irq's.
    
    Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20190927201408.925-4-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 772c18df9f3d1c08963c3a3ab4ffadc663af7d19
Author: Axel Lin <axel.lin@ingics.com>
Date:   Sun Sep 29 17:58:48 2019 +0800

    regulator: ti-abb: Fix timeout in ti_abb_wait_txdone/ti_abb_clear_all_txdone
    
    [ Upstream commit f64db548799e0330897c3203680c2ee795ade518 ]
    
    ti_abb_wait_txdone() may return -ETIMEDOUT when ti_abb_check_txdone()
    returns true in the latest iteration of the while loop because the timeout
    value is abb->settling_time + 1. Similarly, ti_abb_clear_all_txdone() may
    return -ETIMEDOUT when ti_abb_check_txdone() returns false in the latest
    iteration of the while loop. Fix it.
    
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Acked-by: Nishanth Menon <nm@ti.com>
    Link: https://lore.kernel.org/r/20190929095848.21960-1-axel.lin@ingics.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c4c0e64deb9acefcf21da9f5871e756b3e4765e3
Author: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
Date:   Mon Sep 9 14:05:27 2019 +0530

    arm64: dts: Fix gpio to pinmux mapping
    
    [ Upstream commit 965f6603e3335a953f4f876792074cb36bf65f7f ]
    
    There are total of 151 non-secure gpio (0-150) and four
    pins of pinmux (91, 92, 93 and 94) are not mapped to any
    gpio pin, hence update same in DT.
    
    Fixes: 8aa428cc1e2e ("arm64: dts: Add pinctrl DT nodes for Stingray SOC")
    Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
    Reviewed-by: Ray Jui <ray.jui@broadcom.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0d3aef1ea7e83b89d9b82fa71ed6607764baf653
Author: Jernej Skrabec <jernej.skrabec@siol.net>
Date:   Sun Sep 29 10:52:59 2019 +0200

    arm64: dts: allwinner: a64: sopine-baseboard: Add PHY regulator delay
    
    [ Upstream commit ccdf3aaa27ded6db9a93eed3ca7468bb2353b8fe ]
    
    It turns out that sopine-baseboard needs same fix as pine64-plus
    for ethernet PHY. Here too Realtek ethernet PHY chip needs additional
    power on delay to properly initialize. Datasheet mentions that chip
    needs 30 ms to be properly powered on and that it needs some more time
    to be initialized.
    
    Fix that by adding 100ms ramp delay to regulator responsible for
    powering PHY.
    
    Note that issue was found out and fix tested on pine64-lts, but it's
    basically the same as sopine-baseboard, only layout and connectors
    differ.
    
    Fixes: bdfe4cebea11 ("arm64: allwinner: a64: add Ethernet PHY regulator for several boards")
    Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
    Signed-off-by: Maxime Ripard <mripard@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3a208ac460862722a38648fc60f683f697191e1
Author: Jernej Skrabec <jernej.skrabec@siol.net>
Date:   Mon Sep 9 20:42:35 2019 +0200

    arm64: dts: allwinner: a64: pine64-plus: Add PHY regulator delay
    
    [ Upstream commit 2511366797fa6ab4a404b4b000ef7cd262aaafe8 ]
    
    Depending on kernel and bootloader configuration, it's possible that
    Realtek ethernet PHY isn't powered on properly. According to the
    datasheet, it needs 30ms to power up and then some more time before it
    can be used.
    
    Fix that by adding 100ms ramp delay to regulator responsible for
    powering PHY.
    
    Fixes: 94dcfdc77fc5 ("arm64: allwinner: pine64-plus: Enable dwmac-sun8i")
    Suggested-by: Ondrej Jirman <megous@megous.com>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
    Signed-off-by: Maxime Ripard <mripard@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc24ac36f304984c985754c101788fa0047b5f96
Author: Sylwester Nawrocki <s.nawrocki@samsung.com>
Date:   Fri Sep 20 15:02:10 2019 +0200

    ASoC: wm8994: Do not register inapplicable controls for WM1811
    
    [ Upstream commit ca2347190adb5e4eece73a2b16e96e651c46246b ]
    
    In case of WM1811 device there are currently being registered controls
    referring to registers not existing on that device.
    It has been noticed when getting values of "AIF1ADC2 Volume", "AIF1DAC2
    Volume" controls was failing during ALSA state restoring at boot time:
     "amixer: Mixer hw:0 load error: Device or resource busy"
    
    Reading some registers through I2C was failing with EBUSY error and
    indeed these registers were not available according to the datasheet.
    
    To fix this controls not available on WM1811 are moved to a separate
    array and registered only for WM8994 and WM8958.
    
    There are some further differences between WM8994 and WM1811,
    e.g. registers 603h, 604h, 605h, which are not covered in this patch.
    
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Link: https://lore.kernel.org/r/20190920130218.32690-2-s.nawrocki@samsung.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0f037d0a62b006a6186e148743609c1cc2b50433
Author: Marco Felsch <m.felsch@pengutronix.de>
Date:   Tue Sep 17 17:40:20 2019 +0200

    regulator: of: fix suspend-min/max-voltage parsing
    
    [ Upstream commit 131cb1210d4b58acb0695707dad2eb90dcb50a2a ]
    
    Currently the regulator-suspend-min/max-microvolt must be within the
    root regulator node but the dt-bindings specifies it as subnode
    properties for the regulator-state-[mem/disk/standby] node. The only DT
    using this bindings currently is the at91-sama5d2_xplained.dts and this
    DT uses it correctly. I don't know if it isn't tested but it can't work
    without this fix.
    
    Fixes: f7efad10b5c4 ("regulator: add PM suspend and resume hooks")
    Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
    Link: https://lore.kernel.org/r/20190917154021.14693-3-m.felsch@pengutronix.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b17eae5a0e167e7fec32888f83d3a5dce85af1b4
Author: Seth Forshee <seth.forshee@canonical.com>
Date:   Wed Jul 17 11:06:26 2019 -0500

    kbuild: add -fcf-protection=none when using retpoline flags
    
    [ Upstream commit 29be86d7f9cb18df4123f309ac7857570513e8bc ]
    
    The gcc -fcf-protection=branch option is not compatible with
    -mindirect-branch=thunk-extern. The latter is used when
    CONFIG_RETPOLINE is selected, and this will fail to build with
    a gcc which has -fcf-protection=branch enabled by default. Adding
    -fcf-protection=none when building with retpoline enabled
    prevents such build failures.
    
    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>