commit 47cbf4cc32db62f053c4cd04fc6ee39a0218139e
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Dec 8 10:17:35 2020 +0100

    Linux 4.14.211
    
    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/20201206111555.569713359@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4ecb41aa3f154d8020a586a591d49f23e219dcc
Author: Shiraz Saleem <shiraz.saleem@intel.com>
Date:   Tue Nov 24 18:56:16 2020 -0600

    RDMA/i40iw: Address an mmap handler exploit in i40iw
    
    commit 2ed381439e89fa6d1a0839ef45ccd45d99d8e915 upstream.
    
    i40iw_mmap manipulates the vma->vm_pgoff to differentiate a push page mmap
    vs a doorbell mmap, and uses it to compute the pfn in remap_pfn_range
    without any validation. This is vulnerable to an mmap exploit as described
    in: https://lore.kernel.org/r/20201119093523.7588-1-zhudi21@huawei.com
    
    The push feature is disabled in the driver currently and therefore no push
    mmaps are issued from user-space. The feature does not work as expected in
    the x722 product.
    
    Remove the push module parameter and all VMA attribute manipulations for
    this feature in i40iw_mmap. Update i40iw_mmap to only allow DB user
    mmapings at offset = 0. Check vm_pgoff for zero and if the mmaps are bound
    to a single page.
    
    Cc: <stable@kernel.org>
    Fixes: d37498417947 ("i40iw: add files for iwarp interface")
    Link: https://lore.kernel.org/r/20201125005616.1800-2-shiraz.saleem@intel.com
    Reported-by: Di Zhu <zhudi21@huawei.com>
    Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 79412fb4ce77002585c3ca058dbf929f6d3879a8
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 055dc3410d48c0a59fb6e20852693aea13305003
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 cef9e1d13e4f2ba299cf090eafb501e2db6c7e71
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 d36c515e54cd0c2c0cb3abde1fe7df804a3c1042
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 7dc552407c7e8221e22d3128aa0fab71b8ab2f98
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 025cb3e4610a0dd5a9ed0bd56250c2879bed1619
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 3eba4f588f974085081aeb742b7ad851758fcbdc
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 f1fbbcb61d840792ae38bc4007160fc80c14ee90
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 00b3ff96949c5aea1396ea1c0fdc38c77edb39f4
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 4af15ecd31aa1b0b93e5a2346c24059f1a14c9ba
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 2b768247675ba7183f29a6046a10218ab5d910e1
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 5e2cca19f18cbbe9e60c22121ac276f8bf6ab728
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 1426584e3b4149afe0e4124fc6476e888a0eb0ed
Author: Jamie Iles <jamie@nuviainc.com>
Date:   Fri Nov 20 14:28:27 2020 +0000

    bonding: wait for sysfs kobject destruction before freeing struct slave
    
    [ Upstream commit b9ad3e9f5a7a760ab068e33e1f18d240ba32ce92 ]
    
    syzkaller found that with CONFIG_DEBUG_KOBJECT_RELEASE=y, releasing a
    struct slave device could result in the following splat:
    
      kobject: 'bonding_slave' (00000000cecdd4fe): kobject_release, parent 0000000074ceb2b2 (delayed 1000)
      bond0 (unregistering): (slave bond_slave_1): Releasing backup interface
      ------------[ cut here ]------------
      ODEBUG: free active (active state 0) object type: timer_list hint: workqueue_select_cpu_near kernel/workqueue.c:1549 [inline]
      ODEBUG: free active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x98 kernel/workqueue.c:1600
      WARNING: CPU: 1 PID: 842 at lib/debugobjects.c:485 debug_print_object+0x180/0x240 lib/debugobjects.c:485
      Kernel panic - not syncing: panic_on_warn set ...
      CPU: 1 PID: 842 Comm: kworker/u4:4 Tainted: G S                5.9.0-rc8+ #96
      Hardware name: linux,dummy-virt (DT)
      Workqueue: netns cleanup_net
      Call trace:
       dump_backtrace+0x0/0x4d8 include/linux/bitmap.h:239
       show_stack+0x34/0x48 arch/arm64/kernel/traps.c:142
       __dump_stack lib/dump_stack.c:77 [inline]
       dump_stack+0x174/0x1f8 lib/dump_stack.c:118
       panic+0x360/0x7a0 kernel/panic.c:231
       __warn+0x244/0x2ec kernel/panic.c:600
       report_bug+0x240/0x398 lib/bug.c:198
       bug_handler+0x50/0xc0 arch/arm64/kernel/traps.c:974
       call_break_hook+0x160/0x1d8 arch/arm64/kernel/debug-monitors.c:322
       brk_handler+0x30/0xc0 arch/arm64/kernel/debug-monitors.c:329
       do_debug_exception+0x184/0x340 arch/arm64/mm/fault.c:864
       el1_dbg+0x48/0xb0 arch/arm64/kernel/entry-common.c:65
       el1_sync_handler+0x170/0x1c8 arch/arm64/kernel/entry-common.c:93
       el1_sync+0x80/0x100 arch/arm64/kernel/entry.S:594
       debug_print_object+0x180/0x240 lib/debugobjects.c:485
       __debug_check_no_obj_freed lib/debugobjects.c:967 [inline]
       debug_check_no_obj_freed+0x200/0x430 lib/debugobjects.c:998
       slab_free_hook mm/slub.c:1536 [inline]
       slab_free_freelist_hook+0x190/0x210 mm/slub.c:1577
       slab_free mm/slub.c:3138 [inline]
       kfree+0x13c/0x460 mm/slub.c:4119
       bond_free_slave+0x8c/0xf8 drivers/net/bonding/bond_main.c:1492
       __bond_release_one+0xe0c/0xec8 drivers/net/bonding/bond_main.c:2190
       bond_slave_netdev_event drivers/net/bonding/bond_main.c:3309 [inline]
       bond_netdev_event+0x8f0/0xa70 drivers/net/bonding/bond_main.c:3420
       notifier_call_chain+0xf0/0x200 kernel/notifier.c:83
       __raw_notifier_call_chain kernel/notifier.c:361 [inline]
       raw_notifier_call_chain+0x44/0x58 kernel/notifier.c:368
       call_netdevice_notifiers_info+0xbc/0x150 net/core/dev.c:2033
       call_netdevice_notifiers_extack net/core/dev.c:2045 [inline]
       call_netdevice_notifiers net/core/dev.c:2059 [inline]
       rollback_registered_many+0x6a4/0xec0 net/core/dev.c:9347
       unregister_netdevice_many.part.0+0x2c/0x1c0 net/core/dev.c:10509
       unregister_netdevice_many net/core/dev.c:10508 [inline]
       default_device_exit_batch+0x294/0x338 net/core/dev.c:10992
       ops_exit_list.isra.0+0xec/0x150 net/core/net_namespace.c:189
       cleanup_net+0x44c/0x888 net/core/net_namespace.c:603
       process_one_work+0x96c/0x18c0 kernel/workqueue.c:2269
       worker_thread+0x3f0/0xc30 kernel/workqueue.c:2415
       kthread+0x390/0x498 kernel/kthread.c:292
       ret_from_fork+0x10/0x18 arch/arm64/kernel/entry.S:925
    
    This is a potential use-after-free if the sysfs nodes are being accessed
    whilst removing the struct slave, so wait for the object destruction to
    complete before freeing the struct slave itself.
    
    Fixes: 07699f9a7c8d ("bonding: add sysfs /slave dir for bond slave devices.")
    Fixes: a068aab42258 ("bonding: Fix reference count leak in bond_sysfs_slave_add.")
    Cc: Qiushi Wu <wu000273@umn.edu>
    Cc: Jay Vosburgh <j.vosburgh@gmail.com>
    Cc: Veaceslav Falico <vfalico@gmail.com>
    Cc: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: Jamie Iles <jamie@nuviainc.com>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Link: https://lore.kernel.org/r/20201120142827.879226-1-jamie@nuviainc.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8de4963b2b22869d7314dbc5381c32d9763cfcc6
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 d1bea88509fb84852593cacbd5f3c59501936c3c
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 2d375e703f00a2ac60f6530b8dc924bdcfac4ef4
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 8e17037110db104420aa67740f399b38559bb000
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 bbcdbd1d3a9401870aada16b57932123dac69405
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 69410c1126b69b453746a61fe79e87aa9cd29ee6
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>