Commit d69eb204 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Jakub Kicinski:
 "Including fixes from netfilter, wireless and Bluetooth.

  We're reverting the removal of a Sundance driver, a user has appeared.
  This makes the PR rather large in terms of LoC.

  There's a conspicuous absence of real, user-reported 6.17 issues.
  Slightly worried that the summer distracted people from testing.

  Previous releases - regressions:

   - ax25: properly unshare skbs in ax25_kiss_rcv()

  Previous releases - always broken:

   - phylink: disable autoneg for interfaces that have no inband, fix
     regression on pcs-lynx (NXP LS1088)

   - vxlan: fix null-deref when using nexthop objects

   - batman-adv: fix OOB read/write in network-coding decode

   - icmp: icmp_ndo_send: fix reversing address translation for replies

   - tcp: fix socket ref leak in TCP-AO failure handling for IPv6

   - mctp:
       - mctp_fraq_queue should take ownership of passed skb
       - usb: initialise mac header in RX path, avoid WARN

   - wifi: mac80211: do not permit 40 MHz EHT operation on 5/6 GHz,
     respect device limitations

   - wifi: wilc1000: avoid buffer overflow in WID string configuration

   - wifi: mt76:
       - fix regressions from mt7996 MLO support rework
       - fix offchannel handling issues on mt7996
       - fix multiple wcid linked list corruption issues
       - mt7921: don't disconnect when AP requests switch to a channel
         which requires radar detection
       - mt7925u: use connac3 tx aggr check in tx complete

   - wifi: intel:
       - improve validation of ACPI DSM data
       - cfg: restore some 1000 series configs

   - wifi: ath:
       - ath11k: a fix for GTK rekeying
       - ath12k: a missed WiFi7 capability (multi-link EMLSR)

   - eth: intel:
       - ice: fix races in "low latency" firmware interface for Tx timestamps
       - idpf: set mac type when adding and removing MAC filters
       - i40e: remove racy read access to some debugfs files

  Misc:

   - Revert "eth: remove the DLink/Sundance (ST201) driver"

   - netfilter: conntrack: helper: Replace -EEXIST by -EBUSY, avoid
     confusing modprobe"

* tag 'net-6.17-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (99 commits)
  phy: mscc: Stop taking ts_lock for tx_queue and use its own lock
  selftest: net: Fix weird setsockopt() in bind_bhash.c.
  MAINTAINERS: add Sabrina to TLS maintainers
  gve: update MAINTAINERS
  ppp: fix memory leak in pad_compress_skb
  net: xilinx: axienet: Add error handling for RX metadata pointer retrieval
  net: atm: fix memory leak in atm_register_sysfs when device_register fail
  netfilter: nf_tables: Introduce NFTA_DEVICE_PREFIX
  selftests: netfilter: fix udpclash tool hang
  ax25: properly unshare skbs in ax25_kiss_rcv()
  mctp: return -ENOPROTOOPT for unknown getsockopt options
  net/smc: Remove validation of reserved bits in CLC Decline message
  ipv4: Fix NULL vs error pointer check in inet_blackhole_dev_init()
  net: thunder_bgx: decrement cleanup index before use
  net: thunder_bgx: add a missing of_node_put
  net: phylink: move PHY interrupt request to non-fail path
  net: lockless sock_i_ino()
  tools: ynl-gen: fix nested array counting
  wifi: wilc1000: avoid buffer overflow in WID string configuration
  wifi: cfg80211: sme: cap SSID length in __cfg80211_connect_result()
  ...
parents 68f285e2 9b2bfdbf
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -433,9 +433,8 @@ Threaded NAPI

Threaded NAPI is an operating mode that uses dedicated kernel
threads rather than software IRQ context for NAPI processing.
The configuration is per netdevice and will affect all
NAPI instances of that device. Each NAPI instance will spawn a separate
thread (called ``napi/${ifc-name}-${napi-id}``).
Each threaded NAPI instance will spawn a separate thread
(called ``napi/${ifc-name}-${napi-id}``).

It is recommended to pin each kernel thread to a single CPU, the same
CPU as the CPU which services the interrupt. Note that the mapping
+8 −1
Original line number Diff line number Diff line
@@ -10389,7 +10389,7 @@ S: Maintained
F:	drivers/input/touchscreen/goodix*
GOOGLE ETHERNET DRIVERS
M:	Jeroen de Borst <jeroendb@google.com>
M:	Joshua Washington <joshwash@google.com>
M:	Harshitha Ramamurthy <hramamurthy@google.com>
L:	netdev@vger.kernel.org
S:	Maintained
@@ -17851,6 +17851,7 @@ F: net/ipv6/tcp*.c
NETWORKING [TLS]
M:	John Fastabend <john.fastabend@gmail.com>
M:	Jakub Kicinski <kuba@kernel.org>
M:	Sabrina Dubroca <sd@queasysnail.net>
L:	netdev@vger.kernel.org
S:	Maintained
F:	include/net/tls.h
@@ -24253,6 +24254,12 @@ S: Maintained
F:	Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
F:	drivers/input/keyboard/sun4i-lradc-keys.c
SUNDANCE NETWORK DRIVER
M:	Denis Kirjanov <dkirjanov@suse.de>
L:	netdev@vger.kernel.org
S:	Maintained
F:	drivers/net/ethernet/dlink/sundance.c
SUNPLUS ETHERNET DRIVER
M:	Wells Lu <wellslutw@gmail.com>
L:	netdev@vger.kernel.org
+1 −0
Original line number Diff line number Diff line
@@ -273,6 +273,7 @@ CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_DL2K=m
CONFIG_SUNDANCE=m
CONFIG_PCMCIA_FMVJ18X=m
CONFIG_E100=m
CONFIG_E1000=m
+1 −0
Original line number Diff line number Diff line
@@ -433,6 +433,7 @@ CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_DL2K=m
CONFIG_SUNDANCE=m
CONFIG_S2IO=m
CONFIG_FEC_MPC52xx=m
CONFIG_GIANFAR=m
+41 −16
Original line number Diff line number Diff line
@@ -380,6 +380,28 @@ static const struct file_operations force_devcoredump_fops = {
	.write		= force_devcd_write,
};

static void vhci_debugfs_init(struct vhci_data *data)
{
	struct hci_dev *hdev = data->hdev;

	debugfs_create_file("force_suspend", 0644, hdev->debugfs, data,
			    &force_suspend_fops);

	debugfs_create_file("force_wakeup", 0644, hdev->debugfs, data,
			    &force_wakeup_fops);

	if (IS_ENABLED(CONFIG_BT_MSFTEXT))
		debugfs_create_file("msft_opcode", 0644, hdev->debugfs, data,
				    &msft_opcode_fops);

	if (IS_ENABLED(CONFIG_BT_AOSPEXT))
		debugfs_create_file("aosp_capable", 0644, hdev->debugfs, data,
				    &aosp_capable_fops);

	debugfs_create_file("force_devcoredump", 0644, hdev->debugfs, data,
			    &force_devcoredump_fops);
}

static int __vhci_create_device(struct vhci_data *data, __u8 opcode)
{
	struct hci_dev *hdev;
@@ -434,22 +456,8 @@ static int __vhci_create_device(struct vhci_data *data, __u8 opcode)
		return -EBUSY;
	}

	debugfs_create_file("force_suspend", 0644, hdev->debugfs, data,
			    &force_suspend_fops);

	debugfs_create_file("force_wakeup", 0644, hdev->debugfs, data,
			    &force_wakeup_fops);

	if (IS_ENABLED(CONFIG_BT_MSFTEXT))
		debugfs_create_file("msft_opcode", 0644, hdev->debugfs, data,
				    &msft_opcode_fops);

	if (IS_ENABLED(CONFIG_BT_AOSPEXT))
		debugfs_create_file("aosp_capable", 0644, hdev->debugfs, data,
				    &aosp_capable_fops);

	debugfs_create_file("force_devcoredump", 0644, hdev->debugfs, data,
			    &force_devcoredump_fops);
	if (!IS_ERR_OR_NULL(hdev->debugfs))
		vhci_debugfs_init(data);

	hci_skb_pkt_type(skb) = HCI_VENDOR_PKT;

@@ -651,6 +659,21 @@ static int vhci_open(struct inode *inode, struct file *file)
	return 0;
}

static void vhci_debugfs_remove(struct hci_dev *hdev)
{
	debugfs_lookup_and_remove("force_suspend", hdev->debugfs);

	debugfs_lookup_and_remove("force_wakeup", hdev->debugfs);

	if (IS_ENABLED(CONFIG_BT_MSFTEXT))
		debugfs_lookup_and_remove("msft_opcode", hdev->debugfs);

	if (IS_ENABLED(CONFIG_BT_AOSPEXT))
		debugfs_lookup_and_remove("aosp_capable", hdev->debugfs);

	debugfs_lookup_and_remove("force_devcoredump", hdev->debugfs);
}

static int vhci_release(struct inode *inode, struct file *file)
{
	struct vhci_data *data = file->private_data;
@@ -662,6 +685,8 @@ static int vhci_release(struct inode *inode, struct file *file)
	hdev = data->hdev;

	if (hdev) {
		if (!IS_ERR_OR_NULL(hdev->debugfs))
			vhci_debugfs_remove(hdev);
		hci_unregister_dev(hdev);
		hci_free_dev(hdev);
	}
Loading