Commit 87adedeb authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Jakub Kicinski:
 "Including fixes from bluetooth, WiFi and netfilter.

  We have one outstanding issue with the stmmac driver, which may be a
  LOCKDEP false positive, not a blocker.

  Current release - regressions:

   - netfilter: nf_tables: re-allow NFPROTO_INET in
     nft_(match/target)_validate()

   - eth: ionic: fix error handling in PCI reset code

  Current release - new code bugs:

   - eth: stmmac: complete meta data only when enabled, fix null-deref

   - kunit: fix again checksum tests on big endian CPUs

  Previous releases - regressions:

   - veth: try harder when allocating queue memory

   - Bluetooth:
      - hci_bcm4377: do not mark valid bd_addr as invalid
      - hci_event: fix handling of HCI_EV_IO_CAPA_REQUEST

  Previous releases - always broken:

   - info leak in __skb_datagram_iter() on netlink socket

   - mptcp:
      - map v4 address to v6 when destroying subflow
      - fix potential wake-up event loss due to sndbuf auto-tuning
      - fix double-free on socket dismantle

   - wifi: nl80211: reject iftype change with mesh ID change

   - fix small out-of-bound read when validating netlink be16/32 types

   - rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back

   - ipv6: fix potential "struct net" ref-leak in inet6_rtm_getaddr()

   - ip_tunnel: prevent perpetual headroom growth with huge number of
     tunnels on top of each other

   - mctp: fix skb leaks on error paths of mctp_local_output()

   - eth: ice: fixes for DPLL state reporting

   - dpll: rely on rcu for netdev_dpll_pin() to prevent UaF

   - eth: dpaa: accept phy-interface-type = '10gbase-r' in the device
     tree"

* tag 'net-6.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (73 commits)
  dpll: fix build failure due to rcu_dereference_check() on unknown type
  kunit: Fix again checksum tests on big endian CPUs
  tls: fix use-after-free on failed backlog decryption
  tls: separate no-async decryption request handling from async
  tls: fix peeking with sync+async decryption
  tls: decrement decrypt_pending if no async completion will be called
  gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
  net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
  igb: extend PTP timestamp adjustments to i211
  rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
  tools: ynl: fix handling of multiple mcast groups
  selftests: netfilter: add bridge conntrack + multicast test case
  netfilter: bridge: confirm multicast packets before passing them up the stack
  netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
  Bluetooth: qca: Fix triggering coredump implementation
  Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
  Bluetooth: qca: Fix wrong event type for patch config command
  Bluetooth: Enforce validation on max value of connection interval
  Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
  Bluetooth: mgmt: Fix limited discoverable off timeout
  ...
parents d4f76f80 640f41ed
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0
.. Copyright (C) 2023 Google LLC

=====================================================
inet_connection_sock struct fast path usage breakdown
=====================================================
==========================================
inet_sock struct fast path usage breakdown
==========================================

Type                    Name                  fastpath_tx_access  fastpath_rx_access  comment
..struct                ..inet_sock                                                     
+6 −5
Original line number Diff line number Diff line
@@ -17995,33 +17995,34 @@ F: drivers/media/tuners/qt1010*
QUALCOMM ATH12K WIRELESS DRIVER
M:	Kalle Valo <kvalo@kernel.org>
M:	Jeff Johnson <quic_jjohnson@quicinc.com>
M:	Jeff Johnson <jjohnson@kernel.org>
L:	ath12k@lists.infradead.org
S:	Supported
W:	https://wireless.wiki.kernel.org/en/users/Drivers/ath12k
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
F:	drivers/net/wireless/ath/ath12k/
N:	ath12k
QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
M:	Kalle Valo <kvalo@kernel.org>
M:	Jeff Johnson <quic_jjohnson@quicinc.com>
M:	Jeff Johnson <jjohnson@kernel.org>
L:	ath10k@lists.infradead.org
S:	Supported
W:	https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
F:	Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml
F:	drivers/net/wireless/ath/ath10k/
N:	ath10k
QUALCOMM ATHEROS ATH11K WIRELESS DRIVER
M:	Kalle Valo <kvalo@kernel.org>
M:	Jeff Johnson <quic_jjohnson@quicinc.com>
M:	Jeff Johnson <jjohnson@kernel.org>
L:	ath11k@lists.infradead.org
S:	Supported
W:	https://wireless.wiki.kernel.org/en/users/Drivers/ath11k
B:	https://wireless.wiki.kernel.org/en/users/Drivers/ath11k/bugreport
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
F:	Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
F:	drivers/net/wireless/ath/ath11k/
N:	ath11k
QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
M:	Toke Høiland-Jørgensen <toke@toke.dk>
+1 −1
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ static int qca_send_patch_config_cmd(struct hci_dev *hdev)
	bt_dev_dbg(hdev, "QCA Patch config");

	skb = __hci_cmd_sync_ev(hdev, EDL_PATCH_CMD_OPCODE, sizeof(cmd),
				cmd, HCI_EV_VENDOR, HCI_INIT_TIMEOUT);
				cmd, 0, HCI_INIT_TIMEOUT);
	if (IS_ERR(skb)) {
		err = PTR_ERR(skb);
		bt_dev_err(hdev, "Sending QCA Patch config failed (%d)", err);
+1 −2
Original line number Diff line number Diff line
@@ -1417,7 +1417,7 @@ static int bcm4377_check_bdaddr(struct bcm4377_data *bcm4377)

	bda = (struct hci_rp_read_bd_addr *)skb->data;
	if (!bcm4377_is_valid_bdaddr(bcm4377, &bda->bdaddr))
		set_bit(HCI_QUIRK_INVALID_BDADDR, &bcm4377->hdev->quirks);
		set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &bcm4377->hdev->quirks);

	kfree_skb(skb);
	return 0;
@@ -2368,7 +2368,6 @@ static int bcm4377_probe(struct pci_dev *pdev, const struct pci_device_id *id)
	hdev->set_bdaddr = bcm4377_hci_set_bdaddr;
	hdev->setup = bcm4377_hci_setup;

	set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
	if (bcm4377->hw->broken_mws_transport_config)
		set_bit(HCI_QUIRK_BROKEN_MWS_TRANSPORT_CONFIG, &hdev->quirks);
	if (bcm4377->hw->broken_ext_scan)
+16 −6
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
 *
 *  Copyright (C) 2007 Texas Instruments, Inc.
 *  Copyright (c) 2010, 2012, 2018 The Linux Foundation. All rights reserved.
 *  Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 *  Acknowledgements:
 *  This file is based on hci_ll.c, which was...
@@ -1806,13 +1807,12 @@ static int qca_power_on(struct hci_dev *hdev)

static void hci_coredump_qca(struct hci_dev *hdev)
{
	int err;
	static const u8 param[] = { 0x26 };
	struct sk_buff *skb;

	skb = __hci_cmd_sync(hdev, 0xfc0c, 1, param, HCI_CMD_TIMEOUT);
	if (IS_ERR(skb))
		bt_dev_err(hdev, "%s: trigger crash failed (%ld)", __func__, PTR_ERR(skb));
	kfree_skb(skb);
	err = __hci_cmd_send(hdev, 0xfc0c, 1, param);
	if (err < 0)
		bt_dev_err(hdev, "%s: trigger crash failed (%d)", __func__, err);
}

static int qca_get_data_path_id(struct hci_dev *hdev, __u8 *data_path_id)
@@ -1904,7 +1904,17 @@ static int qca_setup(struct hci_uart *hu)
	case QCA_WCN6750:
	case QCA_WCN6855:
	case QCA_WCN7850:

		/* Set BDA quirk bit for reading BDA value from fwnode property
		 * only if that property exist in DT.
		 */
		if (fwnode_property_present(dev_fwnode(hdev->dev.parent), "local-bd-address")) {
			set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
			bt_dev_info(hdev, "setting quirk bit to read BDA from fwnode later");
		} else {
			bt_dev_dbg(hdev, "local-bd-address` is not present in the devicetree so not setting quirk bit for BDA");
		}

		hci_set_aosp_capable(hdev);

		ret = qca_read_soc_version(hdev, &ver, soc_type);
Loading