commit 90daeb0fbf6497334e3ad3098b0a1c72f44d8716
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Dec 8 10:42:05 2020 +0100

    Linux 5.9.13
    
    Tested-by: Jeffrin Jose T <jeffrin@rajagiritech.edu.in>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20201206111556.455533723@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 166dfd3ba5a4c71815fddb247cb08fef2412bfb4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 15 13:21:38 2020 +0100

    drm/i915/gt: Fixup tgl mocs for PTE tracking
    
    commit be33805c65297611971003d72e7f9235e23ec84d upstream.
    
    Forcing mocs:1 [used for our winsys follows-pte mode] to be cached
    caused display glitches. Though it is documented as deprecated (and so
    likely behaves as uncached) use the follow-pte bit and force it out of
    L3 cache.
    
    Testcase: igt/kms_frontbuffer_tracking
    Testcase: igt/kms_big_fb
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Ayaz A Siddiqui <ayaz.siddiqui@intel.com>
    Cc: Lucas De Marchi <lucas.demarchi@intel.com>
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201015122138.30161-4-chris@chris-wilson.co.uk
    (cherry picked from commit a04ac827366594c7244f60e9be79fcb404af69f0)
    Fixes: 849c0fe9e831 ("drm/i915/gt: Initialize reserved and unspecified MOCS indices")
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    [Rodrigo: Updated Fixes tag]
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 029de834c8674a078a97c51f12da4633a8a7d606
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Tue Dec 1 17:21:40 2020 -0600

    uapi: fix statx attribute value overlap for DAX & MOUNT_ROOT
    
    commit 72d1249e2ffdbc344e465031ec5335fa3489d62e upstream.
    
    STATX_ATTR_MOUNT_ROOT and STATX_ATTR_DAX got merged with the same value,
    so one of them needs fixing.  Move STATX_ATTR_DAX.
    
    While we're in here, clarify the value-matching scheme for some of the
    attributes, and explain why the value for DAX does not match.
    
    Fixes: 80340fe3605c ("statx: add mount_root")
    Fixes: 712b2698e4c0 ("fs/stat: Define DAX statx attribute")
    Link: https://lore.kernel.org/linux-fsdevel/7027520f-7c79-087e-1d00-743bdefa1a1e@redhat.com/
    Link: https://lore.kernel.org/lkml/20201202214629.1563760-1-ira.weiny@intel.com/
    Reported-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
    Reviewed-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Ira Weiny <ira.weiny@intel.com>
    Cc: <stable@vger.kernel.org> # 5.8
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d8888e397fec01a3517a84eba06db1b486bb048
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Wed Nov 18 15:05:20 2020 +0300

    tracing: Remove WARN_ON in start_thread()
    
    commit 310e3a4b5a4fc718a72201c1e4cf5c64ac6f5442 upstream.
    
    This patch reverts commit 978defee11a5 ("tracing: Do a WARN_ON()
     if start_thread() in hwlat is called when thread exists")
    
    .start hook can be legally called several times if according
    tracer is stopped
    
    screen window 1
    [root@localhost ~]# echo 1 > /sys/kernel/tracing/events/kmem/kfree/enable
    [root@localhost ~]# echo 1 > /sys/kernel/tracing/options/pause-on-trace
    [root@localhost ~]# less -F /sys/kernel/tracing/trace
    
    screen window 2
    [root@localhost ~]# cat /sys/kernel/debug/tracing/tracing_on
    0
    [root@localhost ~]# echo hwlat >  /sys/kernel/debug/tracing/current_tracer
    [root@localhost ~]# echo 1 > /sys/kernel/debug/tracing/tracing_on
    [root@localhost ~]# cat /sys/kernel/debug/tracing/tracing_on
    0
    [root@localhost ~]# echo 2 > /sys/kernel/debug/tracing/tracing_on
    
    triggers warning in dmesg:
    WARNING: CPU: 3 PID: 1403 at kernel/trace/trace_hwlat.c:371 hwlat_tracer_start+0xc9/0xd0
    
    Link: https://lkml.kernel.org/r/bd4d3e70-400d-9c82-7b73-a2d695e86b58@virtuozzo.com
    
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: stable@vger.kernel.org
    Fixes: 978defee11a5 ("tracing: Do a WARN_ON() if start_thread() in hwlat is called when thread exists")
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e159ec268afcb7f0d83c231b8cab6fcfd1508324
Author: Minchan Kim <minchan@kernel.org>
Date:   Wed Nov 25 14:56:54 2020 -0800

    tracing: Fix alignment of static buffer
    
    commit 8fa655a3a0013a0c2a2aada6f39a93ee6fc25549 upstream.
    
    With 5.9 kernel on ARM64, I found ftrace_dump output was broken but
    it had no problem with normal output "cat /sys/kernel/debug/tracing/trace".
    
    With investigation, it seems coping the data into temporal buffer seems to
    break the align binary printf expects if the static buffer is not aligned
    with 4-byte. IIUC, get_arg in bstr_printf expects that args has already
    right align to be decoded and seq_buf_bprintf says ``the arguments are saved
    in a 32bit word array that is defined by the format string constraints``.
    So if we don't keep the align under copy to temporal buffer, the output
    will be broken by shifting some bytes.
    
    This patch fixes it.
    
    Link: https://lkml.kernel.org/r/20201125225654.1618966-1-minchan@kernel.org
    
    Cc: <stable@vger.kernel.org>
    Fixes: 8e99cf91b99bb ("tracing: Do not allocate buffer in trace_find_next_entry() in atomic")
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Minchan Kim <minchan@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit acf7d3a5028f2faaeb7ad44bcc4d93e3967c40c4
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Tue Dec 1 09:55:29 2020 -0800

    Input: atmel_mxt_ts - fix lost interrupts
    
    commit 8c3b55a299c325830a987de21dab6a89ecb71164 upstream.
    
    After commit 74d905d2d38a devices requiring the workaround for edge
    triggered interrupts stopped working.
    
    The hardware needs the quirk to be used before even proceeding to
    check if the quirk is needed because mxt_acquire_irq() is called
    before mxt_check_retrigen() is called and at this point pending IRQs
    need to be checked, and if the workaround is not active, all
    interrupts will be lost from this point.
    
    Solve this by switching the calls around.
    
    Reported-by: Andre Müller <andre.muller@web.de>
    Tested-by: Andre Müller <andre.muller@web.de>
    Suggested-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Fixes: 74d905d2d38a ("Input: atmel_mxt_ts - only read messages in mxt_acquire_irq() when necessary")
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20201201123026.1416743-1-linus.walleij@linaro.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27a940251c95fc755920596905d64d0d6866409c
Author: Po-Hsu Lin <po-hsu.lin@canonical.com>
Date:   Mon Nov 30 22:39:40 2020 -0800

    Input: i8042 - add ByteSpeed touchpad to noloop table
    
    commit a48491c65b513e5cdc3e7a886a4db915f848a5f5 upstream.
    
    It looks like the C15B laptop got another vendor: ByteSpeed LLC.
    
    Avoid AUX loopback on this touchpad as well, thus input subsystem will
    be able to recognize a Synaptics touchpad in the AUX port.
    
    BugLink: https://bugs.launchpad.net/bugs/1906128
    Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
    Link: https://lore.kernel.org/r/20201201054723.5939-1-po-hsu.lin@canonical.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c61460856af950b847a8bf015482d914f0bb9489
Author: Sanjay Govind <sanjay.govind9@gmail.com>
Date:   Mon Nov 30 23:41:48 2020 -0800

    Input: xpad - support Ardwiino Controllers
    
    commit 2aab1561439032be2e98811dd0ddbeb5b2ae4c61 upstream.
    
    This commit adds support for Ardwiino Controllers
    
    Signed-off-by: Sanjay Govind <sanjay.govind9@gmail.com>
    Link: https://lore.kernel.org/r/20201201071922.131666-1-sanjay.govind9@gmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 79891b6859b1fe8c8199bebbb704aaf4556481c7
Author: Hector Martin <marcan@marcan.st>
Date:   Fri Nov 27 22:26:35 2020 +0900

    ALSA: usb-audio: US16x08: fix value count for level meters
    
    commit 402d5840b0d40a2a26c8651165d29b534abb6d36 upstream.
    
    The level meter control returns 34 integers of info. This fixes:
    
    snd-usb-audio 3-1:1.0: control 2:0:0:Level Meter:0: access overflow
    
    Fixes: d2bb390a2081 ("ALSA: usb-audio: Tascam US-16x08 DSP mixer quirk")
    Cc: stable@vger.kernel.org
    Signed-off-by: Hector Martin <marcan@marcan.st>
    Link: https://lore.kernel.org/r/20201127132635.18947-1-marcan@marcan.st
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44e05a398db7997dc457157d899fadd0880526d2
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Wed Dec 2 20:39:44 2020 -0800

    net: mlx5e: fix fs_tcp.c build when IPV6 is not enabled
    
    [ Upstream commit 8a78a440108e55ddd845b0ef46df575248667520 ]
    
    Fix build when CONFIG_IPV6 is not enabled by making a function
    be built conditionally.
    
    Fixes these build errors and warnings:
    
    ../drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c: In function 'accel_fs_tcp_set_ipv6_flow':
    ../include/net/sock.h:380:34: error: 'struct sock_common' has no member named 'skc_v6_daddr'; did you mean 'skc_daddr'?
      380 | #define sk_v6_daddr  __sk_common.skc_v6_daddr
          |                                  ^~~~~~~~~~~~
    ../drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c:55:14: note: in expansion of macro 'sk_v6_daddr'
       55 |         &sk->sk_v6_daddr, 16);
          |              ^~~~~~~~~~~
    At top level:
    ../drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c:47:13: warning: 'accel_fs_tcp_set_ipv6_flow' defined but not used [-Wunused-function]
       47 | static void accel_fs_tcp_set_ipv6_flow(struct mlx5_flow_spec *spec, struct sock *sk)
    
    Fixes: 5229a96e59ec ("net/mlx5e: Accel, Expose flow steering API for rules add/del")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2bbf44876dbf6402988bf5d48fdca281e3ee3579
Author: Eran Ben Elisha <eranbe@nvidia.com>
Date:   Wed Dec 2 20:39:43 2020 -0800

    net/mlx5: Fix wrong address reclaim when command interface is down
    
    [ Upstream commit 1d2bb5ad89f47d8ce8aedc70ef85059ab3870292 ]
    
    When command interface is down, driver to reclaim all 4K page chucks that
    were hold by the Firmeware. Fix a bug for 64K page size systems, where
    driver repeatedly released only the first chunk of the page.
    
    Define helper function to fill 4K chunks for a given Firmware pages.
    Iterate over all unreleased Firmware pages and call the hepler per each.
    
    Fixes: 5adff6a08862 ("net/mlx5: Fix incorrect page count when in internal error")
    Signed-off-by: Eran Ben Elisha <eranbe@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db7af1871e78e6da4f5f8cb76067319935995169
Author: Yevgeny Kliteynik <kliteyn@nvidia.com>
Date:   Wed Dec 2 20:39:46 2020 -0800

    net/mlx5: DR, Proper handling of unsupported Connect-X6DX SW steering
    
    [ Upstream commit d421e466c2373095f165ddd25cbabd6c5b077928 ]
    
    STEs format for Connect-X5 and Connect-X6DX different. Currently, on
    Connext-X6DX the SW steering would break at some point when building STEs
    w/o giving a proper error message. Fix this by checking the STE format of
    the current device when initializing domain: add mlx5_ifc definitions for
    Connect-X6DX SW steering, read FW capability to get the current format
    version, and check this version when domain is being created.
    
    Fixes: 26d688e33f88 ("net/mlx5: DR, Add Steering entry (STE) utilities")
    Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bcfeff6ec630b3837c67730675e8e343d73b48cc
Author: Davide Caratti <dcaratti@redhat.com>
Date:   Thu Dec 3 10:37:52 2020 +0100

    net/sched: act_mpls: ensure LSE is pullable before reading it
    
    [ Upstream commit 9608fa653059c3f72faab0c148ac8773c46e7314 ]
    
    when 'act_mpls' is used to mangle the LSE, the current value is read from
    the packet dereferencing 4 bytes at mpls_hdr(): ensure that the label is
    contained in the skb "linear" area.
    
    Found by code inspection.
    
    v2:
     - use MPLS_HLEN instead of sizeof(new_lse), thanks to Jakub Kicinski
    
    Fixes: 2a2ea50870ba ("net: sched: add mpls manipulation actions to TC")
    Signed-off-by: Davide Caratti <dcaratti@redhat.com>
    Acked-by: Guillaume Nault <gnault@redhat.com>
    Link: https://lore.kernel.org/r/3243506cba43d14858f3bd21ee0994160e44d64a.1606987058.git.dcaratti@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44a0f9f84d690d0c06e9a4c0c44d1f3760f00a61
Author: Davide Caratti <dcaratti@redhat.com>
Date:   Thu Dec 3 10:46:06 2020 +0100

    net: openvswitch: ensure LSE is pullable before reading it
    
    [ Upstream commit 43c13605bad44b8abbc9776d6e63f62ccb7a47d6 ]
    
    when openvswitch is configured to mangle the LSE, the current value is
    read from the packet dereferencing 4 bytes at mpls_hdr(): ensure that
    the label is contained in the skb "linear" area.
    
    Found by code inspection.
    
    Fixes: d27cf5c59a12 ("net: core: add MPLS update core helper and use in OvS")
    Signed-off-by: Davide Caratti <dcaratti@redhat.com>
    Link: https://lore.kernel.org/r/aa099f245d93218b84b5c056b67b6058ccf81a66.1606987185.git.dcaratti@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9ed9b689f534c9feea9f5ef8dff1ec4475ce439
Author: Davide Caratti <dcaratti@redhat.com>
Date:   Thu Dec 3 10:58:21 2020 +0100

    net: skbuff: ensure LSE is pullable before decrementing the MPLS ttl
    
    [ Upstream commit 13de4ed9e3a9ccbe54d05f7d5c773f69ecaf6c64 ]
    
    skb_mpls_dec_ttl() reads the LSE without ensuring that it is contained in
    the skb "linear" area. Fix this calling pskb_may_pull() before reading the
    current ttl.
    
    Found by code inspection.
    
    Fixes: 2a2ea50870ba ("net: sched: add mpls manipulation actions to TC")
    Reported-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: Davide Caratti <dcaratti@redhat.com>
    Link: https://lore.kernel.org/r/53659f28be8bc336c113b5254dc637cc76bbae91.1606987074.git.dcaratti@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e99b623ecbed292518c0fdbc7c101a79e79d578
Author: Wang Hai <wanghai38@huawei.com>
Date:   Thu Dec 3 22:18:06 2020 +0800

    net: mvpp2: Fix error return code in mvpp2_open()
    
    [ Upstream commit 82a10dc7f0960735f40e8d7d3bee56934291600f ]
    
    Fix to return negative error code -ENOENT from invalid configuration
    error handling case instead of 0, as done elsewhere in this function.
    
    Fixes: 4bb043262878 ("net: mvpp2: phylink support")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Link: https://lore.kernel.org/r/20201203141806.37966-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f8a3f6b2d4bf255b3852beda8561a1e76fc2d22
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Dec 3 11:44:31 2020 +0300

    chelsio/chtls: fix a double free in chtls_setkey()
    
    [ Upstream commit 391119fb5c5c4bdb4d57c7ffeb5e8d18560783d1 ]
    
    The "skb" is freed by the transmit code in cxgb4_ofld_send() and we
    shouldn't use it again.  But in the current code, if we hit an error
    later on in the function then the clean up code will call kfree_skb(skb)
    and so it causes a double free.
    
    Set the "skb" to NULL and that makes the kfree_skb() a no-op.
    
    Fixes: d25f2f71f653 ("crypto: chtls - Program the TLS session Key")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/X8ilb6PtBRLWiSHp@mwanda
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f8846e3fd6ac328ea492ff17e3afd26ba9d5b2f
Author: Zhang Changzhong <zhangchangzhong@huawei.com>
Date:   Wed Dec 2 17:58:42 2020 +0800

    vxlan: fix error return code in __vxlan_dev_create()
    
    [ Upstream commit 832e09798c261cf58de3a68cfcc6556408c16a5a ]
    
    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 0ce1822c2a08 ("vxlan: add adjacent link to limit depth level")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1606903122-2098-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6f2d8c6e3cfd04218c50db10aef8dec27204359
Author: Zhang Changzhong <zhangchangzhong@huawei.com>
Date:   Wed Dec 2 17:57:15 2020 +0800

    net: pasemi: fix error return code in pasemi_mac_open()
    
    [ Upstream commit aba84871bd4f52c4dfcf3ad5d4501a6c9d2de90e ]
    
    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 72b05b9940f0 ("pasemi_mac: RX/TX ring management cleanup")
    Fixes: 8d636d8bc5ff ("pasemi_mac: jumbo frame support")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1606903035-1838-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ff9e906d73df21fd89d6555c138944eb9e09a65
Author: Zhang Changzhong <zhangchangzhong@huawei.com>
Date:   Wed Dec 2 17:56:05 2020 +0800

    cxgb3: fix error return code in t3_sge_alloc_qset()
    
    [ Upstream commit ff9924897f8bfed82e61894b373ab9d2dfea5b10 ]
    
    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: b1fb1f280d09 ("cxgb3 - Fix dma mapping error path")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Acked-by: Raju Rangoju <rajur@chelsio.com>
    Link: https://lore.kernel.org/r/1606902965-1646-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7704d8bbcfb640e6cda0e48f6b4edfeac00426a9
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Dec 1 18:15:12 2020 +0300

    net/x25: prevent a couple of overflows
    
    [ Upstream commit 6ee50c8e262a0f0693dad264c3c99e30e6442a56 ]
    
    The .x25_addr[] address comes from the user and is not necessarily
    NUL terminated.  This leads to a couple problems.  The first problem is
    that the strlen() in x25_bind() can read beyond the end of the buffer.
    
    The second problem is more subtle and could result in memory corruption.
    The call tree is:
      x25_connect()
      --> x25_write_internal()
          --> x25_addr_aton()
    
    The .x25_addr[] buffers are copied to the "addresses" buffer from
    x25_write_internal() so it will lead to stack corruption.
    
    Verify that the strings are NUL terminated and return -EINVAL if they
    are not.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Fixes: a9288525d2ae ("X25: Dont let x25_bind use addresses containing characters")
    Reported-by: "kiyin(尹亮)" <kiyin@tencent.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Martin Schiller <ms@dev.tdt.de>
    Link: https://lore.kernel.org/r/X8ZeAKm8FnFpN//B@mwanda
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6eb5ed2b5b9faba9e6f6f0f258685ed794627ba7
Author: Yangbo Lu <yangbo.lu@nxp.com>
Date:   Tue Dec 1 15:52:58 2020 +0800

    dpaa_eth: copy timestamp fields to new skb in A-050385 workaround
    
    [ Upstream commit 07500a6085806d97039ebcba8d9b8b29129f0106 ]
    
    The timestamp fields should be copied to new skb too in
    A-050385 workaround for later TX timestamping handling.
    
    Fixes: 3c68b8fffb48 ("dpaa_eth: FMan erratum A050385 workaround")
    Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
    Acked-by: Camelia Groza <camelia.groza@nxp.com>
    Link: https://lore.kernel.org/r/20201201075258.1875-1-yangbo.lu@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9897bb66ce989325b4bf4cdbb6a799e4ac878b6
Author: Antoine Tenart <atenart@kernel.org>
Date:   Mon Nov 30 17:19:11 2020 +0100

    net: ip6_gre: set dev->hard_header_len when using header_ops
    
    [ Upstream commit 832ba596494b2c9eac7760259eff2d8b7dcad0ee ]
    
    syzkaller managed to crash the kernel using an NBMA ip6gre interface. I
    could reproduce it creating an NBMA ip6gre interface and forwarding
    traffic to it:
    
      skbuff: skb_under_panic: text:ffffffff8250e927 len:148 put:44 head:ffff8c03c7a33
      ------------[ cut here ]------------
      kernel BUG at net/core/skbuff.c:109!
      Call Trace:
      skb_push+0x10/0x10
      ip6gre_header+0x47/0x1b0
      neigh_connected_output+0xae/0xf0
    
    ip6gre tunnel provides its own header_ops->create, and sets it
    conditionally when initializing the tunnel in NBMA mode. When
    header_ops->create is used, dev->hard_header_len should reflect the
    length of the header created. Otherwise, when not used,
    dev->needed_headroom should be used.
    
    Fixes: eb95f52fc72d ("net: ipv6_gre: Fix GRO to work on IPv6 over GRE tap")
    Cc: Maria Pasechnik <mariap@mellanox.com>
    Signed-off-by: Antoine Tenart <atenart@kernel.org>
    Link: https://lore.kernel.org/r/20201130161911.464106-1-atenart@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d555687edf899528a202bbd7f497e9d4727a488
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Dec 1 01:05:07 2020 -0800

    geneve: pull IP header before ECN decapsulation
    
    [ Upstream commit 4179b00c04d18ea7013f68d578d80f3c9d13150a ]
    
    IP_ECN_decapsulate() and IP6_ECN_decapsulate() assume
    IP header is already pulled.
    
    geneve does not ensure this yet.
    
    Fixing this generically in IP_ECN_decapsulate() and
    IP6_ECN_decapsulate() is not possible, since callers
    pass a pointer that might be freed by pskb_may_pull()
    
    syzbot reported :
    
    BUG: KMSAN: uninit-value in __INET_ECN_decapsulate include/net/inet_ecn.h:238 [inline]
    BUG: KMSAN: uninit-value in INET_ECN_decapsulate+0x345/0x1db0 include/net/inet_ecn.h:260
    CPU: 1 PID: 8941 Comm: syz-executor.0 Not tainted 5.10.0-rc4-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     <IRQ>
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x21c/0x280 lib/dump_stack.c:118
     kmsan_report+0xf7/0x1e0 mm/kmsan/kmsan_report.c:118
     __msan_warning+0x5f/0xa0 mm/kmsan/kmsan_instr.c:197
     __INET_ECN_decapsulate include/net/inet_ecn.h:238 [inline]
     INET_ECN_decapsulate+0x345/0x1db0 include/net/inet_ecn.h:260
     geneve_rx+0x2103/0x2980 include/net/inet_ecn.h:306
     geneve_udp_encap_recv+0x105c/0x1340 drivers/net/geneve.c:377
     udp_queue_rcv_one_skb+0x193a/0x1af0 net/ipv4/udp.c:2093
     udp_queue_rcv_skb+0x282/0x1050 net/ipv4/udp.c:2167
     udp_unicast_rcv_skb net/ipv4/udp.c:2325 [inline]
     __udp4_lib_rcv+0x399d/0x5880 net/ipv4/udp.c:2394
     udp_rcv+0x5c/0x70 net/ipv4/udp.c:2564
     ip_protocol_deliver_rcu+0x572/0xc50 net/ipv4/ip_input.c:204
     ip_local_deliver_finish net/ipv4/ip_input.c:231 [inline]
     NF_HOOK include/linux/netfilter.h:301 [inline]
     ip_local_deliver+0x583/0x8d0 net/ipv4/ip_input.c:252
     dst_input include/net/dst.h:449 [inline]
     ip_rcv_finish net/ipv4/ip_input.c:428 [inline]
     NF_HOOK include/linux/netfilter.h:301 [inline]
     ip_rcv+0x5c3/0x840 net/ipv4/ip_input.c:539
     __netif_receive_skb_one_core net/core/dev.c:5315 [inline]
     __netif_receive_skb+0x1ec/0x640 net/core/dev.c:5429
     process_backlog+0x523/0xc10 net/core/dev.c:6319
     napi_poll+0x420/0x1010 net/core/dev.c:6763
     net_rx_action+0x35c/0xd40 net/core/dev.c:6833
     __do_softirq+0x1a9/0x6fa kernel/softirq.c:298
     asm_call_irq_on_stack+0xf/0x20
     </IRQ>
     __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline]
     run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline]
     do_softirq_own_stack+0x6e/0x90 arch/x86/kernel/irq_64.c:77
     do_softirq kernel/softirq.c:343 [inline]
     __local_bh_enable_ip+0x184/0x1d0 kernel/softirq.c:195
     local_bh_enable+0x36/0x40 include/linux/bottom_half.h:32
     rcu_read_unlock_bh include/linux/rcupdate.h:730 [inline]
     __dev_queue_xmit+0x3a9b/0x4520 net/core/dev.c:4167
     dev_queue_xmit+0x4b/0x60 net/core/dev.c:4173
     packet_snd net/packet/af_packet.c:2992 [inline]
     packet_sendmsg+0x86f9/0x99d0 net/packet/af_packet.c:3017
     sock_sendmsg_nosec net/socket.c:651 [inline]
     sock_sendmsg net/socket.c:671 [inline]
     __sys_sendto+0x9dc/0xc80 net/socket.c:1992
     __do_sys_sendto net/socket.c:2004 [inline]
     __se_sys_sendto+0x107/0x130 net/socket.c:2000
     __x64_sys_sendto+0x6e/0x90 net/socket.c:2000
     do_syscall_64+0x9f/0x140 arch/x86/entry/common.c:48
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: 2d07dc79fe04 ("geneve: add initial netdev driver for GENEVE tunnels")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Link: https://lore.kernel.org/r/20201201090507.4137906-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e3e10fa7a15e256d0fbd813fa0b923a5bf2ad4a
Author: Toke Høiland-Jørgensen <toke@redhat.com>
Date:   Mon Nov 30 19:37:05 2020 +0100

    inet_ecn: Fix endianness of checksum update when setting ECT(1)
    
    [ Upstream commit 2867e1eac61016f59b3d730e3f7aa488e186e917 ]
    
    When adding support for propagating ECT(1) marking in IP headers it seems I
    suffered from endianness-confusion in the checksum update calculation: In
    fact the ECN field is in the *lower* bits of the first 16-bit word of the
    IP header when calculating in network byte order. This means that the
    addition performed to update the checksum field was wrong; let's fix that.
    
    Fixes: b723748750ec ("tunnel: Propagate ECT(1) when decapsulating as recommended by RFC6040")
    Reported-by: Jonathan Morton <chromatix99@gmail.com>
    Tested-by: Pete Heist <pete@heistp.net>
    Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
    Link: https://lore.kernel.org/r/20201130183705.17540-1-toke@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ecaeeb4b5acbb37ad3343a69a2c3e50a8d346aea
Author: Hoang Le <hoang.h.le@dektech.com.au>
Date:   Mon Nov 30 09:55:44 2020 +0700

    tipc: fix incompatible mtu of transmission
    
    [ Upstream commit 0643334902fcdc770e2d9555811200213339a3f6 ]
    
    In commit 682cd3cf946b6
    ("tipc: confgiure and apply UDP bearer MTU on running links"), we
    introduced a function to change UDP bearer MTU and applied this new value
    across existing per-link. However, we did not apply this new MTU value at
    node level. This lead to packet dropped at link level if its size is
    greater than new MTU value.
    
    To fix this issue, we also apply this new MTU value for node level.
    
    Fixes: 682cd3cf946b6 ("tipc: confgiure and apply UDP bearer MTU on running links")
    Acked-by: Jon Maloy <jmaloy@redhat.com>
    Signed-off-by: Hoang Le <hoang.h.le@dektech.com.au>
    Link: https://lore.kernel.org/r/20201130025544.3602-1-hoang.h.le@dektech.com.au
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80409f440fb4bd07b8a4c4386f346ec799252d9d
Author: Thomas Falcon <tlfalcon@linux.ibm.com>
Date:   Tue Dec 1 09:52:11 2020 -0600

    ibmvnic: Fix TX completion error handling
    
    [ Upstream commit ba246c175116e2e8fa4fdfa5f8e958e086a9a818 ]
    
    TX completions received with an error return code are not
    being processed properly. When an error code is seen, do not
    proceed to the next completion before cleaning up the existing
    entry's data structures.
    
    Fixes: 032c5e82847a ("Driver for IBM System i/p VNIC protocol")
    Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6db9f0c93f978a62c32124300cc01679093c2667
Author: Thomas Falcon <tlfalcon@linux.ibm.com>
Date:   Tue Dec 1 09:52:10 2020 -0600

    ibmvnic: Ensure that SCRQ entry reads are correctly ordered
    
    [ Upstream commit b71ec952234610b4f90ef17a2fdcb124d5320070 ]
    
    Ensure that received Subordinate Command-Response Queue (SCRQ)
    entries are properly read in order by the driver. These queues
    are used in the ibmvnic device to process RX buffer and TX completion
    descriptors. dma_rmb barriers have been added after checking for a
    pending descriptor to ensure the correct descriptor entry is checked
    and after reading the SCRQ descriptor to ensure the entire
    descriptor is read before processing.
    
    Fixes: 032c5e82847a ("Driver for IBM System i/p VNIC protocol")
    Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a0a5d6881a0dfb3e2d386ef00447107f37e489a
Author: Vinay Kumar Yadav <vinay.yadav@chelsio.com>
Date:   Thu Nov 26 03:19:14 2020 +0530

    chelsio/chtls: fix panic during unload reload chtls
    
    [ Upstream commit e3d5e971d2f83d8ddd4b91a50cea4517fb488383 ]
    
    there is kernel panic in inet_twsk_free() while chtls
    module unload when socket is in TIME_WAIT state because
    sk_prot_creator was not preserved on connection socket.
    
    Fixes: cc35c88ae4db ("crypto : chtls - CPL handler definition")
    Signed-off-by: Udai Sharma <udai.sharma@chelsio.com>
    Signed-off-by: Vinay Kumar Yadav <vinay.yadav@chelsio.com>
    Link: https://lore.kernel.org/r/20201125214913.16938-1-vinay.yadav@chelsio.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dab3f44c5fa84719d6e6eff8d31c6e478703ce56
Author: Krzysztof Kozlowski <krzk@kernel.org>
Date:   Mon Oct 26 16:36:20 2020 +0100

    dt-bindings: net: correct interrupt flags in examples
    
    [ Upstream commit 4d521943f76bd0d1e68ea5e02df7aadd30b2838a ]
    
    GPIO_ACTIVE_x flags are not correct in the context of interrupt flags.
    These are simple defines so they could be used in DTS but they will not
    have the same meaning:
    1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
    2. GPIO_ACTIVE_LOW  = 1 = IRQ_TYPE_EDGE_RISING
    
    Correct the interrupt flags, assuming the author of the code wanted same
    logical behavior behind the name "ACTIVE_xxx", this is:
      ACTIVE_LOW  => IRQ_TYPE_LEVEL_LOW
      ACTIVE_HIGH => IRQ_TYPE_LEVEL_HIGH
    
    Fixes: a1a8b4594f8d ("NFC: pn544: i2c: Add DTS Documentation")
    Fixes: 6be88670fc59 ("NFC: nxp-nci_i2c: Add I2C support to NXP NCI driver")
    Fixes: e3b329221567 ("dt-bindings: can: tcan4x5x: Update binding to use interrupt property")
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Acked-by: Rob Herring <robh@kernel.org>
    Acked-by: Marc Kleine-Budde <mkl@pengutronix.de> # for tcan4x5x.txt
    Link: https://lore.kernel.org/r/20201026153620.89268-1-krzk@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f9309d52c9e2d5d8c8bf218d846be7869abccf5d
Author: Guillaume Nault <gnault@redhat.com>
Date:   Thu Nov 26 19:09:22 2020 +0100

    ipv4: Fix tos mask in inet_rtm_getroute()
    
    [ Upstream commit 1ebf179037cb46c19da3a9c1e2ca16e7a754b75e ]
    
    When inet_rtm_getroute() was converted to use the RCU variants of
    ip_route_input() and ip_route_output_key(), the TOS parameters
    stopped being masked with IPTOS_RT_MASK before doing the route lookup.
    
    As a result, "ip route get" can return a different route than what
    would be used when sending real packets.
    
    For example:
    
        $ ip route add 192.0.2.11/32 dev eth0
        $ ip route add unreachable 192.0.2.11/32 tos 2
        $ ip route get 192.0.2.11 tos 2
        RTNETLINK answers: No route to host
    
    But, packets with TOS 2 (ECT(0) if interpreted as an ECN bit) would
    actually be routed using the first route:
    
        $ ping -c 1 -Q 2 192.0.2.11
        PING 192.0.2.11 (192.0.2.11) 56(84) bytes of data.
        64 bytes from 192.0.2.11: icmp_seq=1 ttl=64 time=0.173 ms
    
        --- 192.0.2.11 ping statistics ---
        1 packets transmitted, 1 received, 0% packet loss, time 0ms
        rtt min/avg/max/mdev = 0.173/0.173/0.173/0.000 ms
    
    This patch re-applies IPTOS_RT_MASK in inet_rtm_getroute(), to
    return results consistent with real route lookups.
    
    Fixes: 3765d35ed8b9 ("net: ipv4: Convert inet_rtm_getroute to rcu versions of route lookup")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/r/b2d237d08317ca55926add9654a48409ac1b8f5b.1606412894.git.gnault@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11152c46e4b71b75cc9f9cc14d393b9509444f11
Author: Antoine Tenart <atenart@kernel.org>
Date:   Mon Nov 23 18:49:02 2020 +0100

    netfilter: bridge: reset skb->pkt_type after NF_INET_POST_ROUTING traversal
    
    [ Upstream commit 44f64f23bae2f0fad25503bc7ab86cd08d04cd47 ]
    
    Netfilter changes PACKET_OTHERHOST to PACKET_HOST before invoking the
    hooks as, while it's an expected value for a bridge, routing expects
    PACKET_HOST. The change is undone later on after hook traversal. This
    can be seen with pairs of functions updating skb>pkt_type and then
    reverting it to its original value:
    
    For hook NF_INET_PRE_ROUTING:
      setup_pre_routing / br_nf_pre_routing_finish
    
    For hook NF_INET_FORWARD:
      br_nf_forward_ip / br_nf_forward_finish
    
    But the third case where netfilter does this, for hook
    NF_INET_POST_ROUTING, the packet type is changed in br_nf_post_routing
    but never reverted. A comment says:
    
      /* We assume any code from br_dev_queue_push_xmit onwards doesn't care
       * about the value of skb->pkt_type. */
    
    But when having a tunnel (say vxlan) attached to a bridge we have the
    following call trace:
    
      br_nf_pre_routing
      br_nf_pre_routing_ipv6
         br_nf_pre_routing_finish
      br_nf_forward_ip
         br_nf_forward_finish
      br_nf_post_routing           <- pkt_type is updated to PACKET_HOST
         br_nf_dev_queue_xmit      <- but not reverted to its original value
      vxlan_xmit
         vxlan_xmit_one
            skb_tunnel_check_pmtu  <- a check on pkt_type is performed
    
    In this specific case, this creates issues such as when an ICMPv6 PTB
    should be sent back. When CONFIG_BRIDGE_NETFILTER is enabled, the PTB
    isn't sent (as skb_tunnel_check_pmtu checks if pkt_type is PACKET_HOST
    and returns early).
    
    If the comment is right and no one cares about the value of
    skb->pkt_type after br_dev_queue_push_xmit (which isn't true), resetting
    it to its original value should be safe.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Antoine Tenart <atenart@kernel.org>
    Reviewed-by: Florian Westphal <fw@strlen.de>
    Link: https://lore.kernel.org/r/20201123174902.622102-1-atenart@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dadddde259a19105ee69e788835f4d4552767aa9
Author: Eyal Birger <eyal.birger@gmail.com>
Date:   Sat Nov 21 08:28:17 2020 +0200

    net/packet: fix packet receive on L3 devices without visible hard header
    
    [ Upstream commit d549699048b4b5c22dd710455bcdb76966e55aa3 ]
    
    In the patchset merged by commit b9fcf0a0d826
    ("Merge branch 'support-AF_PACKET-for-layer-3-devices'") L3 devices which
    did not have header_ops were given one for the purpose of protocol parsing
    on af_packet transmit path.
    
    That change made af_packet receive path regard these devices as having a
    visible L3 header and therefore aligned incoming skb->data to point to the
    skb's mac_header. Some devices, such as ipip, xfrmi, and others, do not
    reset their mac_header prior to ingress and therefore their incoming
    packets became malformed.
    
    Ideally these devices would reset their mac headers, or af_packet would be
    able to rely on dev->hard_header_len being 0 for such cases, but it seems
    this is not the case.
    
    Fix by changing af_packet RX ll visibility criteria to include the
    existence of a '.create()' header operation, which is used when creating
    a device hard header - via dev_hard_header() - by upper layers, and does
    not exist in these L3 devices.
    
    As this predicate may be useful in other situations, add it as a common
    dev_has_header() helper in netdevice.h.
    
    Fixes: b9fcf0a0d826 ("Merge branch 'support-AF_PACKET-for-layer-3-devices'")
    Signed-off-by: Eyal Birger <eyal.birger@gmail.com>
    Acked-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Link: https://lore.kernel.org/r/20201121062817.3178900-1-eyal.birger@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c886dc8028f21ff86f3ef311b72bd2b816dbad0
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Thu Nov 26 15:17:53 2020 +0100

    mptcp: fix NULL ptr dereference on bad MPJ
    
    [ Upstream commit d3ab78858f1451351221061a1c365495df196500 ]
    
    If an msk listener receives an MPJ carrying an invalid token, it
    will zero the request socket msk entry. That should later
    cause fallback and subflow reset - as per RFC - at
    subflow_syn_recv_sock() time due to failing hmac validation.
    
    Since commit 4cf8b7e48a09 ("subflow: introduce and use
    mptcp_can_accept_new_subflow()"), we unconditionally dereference
    - in mptcp_can_accept_new_subflow - the subflow request msk
    before performing hmac validation. In the above scenario we
    hit a NULL ptr dereference.
    
    Address the issue doing the hmac validation earlier.
    
    Fixes: 4cf8b7e48a09 ("subflow: introduce and use mptcp_can_accept_new_subflow()")
    Tested-by: Davide Caratti <dcaratti@redhat.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Link: https://lore.kernel.org/r/03b2cfa3ac80d8fc18272edc6442a9ddf0b1e34e.1606400227.git.pabeni@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e7dd95046203bd05e8f4dc06ee53cace70a8e3c
Author: Stefano Garzarella <sgarzare@redhat.com>
Date:   Fri Nov 20 11:47:36 2020 +0100

    vsock/virtio: discard packets only when socket is really closed
    
    [ Upstream commit 3fe356d58efae54dade9ec94ea7c919ed20cf4db ]
    
    Starting from commit 8692cefc433f ("virtio_vsock: Fix race condition
    in virtio_transport_recv_pkt"), we discard packets in
    virtio_transport_recv_pkt() if the socket has been released.
    
    When the socket is connected, we schedule a delayed work to wait the
    RST packet from the other peer, also if SHUTDOWN_MASK is set in
    sk->sk_shutdown.
    This is done to complete the virtio-vsock shutdown algorithm, releasing
    the port assigned to the socket definitively only when the other peer
    has consumed all the packets.
    
    If we discard the RST packet received, the socket will be closed only
    when the VSOCK_CLOSE_TIMEOUT is reached.
    
    Sergio discovered the issue while running ab(1) HTTP benchmark using
    libkrun [1] and observing a latency increase with that commit.
    
    To avoid this issue, we discard packet only if the socket is really
    closed (SOCK_DONE flag is set).
    We also set SOCK_DONE in virtio_transport_release() when we don't need
    to wait any packets from the other peer (we didn't schedule the delayed
    work). In this case we remove the socket from the vsock lists, releasing
    the port assigned.
    
    [1] https://github.com/containers/libkrun
    
    Fixes: 8692cefc433f ("virtio_vsock: Fix race condition in virtio_transport_recv_pkt")
    Cc: justin.he@arm.com
    Reported-by: Sergio Lopez <slp@redhat.com>
    Tested-by: Sergio Lopez <slp@redhat.com>
    Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
    Acked-by: Jia He <justin.he@arm.com>
    Link: https://lore.kernel.org/r/20201120104736.73749-1-sgarzare@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 640b4434fb903e882a3bfb1f35d60981b3fa7ae9
Author: Yves-Alexis Perez <corsac@corsac.net>
Date:   Thu Nov 19 18:24:39 2020 +0100

    usbnet: ipheth: fix connectivity with iOS 14
    
    [ Upstream commit f33d9e2b48a34e1558b67a473a1fc1d6e793f93c ]
    
    Starting with iOS 14 released in September 2020, connectivity using the
    personal hotspot USB tethering function of iOS devices is broken.
    
    Communication between the host and the device (for example ICMP traffic
    or DNS resolution using the DNS service running in the device itself)
    works fine, but communication to endpoints further away doesn't work.
    
    Investigation on the matter shows that no UDP and ICMP traffic from the
    tethered host is reaching the Internet at all. For TCP traffic there are
    exchanges between tethered host and server but packets are modified in
    transit leading to impossible communication.
    
    After some trials Matti Vuorela discovered that reducing the URB buffer
    size by two bytes restored the previous behavior. While a better
    solution might exist to fix the issue, since the protocol is not
    publicly documented and considering the small size of the fix, let's do
    that.
    
    Tested-by: Matti Vuorela <matti.vuorela@bitfactor.fi>
    Signed-off-by: Yves-Alexis Perez <corsac@corsac.net>
    Link: https://lore.kernel.org/linux-usb/CAAn0qaXmysJ9vx3ZEMkViv_B19ju-_ExN8Yn_uSefxpjS6g4Lw@mail.gmail.com/
    Link: https://github.com/libimobiledevice/libimobiledevice/issues/1038
    Link: https://lore.kernel.org/r/20201119172439.94988-1-corsac@corsac.net
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d568992ab78f4b819984c188e21f76de784081a
Author: Jens Axboe <axboe@kernel.dk>
Date:   Fri Nov 20 07:59:54 2020 -0700

    tun: honor IOCB_NOWAIT flag
    
    [ Upstream commit 5aac0390a63b8718237a61dd0d24a29201d1c94a ]
    
    tun only checks the file O_NONBLOCK flag, but it should also be checking
    the iocb IOCB_NOWAIT flag. Any fops using ->read/write_iter() should check
    both, otherwise it breaks users that correctly expect O_NONBLOCK semantics
    if IOCB_NOWAIT is set.
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Link: https://lore.kernel.org/r/e9451860-96cc-c7c7-47b8-fe42cadd5f4c@kernel.dk
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd2585b7c821bfc81f7badbf04634d6cb988c722
Author: Alexander Duyck <alexanderduyck@fb.com>
Date:   Thu Nov 19 13:23:58 2020 -0800

    tcp: Set INET_ECN_xmit configuration in tcp_reinit_congestion_control
    
    [ Upstream commit 55472017a4219ca965a957584affdb17549ae4a4 ]
    
    When setting congestion control via a BPF program it is seen that the
    SYN/ACK for packets within a given flow will not include the ECT0 flag. A
    bit of simple printk debugging shows that when this is configured without
    BPF we will see the value INET_ECN_xmit value initialized in
    tcp_assign_congestion_control however when we configure this via BPF the
    socket is in the closed state and as such it isn't configured, and I do not
    see it being initialized when we transition the socket into the listen
    state. The result of this is that the ECT0 bit is configured based on
    whatever the default state is for the socket.
    
    Any easy way to reproduce this is to monitor the following with tcpdump:
    tools/testing/selftests/bpf/test_progs -t bpf_tcp_ca
    
    Without this patch the SYN/ACK will follow whatever the default is. If dctcp
    all SYN/ACK packets will have the ECT0 bit set, and if it is not then ECT0
    will be cleared on all SYN/ACK packets. With this patch applied the SYN/ACK
    bit matches the value seen on the other packets in the given stream.
    
    Fixes: 91b5b21c7c16 ("bpf: Add support for changing congestion control")
    Signed-off-by: Alexander Duyck <alexanderduyck@fb.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f7cf0545e037e62ca5522005fc860bfe994b3f0
Author: Willem de Bruijn <willemb@google.com>
Date:   Thu Nov 26 10:12:20 2020 -0500

    sock: set sk_err to ee_errno on dequeue from errq
    
    [ Upstream commit 985f7337421a811cb354ca93882f943c8335a6f5 ]
    
    When setting sk_err, set it to ee_errno, not ee_origin.
    
    Commit f5f99309fa74 ("sock: do not set sk_err in
    sock_dequeue_err_skb") disabled updating sk_err on errq dequeue,
    which is correct for most error types (origins):
    
      -       sk->sk_err = err;
    
    Commit 38b257938ac6 ("sock: reset sk_err when the error queue is
    empty") reenabled the behavior for IMCP origins, which do require it:
    
      +       if (icmp_next)
      +               sk->sk_err = SKB_EXT_ERR(skb_next)->ee.ee_origin;
    
    But read from ee_errno.
    
    Fixes: 38b257938ac6 ("sock: reset sk_err when the error queue is empty")
    Reported-by: Ayush Ranjan <ayushranjan@google.com>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
    Link: https://lore.kernel.org/r/20201126151220.2819322-1-willemdebruijn.kernel@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9aec3148d1e34135cc7920ad50e7dd93f07aef1
Author: Anmol Karn <anmol.karan123@gmail.com>
Date:   Fri Nov 20 00:40:43 2020 +0530

    rose: Fix Null pointer dereference in rose_send_frame()
    
    [ Upstream commit 3b3fd068c56e3fbea30090859216a368398e39bf ]
    
    rose_send_frame() dereferences `neigh->dev` when called from
    rose_transmit_clear_request(), and the first occurrence of the
    `neigh` is in rose_loopback_timer() as `rose_loopback_neigh`,
    and it is initialized in rose_add_loopback_neigh() as NULL.
    i.e when `rose_loopback_neigh` used in rose_loopback_timer()
    its `->dev` was still NULL and rose_loopback_timer() was calling
    rose_rx_call_request() without checking for NULL.
    
    - net/rose/rose_link.c
    This bug seems to get triggered in this line:
    
    rose_call = (ax25_address *)neigh->dev->dev_addr;
    
    Fix it by adding NULL checking for `rose_loopback_neigh->dev`
    in rose_loopback_timer().
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Suggested-by: Jakub Kicinski <kuba@kernel.org>
    Reported-by: syzbot+a1c743815982d9496393@syzkaller.appspotmail.com
    Tested-by: syzbot+a1c743815982d9496393@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=9d2a7ca8c7f2e4b682c97578dfa3f236258300b3
    Signed-off-by: Anmol Karn <anmol.karan123@gmail.com>
    Link: https://lore.kernel.org/r/20201119191043.28813-1-anmol.karan123@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2d5b96090490649ad508917c25c91e1011c8356
Author: Maxim Mikityanskiy <maximmi@mellanox.com>
Date:   Wed Nov 25 14:18:10 2020 -0800

    net/tls: Protect from calling tls_dev_del for TLS RX twice
    
    [ Upstream commit 025cc2fb6a4e84e9a0552c0017dcd1c24b7ac7da ]
    
    tls_device_offload_cleanup_rx doesn't clear tls_ctx->netdev after
    calling tls_dev_del if TLX TX offload is also enabled. Clearing
    tls_ctx->netdev gets postponed until tls_device_gc_task. It leaves a
    time frame when tls_device_down may get called and call tls_dev_del for
    RX one extra time, confusing the driver, which may lead to a crash.
    
    This patch corrects this racy behavior by adding a flag to prevent
    tls_device_down from calling tls_dev_del the second time.
    
    Fixes: e8f69799810c ("net/tls: Add generic NIC offload infrastructure")
    Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Link: https://lore.kernel.org/r/20201125221810.69870-1-saeedm@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 176ee7dd1b83e7bbb4564aaba4192f051e8ee843
Author: Vadim Fedorenko <vfedorenko@novek.ru>
Date:   Thu Nov 19 18:59:48 2020 +0300

    net/tls: missing received data after fast remote close
    
    [ Upstream commit 20ffc7adf53a5fd3d19751fbff7895bcca66686e ]
    
    In case when tcp socket received FIN after some data and the
    parser haven't started before reading data caller will receive
    an empty buffer. This behavior differs from plain TCP socket and
    leads to special treating in user-space.
    The flow that triggers the race is simple. Server sends small
    amount of data right after the connection is configured to use TLS
    and closes the connection. In this case receiver sees TLS Handshake
    data, configures TLS socket right after Change Cipher Spec record.
    While the configuration is in process, TCP socket receives small
    Application Data record, Encrypted Alert record and FIN packet. So
    the TCP socket changes sk_shutdown to RCV_SHUTDOWN and sk_flag with
    SK_DONE bit set. The received data is not parsed upon arrival and is
    never sent to user-space.
    
    Patch unpauses parser directly if we have unparsed data in tcp
    receive queue.
    
    Fixes: fcf4793e278e ("tls: check RCV_SHUTDOWN in tls_wait_data")
    Signed-off-by: Vadim Fedorenko <vfedorenko@novek.ru>
    Link: https://lore.kernel.org/r/1605801588-12236-1-git-send-email-vfedorenko@novek.ru
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff764c1b5150b1e71f9a3deadc7a69b8e6805eb1
Author: Eelco Chaudron <echaudro@redhat.com>
Date:   Tue Nov 24 07:34:44 2020 -0500

    net: openvswitch: fix TTL decrement action netlink message format
    
    [ Upstream commit 69929d4c49e182f8526d42c43b37b460d562d3a0 ]
    
    Currently, the openvswitch module is not accepting the correctly formated
    netlink message for the TTL decrement action. For both setting and getting
    the dec_ttl action, the actions should be nested in the
    OVS_DEC_TTL_ATTR_ACTION attribute as mentioned in the openvswitch.h uapi.
    
    When the original patch was sent, it was tested with a private OVS userspace
    implementation. This implementation was unfortunately not upstreamed and
    reviewed, hence an erroneous version of this patch was sent out.
    
    Leaving the patch as-is would cause problems as the kernel module could
    interpret additional attributes as actions and vice-versa, due to the
    actions not being encapsulated/nested within the actual attribute, but
    being concatinated after it.
    
    Fixes: 744676e77720 ("openvswitch: add TTL decrement action")
    Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
    Link: https://lore.kernel.org/r/160622121495.27296.888010441924340582.stgit@wsfd-netdev64.ntdv.lab.eng.bos.redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca18ad48e149171efbcc669420f809f703ca8a43
Author: Julian Wiedmann <jwi@linux.ibm.com>
Date:   Fri Nov 20 11:06:57 2020 +0100

    net/af_iucv: set correct sk_protocol for child sockets
    
    [ Upstream commit c5dab0941fcdc9664eb0ec0d4d51433216d91336 ]
    
    Child sockets erroneously inherit their parent's sk_type (ie. SOCK_*),
    instead of the PF_IUCV protocol that the parent was created with in
    iucv_sock_create().
    
    We're currently not using sk->sk_protocol ourselves, so this shouldn't
    have much impact (except eg. getting the output in skb_dump() right).
    
    Fixes: eac3731bd04c ("[S390]: Add AF_IUCV socket support")
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Link: https://lore.kernel.org/r/20201120100657.34407-1-jwi@linux.ibm.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f15dc79607813fe4dcd6e605b0bf2e5b7c9b03d
Author: Wang Hai <wanghai38@huawei.com>
Date:   Tue Nov 24 15:17:28 2020 +0800

    ipv6: addrlabel: fix possible memory leak in ip6addrlbl_net_init
    
    [ Upstream commit e255e11e66da8281e337e4e352956e8a4999fca4 ]
    
    kmemleak report a memory leak as follows:
    
    unreferenced object 0xffff8880059c6a00 (size 64):
      comm "ip", pid 23696, jiffies 4296590183 (age 1755.384s)
      hex dump (first 32 bytes):
        20 01 00 10 00 00 00 00 00 00 00 00 00 00 00 00   ...............
        1c 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00  ................
      backtrace:
        [<00000000aa4e7a87>] ip6addrlbl_add+0x90/0xbb0
        [<0000000070b8d7f1>] ip6addrlbl_net_init+0x109/0x170
        [<000000006a9ca9d4>] ops_init+0xa8/0x3c0
        [<000000002da57bf2>] setup_net+0x2de/0x7e0
        [<000000004e52d573>] copy_net_ns+0x27d/0x530
        [<00000000b07ae2b4>] create_new_namespaces+0x382/0xa30
        [<000000003b76d36f>] unshare_nsproxy_namespaces+0xa1/0x1d0
        [<0000000030653721>] ksys_unshare+0x3a4/0x780
        [<0000000007e82e40>] __x64_sys_unshare+0x2d/0x40
        [<0000000031a10c08>] do_syscall_64+0x33/0x40
        [<0000000099df30e7>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    We should free all rules when we catch an error in ip6addrlbl_net_init().
    otherwise a memory leak will occur.
    
    Fixes: 2a8cc6c89039 ("[IPV6] ADDRCONF: Support RFC3484 configurable address selection policy table.")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Link: https://lore.kernel.org/r/20201124071728.8385-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d2d2a882000c6de3a106a0932a33b2b56d405b6c
Author: Parav Pandit <parav@nvidia.com>
Date:   Wed Nov 25 11:16:20 2020 +0200

    devlink: Make sure devlink instance and port are in same net namespace
    
    [ Upstream commit a7b43649507dae4e55ff0087cad4e4dd1c6d5b99 ]
    
    When devlink reload operation is not used, netdev of an Ethernet port may
    be present in different net namespace than the net namespace of the
    devlink instance.
    
    Ensure that both the devlink instance and devlink port netdev are located
    in same net namespace.
    
    Fixes: 070c63f20f6c ("net: devlink: allow to change namespaces during reload")
    Signed-off-by: Parav Pandit <parav@nvidia.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9670490edfc442d0287726a28ec7dd5f2cab0969
Author: Parav Pandit <parav@nvidia.com>
Date:   Wed Nov 25 11:16:19 2020 +0200

    devlink: Hold rtnl lock while reading netdev attributes
    
    [ Upstream commit b187c9b4178b87954dbc94e78a7094715794714f ]
    
    A netdevice of a devlink port can be moved to different net namespace
    than its parent devlink instance.
    This scenario occurs when devlink reload is not used.
    
    When netdevice is undergoing migration to net namespace, its ifindex
    and name may change.
    
    In such use case, devlink port query may read stale netdev attributes.
    
    Fix it by reading them under rtnl lock.
    
    Fixes: bfcd3a466172 ("Introduce devlink infrastructure")
    Signed-off-by: Parav Pandit <parav@nvidia.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>