Merge tag 'net-5.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 5 Jun 2021 01:25:39 +0000 (18:25 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 5 Jun 2021 01:25:39 +0000 (18:25 -0700)
Pull networking fixes from Jakub Kicinski:
 "Networking fixes, including fixes from bpf, wireless, netfilter and
  wireguard trees.

  The bpf vs lockdown+audit fix is the most notable.

  Things haven't slowed down just yet, both in terms of regressions in
  current release and largish fixes for older code, but we usually see a
  slowdown only after -rc5.

  Current release - regressions:

   - virtio-net: fix page faults and crashes when XDP is enabled

   - mlx5e: fix HW timestamping with CQE compression, and make sure they
     are only allowed to coexist with capable devices

   - stmmac:
      - fix kernel panic due to NULL pointer dereference of
        mdio_bus_data
      - fix double clk unprepare when no PHY device is connected

  Current release - new code bugs:

   - mt76: a few fixes for the recent MT7921 devices and runtime power
     management

  Previous releases - regressions:

   - ice:
      - track AF_XDP ZC enabled queues in bitmap to fix copy mode Tx
      - fix allowing VF to request more/less queues via virtchnl
      - correct supported and advertised autoneg by using PHY
        capabilities
      - allow all LLDP packets from PF to Tx

   - kbuild: quote OBJCOPY var to avoid a pahole call break the build

  Previous releases - always broken:

   - bpf, lockdown, audit: fix buggy SELinux lockdown permission checks

   - mt76: address the recent FragAttack vulnerabilities not covered by
     generic fixes

   - ipv6: fix KASAN: slab-out-of-bounds Read in
     fib6_nh_flush_exceptions

   - Bluetooth:
      - fix the erroneous flush_work() order, to avoid double free
      - use correct lock to prevent UAF of hdev object

   - nfc: fix NULL ptr dereference in llcp_sock_getname() after failed
     connect

   - ieee802154: multiple fixes to error checking and return values

   - igb: fix XDP with PTP enabled

   - intel: add correct exception tracing for XDP

   - tls: fix use-after-free when TLS offload device goes down and back
     up

   - ipvs: ignore IP_VS_SVC_F_HASHED flag when adding service

   - netfilter: nft_ct: skip expectations for confirmed conntrack

   - mptcp: fix falling back to TCP in presence of out of order packets
     early in connection lifetime

   - wireguard: switch from O(n) to a O(1) algorithm for maintaining
     peers, fixing stalls and a large memory leak in the process

  Misc:

   - devlink: correct VIRTUAL port to not have phys_port attributes

   - Bluetooth: fix VIRTIO_ID_BT assigned number

   - net: return the correct errno code ENOBUF -> ENOMEM

   - wireguard:
      - peer: allocate in kmem_cache saving 25% on peer memory
      - do not use -O3"

* tag 'net-5.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (91 commits)
  cxgb4: avoid link re-train during TC-MQPRIO configuration
  sch_htb: fix refcount leak in htb_parent_to_leaf_offload
  wireguard: allowedips: free empty intermediate nodes when removing single node
  wireguard: allowedips: allocate nodes in kmem_cache
  wireguard: allowedips: remove nodes in O(1)
  wireguard: allowedips: initialize list head in selftest
  wireguard: peer: allocate in kmem_cache
  wireguard: use synchronize_net rather than synchronize_rcu
  wireguard: do not use -O3
  wireguard: selftests: make sure rp_filter is disabled on vethc
  wireguard: selftests: remove old conntrack kconfig value
  virtchnl: Add missing padding to virtchnl_proto_hdrs
  ice: Allow all LLDP packets from PF to Tx
  ice: report supported and advertised autoneg using PHY capabilities
  ice: handle the VF VSI rebuild failure
  ice: Fix VFR issues for AVF drivers that expect ATQLEN cleared
  ice: Fix allowing VF to request more/less queues via virtchnl
  virtio-net: fix for skb_over_panic inside big mode
  ipv6: Fix KASAN: slab-out-of-bounds Read in fib6_nh_flush_exceptions
  fib: Return the correct errno code
  ...

1  2 
MAINTAINERS
drivers/bluetooth/btusb.c

diff --combined MAINTAINERS
@@@ -3877,7 -3877,6 +3877,7 @@@ L:      linux-btrfs@vger.kernel.or
  S:    Maintained
  W:    http://btrfs.wiki.kernel.org/
  Q:    http://patchwork.kernel.org/project/linux-btrfs/list/
 +C:    irc://irc.libera.chat/btrfs
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git
  F:    Documentation/filesystems/btrfs.rst
  F:    fs/btrfs/
@@@ -6946,7 -6945,6 +6946,7 @@@ F:      net/core/failover.
  FANOTIFY
  M:    Jan Kara <jack@suse.cz>
  R:    Amir Goldstein <amir73il@gmail.com>
 +R:    Matthew Bobrowski <repnop@google.com>
  L:    linux-fsdevel@vger.kernel.org
  S:    Maintained
  F:    fs/notify/fanotify/
@@@ -12905,7 -12903,7 +12905,7 @@@ F:   net/ipv4/nexthop.
  
  NFC SUBSYSTEM
  M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
- L:    linux-nfc@lists.01.org (moderated for non-subscribers)
+ L:    linux-nfc@lists.01.org (subscribers-only)
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/nfc/
@@@ -12918,7 -12916,7 +12918,7 @@@ F:   net/nfc
  NFC VIRTUAL NCI DEVICE DRIVER
  M:    Bongsu Jeon <bongsu.jeon@samsung.com>
  L:    netdev@vger.kernel.org
- L:    linux-nfc@lists.01.org (moderated for non-subscribers)
+ L:    linux-nfc@lists.01.org (subscribers-only)
  S:    Supported
  F:    drivers/nfc/virtual_ncidev.c
  F:    tools/testing/selftests/nci/
@@@ -13216,7 -13214,7 +13216,7 @@@ F:   sound/soc/codecs/tfa9879
  
  NXP-NCI NFC DRIVER
  R:    Charles Gorand <charles.gorand@effinnov.com>
- L:    linux-nfc@lists.01.org (moderated for non-subscribers)
+ L:    linux-nfc@lists.01.org (subscribers-only)
  S:    Supported
  F:    drivers/nfc/nxp-nci
  
@@@ -14119,7 -14117,6 +14119,7 @@@ F:   drivers/pci/controller/pci-v3-semi.
  PCI ENDPOINT SUBSYSTEM
  M:    Kishon Vijay Abraham I <kishon@ti.com>
  M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
 +R:    Krzysztof Wilczyński <kw@linux.com>
  L:    linux-pci@vger.kernel.org
  S:    Supported
  F:    Documentation/PCI/endpoint/*
@@@ -14168,7 -14165,6 +14168,7 @@@ F:   drivers/pci/controller/pci-xgene-msi
  PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
  M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
  R:    Rob Herring <robh@kernel.org>
 +R:    Krzysztof Wilczyński <kw@linux.com>
  L:    linux-pci@vger.kernel.org
  S:    Supported
  Q:    http://patchwork.ozlabs.org/project/linux-pci/list/
@@@ -14328,12 -14324,10 +14328,12 @@@ PER-CPU MEMORY ALLOCATO
  M:    Dennis Zhou <dennis@kernel.org>
  M:    Tejun Heo <tj@kernel.org>
  M:    Christoph Lameter <cl@linux.com>
 +L:    linux-mm@kvack.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu.git
  F:    arch/*/include/asm/percpu.h
  F:    include/linux/percpu*.h
 +F:    lib/percpu*.c
  F:    mm/percpu*.c
  
  PER-TASK DELAY ACCOUNTING
@@@ -16147,7 -16141,7 +16147,7 @@@ F:   include/media/drv-intf/s3c_camif.
  SAMSUNG S3FWRN5 NFC DRIVER
  M:    Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
  M:    Krzysztof Opasiak <k.opasiak@samsung.com>
- L:    linux-nfc@lists.01.org (moderated for non-subscribers)
+ L:    linux-nfc@lists.01.org (subscribers-only)
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/nfc/samsung,s3fwrn5.yaml
  F:    drivers/nfc/s3fwrn5
@@@ -17682,6 -17676,7 +17682,6 @@@ R:   Mika Westerberg <mika.westerberg@lin
  L:    linux-i2c@vger.kernel.org
  S:    Maintained
  F:    drivers/i2c/busses/i2c-designware-*
 -F:    include/linux/platform_data/i2c-designware.h
  
  SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
  M:    Jaehoon Chung <jh80.chung@samsung.com>
@@@ -18337,7 -18332,7 +18337,7 @@@ F:   sound/soc/codecs/tas571x
  TI TRF7970A NFC DRIVER
  M:    Mark Greer <mgreer@animalcreek.com>
  L:    linux-wireless@vger.kernel.org
- L:    linux-nfc@lists.01.org (moderated for non-subscribers)
+ L:    linux-nfc@lists.01.org (subscribers-only)
  S:    Supported
  F:    Documentation/devicetree/bindings/net/nfc/trf7970a.txt
  F:    drivers/nfc/trf7970a.c
@@@ -20017,7 -20012,6 +20017,7 @@@ F:   arch/x86/xen/*swiotlb
  F:    drivers/xen/*swiotlb*
  
  XFS FILESYSTEM
 +C:    irc://irc.oftc.net/xfs
  M:    Darrick J. Wong <djwong@kernel.org>
  M:    linux-xfs@vger.kernel.org
  L:    linux-xfs@vger.kernel.org
@@@ -388,8 -388,6 +388,8 @@@ static const struct usb_device_id black
        /* Realtek 8822CE Bluetooth devices */
        { USB_DEVICE(0x0bda, 0xb00c), .driver_info = BTUSB_REALTEK |
                                                     BTUSB_WIDEBAND_SPEECH },
 +      { USB_DEVICE(0x0bda, 0xc822), .driver_info = BTUSB_REALTEK |
 +                                                   BTUSB_WIDEBAND_SPEECH },
  
        /* Realtek 8852AE Bluetooth devices */
        { USB_DEVICE(0x0bda, 0xc852), .driver_info = BTUSB_REALTEK |
@@@ -2529,10 -2527,17 +2529,17 @@@ static int btusb_intel_download_firmwar
        }
  
        btusb_setup_intel_newgen_get_fw_name(ver, fwname, sizeof(fwname), "sfi");
-       err = request_firmware(&fw, fwname, &hdev->dev);
+       err = firmware_request_nowarn(&fw, fwname, &hdev->dev);
        if (err < 0) {
+               if (!test_bit(BTUSB_BOOTLOADER, &data->flags)) {
+                       /* Firmware has already been loaded */
+                       set_bit(BTUSB_FIRMWARE_LOADED, &data->flags);
+                       return 0;
+               }
                bt_dev_err(hdev, "Failed to load Intel firmware file %s (%d)",
                           fwname, err);
                return err;
        }
  
@@@ -2682,12 -2687,24 +2689,24 @@@ download
        err = btusb_setup_intel_new_get_fw_name(ver, params, fwname,
                                                sizeof(fwname), "sfi");
        if (err < 0) {
+               if (!test_bit(BTUSB_BOOTLOADER, &data->flags)) {
+                       /* Firmware has already been loaded */
+                       set_bit(BTUSB_FIRMWARE_LOADED, &data->flags);
+                       return 0;
+               }
                bt_dev_err(hdev, "Unsupported Intel firmware naming");
                return -EINVAL;
        }
  
-       err = request_firmware(&fw, fwname, &hdev->dev);
+       err = firmware_request_nowarn(&fw, fwname, &hdev->dev);
        if (err < 0) {
+               if (!test_bit(BTUSB_BOOTLOADER, &data->flags)) {
+                       /* Firmware has already been loaded */
+                       set_bit(BTUSB_FIRMWARE_LOADED, &data->flags);
+                       return 0;
+               }
                bt_dev_err(hdev, "Failed to load Intel firmware file %s (%d)",
                           fwname, err);
                return err;