Skip to content

Commit 87adede

Browse files
committed
Merge tag 'net-6.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
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 ...
2 parents d4f76f8 + 640f41e commit 87adede

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+974
-211
lines changed

Documentation/networking/net_cachelines/inet_sock.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
.. SPDX-License-Identifier: GPL-2.0
22
.. Copyright (C) 2023 Google LLC
33
4-
=====================================================
5-
inet_connection_sock struct fast path usage breakdown
6-
=====================================================
4+
==========================================
5+
inet_sock struct fast path usage breakdown
6+
==========================================
77

88
Type Name fastpath_tx_access fastpath_rx_access comment
99
..struct ..inet_sock

MAINTAINERS

+6-5
Original file line numberDiff line numberDiff line change
@@ -17995,33 +17995,34 @@ F: drivers/media/tuners/qt1010*
1799517995

1799617996
QUALCOMM ATH12K WIRELESS DRIVER
1799717997
M: Kalle Valo <[email protected]>
17998-
M: Jeff Johnson <[email protected]>
17998+
M: Jeff Johnson <[email protected]>
1799917999
1800018000
S: Supported
1800118001
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath12k
1800218002
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
1800318003
F: drivers/net/wireless/ath/ath12k/
18004+
N: ath12k
1800418005

1800518006
QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
1800618007
M: Kalle Valo <[email protected]>
18007-
M: Jeff Johnson <[email protected]>
18008+
M: Jeff Johnson <[email protected]>
1800818009
1800918010
S: Supported
1801018011
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
1801118012
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
18012-
F: Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml
1801318013
F: drivers/net/wireless/ath/ath10k/
18014+
N: ath10k
1801418015

1801518016
QUALCOMM ATHEROS ATH11K WIRELESS DRIVER
1801618017
M: Kalle Valo <[email protected]>
18017-
M: Jeff Johnson <[email protected]>
18018+
M: Jeff Johnson <[email protected]>
1801818019
1801918020
S: Supported
1802018021
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k
1802118022
B: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k/bugreport
1802218023
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
18023-
F: Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
1802418024
F: drivers/net/wireless/ath/ath11k/
18025+
N: ath11k
1802518026

1802618027
QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
1802718028
M: Toke Høiland-Jørgensen <[email protected]>

drivers/bluetooth/btqca.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ static int qca_send_patch_config_cmd(struct hci_dev *hdev)
152152
bt_dev_dbg(hdev, "QCA Patch config");
153153

154154
skb = __hci_cmd_sync_ev(hdev, EDL_PATCH_CMD_OPCODE, sizeof(cmd),
155-
cmd, HCI_EV_VENDOR, HCI_INIT_TIMEOUT);
155+
cmd, 0, HCI_INIT_TIMEOUT);
156156
if (IS_ERR(skb)) {
157157
err = PTR_ERR(skb);
158158
bt_dev_err(hdev, "Sending QCA Patch config failed (%d)", err);

drivers/bluetooth/hci_bcm4377.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -1417,7 +1417,7 @@ static int bcm4377_check_bdaddr(struct bcm4377_data *bcm4377)
14171417

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

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

2371-
set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
23722371
if (bcm4377->hw->broken_mws_transport_config)
23732372
set_bit(HCI_QUIRK_BROKEN_MWS_TRANSPORT_CONFIG, &hdev->quirks);
23742373
if (bcm4377->hw->broken_ext_scan)

drivers/bluetooth/hci_qca.c

+16-6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
*
88
* Copyright (C) 2007 Texas Instruments, Inc.
99
* Copyright (c) 2010, 2012, 2018 The Linux Foundation. All rights reserved.
10+
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
1011
*
1112
* Acknowledgements:
1213
* This file is based on hci_ll.c, which was...
@@ -1806,13 +1807,12 @@ static int qca_power_on(struct hci_dev *hdev)
18061807

18071808
static void hci_coredump_qca(struct hci_dev *hdev)
18081809
{
1810+
int err;
18091811
static const u8 param[] = { 0x26 };
1810-
struct sk_buff *skb;
18111812

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

18181818
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)
19041904
case QCA_WCN6750:
19051905
case QCA_WCN6855:
19061906
case QCA_WCN7850:
1907-
set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
1907+
1908+
/* Set BDA quirk bit for reading BDA value from fwnode property
1909+
* only if that property exist in DT.
1910+
*/
1911+
if (fwnode_property_present(dev_fwnode(hdev->dev.parent), "local-bd-address")) {
1912+
set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
1913+
bt_dev_info(hdev, "setting quirk bit to read BDA from fwnode later");
1914+
} else {
1915+
bt_dev_dbg(hdev, "local-bd-address` is not present in the devicetree so not setting quirk bit for BDA");
1916+
}
1917+
19081918
hci_set_aosp_capable(hdev);
19091919

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

drivers/dpll/dpll_core.c

+6-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ struct dpll_pin_registration {
4242
void *priv;
4343
};
4444

45+
struct dpll_pin *netdev_dpll_pin(const struct net_device *dev)
46+
{
47+
return rcu_dereference_rtnl(dev->dpll_pin);
48+
}
49+
4550
struct dpll_device *dpll_device_get_by_id(int id)
4651
{
4752
if (xa_get_mark(&dpll_device_xa, id, DPLL_REGISTERED))
@@ -564,7 +569,7 @@ void dpll_pin_put(struct dpll_pin *pin)
564569
xa_destroy(&pin->parent_refs);
565570
xa_erase(&dpll_pin_xa, pin->id);
566571
dpll_pin_prop_free(&pin->prop);
567-
kfree(pin);
572+
kfree_rcu(pin, rcu);
568573
}
569574
mutex_unlock(&dpll_lock);
570575
}

drivers/dpll/dpll_core.h

+2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ struct dpll_device {
4747
* @prop: pin properties copied from the registerer
4848
* @rclk_dev_name: holds name of device when pin can recover clock from it
4949
* @refcount: refcount
50+
* @rcu: rcu_head for kfree_rcu()
5051
**/
5152
struct dpll_pin {
5253
u32 id;
@@ -57,6 +58,7 @@ struct dpll_pin {
5758
struct xarray parent_refs;
5859
struct dpll_pin_properties prop;
5960
refcount_t refcount;
61+
struct rcu_head rcu;
6062
};
6163

6264
/**

drivers/net/ethernet/adi/Kconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ config NET_VENDOR_ADI
77
bool "Analog Devices devices"
88
default y
99
depends on SPI
10-
select PHYLIB
1110
help
1211
If you have a network (Ethernet) card belonging to this class, say Y.
1312

@@ -22,6 +21,7 @@ config ADIN1110
2221
tristate "Analog Devices ADIN1110 MAC-PHY"
2322
depends on SPI && NET_SWITCHDEV
2423
select CRC8
24+
select PHYLIB
2525
help
2626
Say yes here to build support for Analog Devices ADIN1110
2727
Low Power 10BASE-T1L Ethernet MAC-PHY.

drivers/net/ethernet/freescale/fman/fman_memac.c

+9-9
Original file line numberDiff line numberDiff line change
@@ -1073,6 +1073,14 @@ int memac_initialization(struct mac_device *mac_dev,
10731073
unsigned long capabilities;
10741074
unsigned long *supported;
10751075

1076+
/* The internal connection to the serdes is XGMII, but this isn't
1077+
* really correct for the phy mode (which is the external connection).
1078+
* However, this is how all older device trees say that they want
1079+
* 10GBASE-R (aka XFI), so just convert it for them.
1080+
*/
1081+
if (mac_dev->phy_if == PHY_INTERFACE_MODE_XGMII)
1082+
mac_dev->phy_if = PHY_INTERFACE_MODE_10GBASER;
1083+
10761084
mac_dev->phylink_ops = &memac_mac_ops;
10771085
mac_dev->set_promisc = memac_set_promiscuous;
10781086
mac_dev->change_addr = memac_modify_mac_address;
@@ -1139,7 +1147,7 @@ int memac_initialization(struct mac_device *mac_dev,
11391147
* (and therefore that xfi_pcs cannot be set). If we are defaulting to
11401148
* XGMII, assume this is for XFI. Otherwise, assume it is for SGMII.
11411149
*/
1142-
if (err && mac_dev->phy_if == PHY_INTERFACE_MODE_XGMII)
1150+
if (err && mac_dev->phy_if == PHY_INTERFACE_MODE_10GBASER)
11431151
memac->xfi_pcs = pcs;
11441152
else
11451153
memac->sgmii_pcs = pcs;
@@ -1153,14 +1161,6 @@ int memac_initialization(struct mac_device *mac_dev,
11531161
goto _return_fm_mac_free;
11541162
}
11551163

1156-
/* The internal connection to the serdes is XGMII, but this isn't
1157-
* really correct for the phy mode (which is the external connection).
1158-
* However, this is how all older device trees say that they want
1159-
* 10GBASE-R (aka XFI), so just convert it for them.
1160-
*/
1161-
if (mac_dev->phy_if == PHY_INTERFACE_MODE_XGMII)
1162-
mac_dev->phy_if = PHY_INTERFACE_MODE_10GBASER;
1163-
11641164
/* TODO: The following interface modes are supported by (some) hardware
11651165
* but not by this driver:
11661166
* - 1000BASE-KX

drivers/net/ethernet/intel/ice/ice_base.c

+4-6
Original file line numberDiff line numberDiff line change
@@ -190,15 +190,13 @@ static void ice_free_q_vector(struct ice_vsi *vsi, int v_idx)
190190
q_vector = vsi->q_vectors[v_idx];
191191

192192
ice_for_each_tx_ring(tx_ring, q_vector->tx) {
193-
if (vsi->netdev)
194-
netif_queue_set_napi(vsi->netdev, tx_ring->q_index,
195-
NETDEV_QUEUE_TYPE_TX, NULL);
193+
ice_queue_set_napi(vsi, tx_ring->q_index, NETDEV_QUEUE_TYPE_TX,
194+
NULL);
196195
tx_ring->q_vector = NULL;
197196
}
198197
ice_for_each_rx_ring(rx_ring, q_vector->rx) {
199-
if (vsi->netdev)
200-
netif_queue_set_napi(vsi->netdev, rx_ring->q_index,
201-
NETDEV_QUEUE_TYPE_RX, NULL);
198+
ice_queue_set_napi(vsi, rx_ring->q_index, NETDEV_QUEUE_TYPE_RX,
199+
NULL);
202200
rx_ring->q_vector = NULL;
203201
}
204202

0 commit comments

Comments
 (0)