projects/linux·commit e5763491

Merge tag 'net-6.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

e5763491 · Linus Torvalds <[email protected]> · 2025-10-30 18:35:35 -07:00

Pull networking fixes from Paolo Abeni:
 "Including fixes from wireless, Bluetooth and netfilter.

  Current release - regressions:

    - tcp: fix too slow tcp_rcvbuf_grow() action

    - bluetooth: fix corruption in h4_recv_buf() after cleanup

  Previous releases - regressions:

    - mptcp: restore window probe

    - bluetooth:
       - fix connection cleanup with BIG with 2 or more BIS
       - fix crash in set_mesh_sync and set_mesh_complete

    - batman-adv: release references to inactive interfaces

    - nic:
       - ice: fix usage of logical PF id
       - sfc: fix potential memory leak in efx_mae_process_mport()

  Previous releases - always broken:

    - devmem: refresh devmem TX dst in case of route invalidation

    - netfilter: add seqadj extension for natted connections

    - wifi:
       - iwlwifi: fix potential use after free in iwl_mld_remove_link()
       - brcmfmac: fix crash while sending action frames in standalone AP Mode

    - eth:
       - mlx5e: cancel tls RX async resync request in error flows
       - ixgbe: fix memory leak and use-after-free in ixgbe_recovery_probe()
       - hibmcge: fix rx buf avl irq is not re-enabled in irq_handle issue
       - cxgb4: fix potential use-after-free in ipsec callback
       - nfp: fix memory leak in nfp_net_alloc()"

* tag 'net-6.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (75 commits)
  net: sctp: fix KMSAN uninit-value in sctp_inq_pop
  net: devmem: refresh devmem TX dst in case of route invalidation
  net: stmmac: est: Fix GCL bounds checks
  net: stmmac: Consider Tx VLAN offload tag length for maxSDU
  net: stmmac: vlan: Disable 802.1AD tag insertion offload
  net/mlx5e: kTLS, Cancel RX async resync request in error flows
  net: tls: Cancel RX async resync request on rcd_delta overflow
  net: tls: Change async resync helpers argument
  net: phy: dp83869: fix STRAP_OPMODE bitmask
  selftests: net: use BASH for bareudp testing
  net: mctp: Fix tx queue stall
  net/mlx5: Don't zero user_count when destroying FDB tables
  net: usb: asix_devices: Check return value of usbnet_get_endpoints
  mptcp: zero window probe mib
  mptcp: restore window probe
  mptcp: fix MSG_PEEK stream corruption
  mptcp: drop bogus optimization in __mptcp_check_push()
  netconsole: Fix race condition in between reader and writer of userdata
  Documentation: netconsole: Remove obsolete contact people
  nfp: xsk: fix memory leak in nfp_net_alloc()
  ...
Commit
e5763491237ffee22d9b554febc2d00669f81dee
Parents
e53642b8 · 51e5ad54

Merge commit. Changes below are compared with the first parent: e53642b8.

Changes

96 files changed · +597 −285

FileStatusAddDelContent
CREDITSmodified+4−0View file
Documentation/devicetree/bindings/net/microchip,sparx5-switch.yamlmodified+2−2View file
Documentation/netlink/specs/dpll.yamlmodified+2−0View file
Documentation/networking/netconsole.rstmodified+0−3View file
MAINTAINERSmodified+3−6View file
drivers/bcma/main.cmodified+6−0View file
drivers/bluetooth/bpa10x.cmodified+3−1View file
drivers/bluetooth/btintel_pcie.cmodified+6−5View file
drivers/bluetooth/btmtksdio.cmodified+12−0View file
drivers/bluetooth/btmtkuart.cmodified+3−1View file
drivers/bluetooth/btnxpuart.cmodified+3−1View file
drivers/bluetooth/hci_ag6xx.cmodified+1−1View file
drivers/bluetooth/hci_aml.cmodified+1−1View file
drivers/bluetooth/hci_ath.cmodified+1−1View file
drivers/bluetooth/hci_bcm.cmodified+1−1View file
drivers/bluetooth/hci_h4.cmodified+3−3View file
drivers/bluetooth/hci_intel.cmodified+1−1View file
drivers/bluetooth/hci_ll.cmodified+1−1View file
drivers/bluetooth/hci_mrvl.cmodified+3−3View file
drivers/bluetooth/hci_nokia.cmodified+2−2View file
drivers/bluetooth/hci_qca.cmodified+1−1View file
drivers/bluetooth/hci_uart.hmodified+1−1View file
drivers/dpll/dpll_netlink.cmodified+20−16View file
drivers/dpll/zl3073x/dpll.cmodified+1−1View file
drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.cmodified+6−1View file
drivers/net/ethernet/hisilicon/hibmcge/hbg_common.hmodified+1−0View file
drivers/net/ethernet/hisilicon/hibmcge/hbg_err.cmodified+6−4View file
drivers/net/ethernet/hisilicon/hibmcge/hbg_hw.cmodified+3−0View file
drivers/net/ethernet/hisilicon/hibmcge/hbg_irq.cmodified+1−0View file
drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.cmodified+0−1View file
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.cmodified+1−2View file
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.cmodified+6−3View file
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.hmodified+1−1View file
drivers/net/ethernet/intel/ice/ice_common.cmodified+33−2View file
drivers/net/ethernet/intel/ice/ice_flex_pipe.cmodified+1−1View file
drivers/net/ethernet/intel/ice/ice_sbq_cmd.hmodified+1−0View file
drivers/net/ethernet/intel/igb/igb_ethtool.cmodified+1−1View file
drivers/net/ethernet/intel/igc/igc_ethtool.cmodified+4−1View file
drivers/net/ethernet/intel/ixgbe/ixgbe_main.cmodified+1−1View file
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.cmodified+1−1View file
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.cmodified+35−6View file
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.hmodified+4−0View file
drivers/net/ethernet/mellanox/mlx5/core/en_rx.cmodified+4−0View file
drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.cmodified+0−1View file
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.cmodified+0−1View file
drivers/net/ethernet/netronome/nfp/nfp_net_common.cmodified+4−2View file
drivers/net/ethernet/sfc/mae.cmodified+4−0View file
drivers/net/ethernet/stmicro/stmmac/stmmac_main.cmodified+14−18View file
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.cmodified+2−2View file
drivers/net/ethernet/stmicro/stmmac/stmmac_vlan.cmodified+1−1View file
drivers/net/mctp/mctp-usb.cmodified+5−3View file
drivers/net/netconsole.cmodified+13−8View file
drivers/net/phy/dp83867.cmodified+6−0View file
drivers/net/phy/dp83869.cmodified+2−2View file
drivers/net/usb/asix_devices.cmodified+9−3View file
drivers/net/usb/usbnet.cmodified+2−0View file
drivers/net/virtio_net.cmodified+8−3View file
drivers/net/wireless/ath/ath10k/wmi.cmodified+1−0View file
drivers/net/wireless/ath/ath11k/core.cmodified+48−6View file
drivers/net/wireless/ath/ath11k/mac.cmodified+5−5View file
drivers/net/wireless/ath/ath12k/mac.cmodified+18−16View file
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.cmodified+1−2View file
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.cmodified+10−18View file
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.hmodified+1−2View file
drivers/net/wireless/intel/iwlwifi/mld/link.cmodified+3−2View file
include/net/bluetooth/hci.hmodified+1−0View file
include/net/bluetooth/hci_core.hmodified+1−0View file
include/net/bluetooth/l2cap.hmodified+2−2View file
include/net/bluetooth/mgmt.hmodified+1−1View file
include/net/tcp.hmodified+1−1View file
include/net/tls.hmodified+13−12View file
include/trace/events/tcp.hmodified+9−0View file
net/batman-adv/originator.cmodified+12−2View file
net/bluetooth/hci_conn.cmodified+7−0View file
net/bluetooth/hci_event.cmodified+9−2View file
net/bluetooth/hci_sync.cmodified+13−8View file
net/bluetooth/iso.cmodified+8−2View file
net/bluetooth/l2cap_core.cmodified+2−2View file
net/bluetooth/mgmt.cmodified+15−11View file
net/bluetooth/rfcomm/tty.cmodified+11−15View file
net/core/devmem.cmodified+24−3View file
net/ipv4/tcp_input.cmodified+14−7View file
net/mac80211/cfg.cmodified+3−0View file
net/mac80211/key.cmodified+8−3View file
net/mptcp/mib.cmodified+1−0View file
net/mptcp/mib.hmodified+1−0View file
net/mptcp/protocol.cmodified+53−30View file
net/mptcp/protocol.hmodified+1−1View file
net/netfilter/nft_connlimit.cmodified+1−1View file
net/netfilter/nft_ct.cmodified+27−3View file
net/sctp/input.cmodified+1−1View file
net/tls/tls_device.cmodified+3−1View file
net/wireless/nl80211.cmodified+1−2View file
tools/net/ynl/lib/ynl-priv.hmodified+2−2View file
tools/net/ynl/pyynl/ethtool.pymodified+3−0View file
tools/testing/selftests/net/bareudp.shmodified+1−1View file

Only the first 600 diff lines are shown. Download the complete patch.

CREDITS

View file
diff --git a/CREDITS b/CREDITS
index 903ea23..fa5397f 100644
--- a/CREDITS
+++ b/CREDITS
@@ -2036,6 +2036,10 @@ S: Botanicka' 68a
S: 602 00 Brno
S: Czech Republic
+N: Karsten Keil
+D: ISDN subsystem maintainer
+
N: Jakob Kemi
D: V4L W9966 Webcam driver

Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml

View file
diff --git a/Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml b/Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml
index 5caa377..5491d07 100644
--- a/Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml
+++ b/Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml
@@ -180,9 +180,9 @@ allOf:
then:
properties:
reg:
- minItems: 2
+ maxItems: 2
reg-names:
- minItems: 2
+ maxItems: 2
else:
properties:
reg:

Documentation/netlink/specs/dpll.yaml

View file
diff --git a/Documentation/netlink/specs/dpll.yaml b/Documentation/netlink/specs/dpll.yaml
index cafb4ec..80728f6 100644
--- a/Documentation/netlink/specs/dpll.yaml
+++ b/Documentation/netlink/specs/dpll.yaml
@@ -605,6 +605,8 @@ operations:
reply: &pin-attrs
attributes:
- id
+ - module-name
+ - clock-id
- board-label
- panel-label
- package-label

Documentation/networking/netconsole.rst

View file
diff --git a/Documentation/networking/netconsole.rst b/Documentation/networking/netconsole.rst
index 59cb998..2555e75 100644
--- a/Documentation/networking/netconsole.rst
+++ b/Documentation/networking/netconsole.rst
@@ -19,9 +19,6 @@ Userdata append support by Matthew Wood <[email protected]>, Jan 22 2024
Sysdata append support by Breno Leitao <[email protected]>, Jan 15 2025
-Please send bug reports to Matt Mackall <[email protected]>
-Satyam Sharma <[email protected]>, and Cong Wang <[email protected]>
-
Introduction:
=============

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 3da2c26..0518f1f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13260,10 +13260,8 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git mast
F: drivers/infiniband/ulp/isert
ISDN/CMTP OVER BLUETOOTH
-M: Karsten Keil <[email protected]>
-L: [email protected] (subscribers-only)
-S: Odd Fixes
+S: Orphan
W: http://www.isdn4linux.de
F: Documentation/isdn/
F: drivers/isdn/capi/
@@ -13272,10 +13270,8 @@ F: include/uapi/linux/isdn/
F: net/bluetooth/cmtp/
ISDN/mISDN SUBSYSTEM
-M: Karsten Keil <[email protected]>
-L: [email protected] (subscribers-only)
-S: Maintained
+S: Orphan
W: http://www.isdn4linux.de
F: drivers/isdn/Kconfig
F: drivers/isdn/Makefile
@@ -21332,6 +21328,7 @@ F: drivers/media/platform/qcom/venus/
QUALCOMM WCN36XX WIRELESS DRIVER
M: Loic Poulain <[email protected]>
S: Supported
W: https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
F: drivers/net/wireless/ath/wcn36xx/

drivers/bcma/main.c

View file
diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c
index 6ecfc82..72f045e 100644
--- a/drivers/bcma/main.c
+++ b/drivers/bcma/main.c
@@ -294,6 +294,8 @@ static int bcma_register_devices(struct bcma_bus *bus)
int err;
list_for_each_entry(core, &bus->cores, list) {
+ struct device_node *np;
+
/* We support that core ourselves */
switch (core->id.id) {
case BCMA_CORE_4706_CHIPCOMMON:
@@ -311,6 +313,10 @@ static int bcma_register_devices(struct bcma_bus *bus)
if (bcma_is_core_needed_early(core->id.id))
continue;
+ np = core->dev.of_node;
+ if (np && !of_device_is_available(np))
+ continue;
+
/* Only first GMAC core on BCM4706 is connected and working */
if (core->id.id == BCMA_CORE_4706_MAC_GBIT &&
core->core_unit > 0)

drivers/bluetooth/bpa10x.c

View file
diff --git a/drivers/bluetooth/bpa10x.c b/drivers/bluetooth/bpa10x.c
index b7ba667..e305d04 100644
--- a/drivers/bluetooth/bpa10x.c
+++ b/drivers/bluetooth/bpa10x.c
@@ -41,6 +41,7 @@ struct bpa10x_data {
struct usb_anchor rx_anchor;
struct sk_buff *rx_skb[2];
+ struct hci_uart hu;
};
static void bpa10x_tx_complete(struct urb *urb)
@@ -96,7 +97,7 @@ static void bpa10x_rx_complete(struct urb *urb)
if (urb->status == 0) {
bool idx = usb_pipebulk(urb->pipe);
- data->rx_skb[idx] = h4_recv_buf(hdev, data->rx_skb[idx],
+ data->rx_skb[idx] = h4_recv_buf(&data->hu, data->rx_skb[idx],
urb->transfer_buffer,
urb->actual_length,
bpa10x_recv_pkts,
@@ -388,6 +389,7 @@ static int bpa10x_probe(struct usb_interface *intf,
hci_set_drvdata(hdev, data);
data->hdev = hdev;
+ data->hu.hdev = hdev;
SET_HCIDEV_DEV(hdev, &intf->dev);

drivers/bluetooth/btintel_pcie.c

View file
diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
index 6d3963b..a075d8e 100644
--- a/drivers/bluetooth/btintel_pcie.c
+++ b/drivers/bluetooth/btintel_pcie.c
@@ -1467,11 +1467,6 @@ static irqreturn_t btintel_pcie_irq_msix_handler(int irq, void *dev_id)
if (intr_hw & BTINTEL_PCIE_MSIX_HW_INT_CAUSES_GP1)
btintel_pcie_msix_gp1_handler(data);
- /* This interrupt is triggered by the firmware after updating
- * boot_stage register and image_response register
- */
- if (intr_hw & BTINTEL_PCIE_MSIX_HW_INT_CAUSES_GP0)
- btintel_pcie_msix_gp0_handler(data);
/* For TX */
if (intr_fh & BTINTEL_PCIE_MSIX_FH_INT_CAUSES_0) {
@@ -1487,6 +1482,12 @@ static irqreturn_t btintel_pcie_irq_msix_handler(int irq, void *dev_id)
btintel_pcie_msix_tx_handle(data);
}
+ /* This interrupt is triggered by the firmware after updating
+ * boot_stage register and image_response register
+ */
+ if (intr_hw & BTINTEL_PCIE_MSIX_HW_INT_CAUSES_GP0)
+ btintel_pcie_msix_gp0_handler(data);
+
/*
* Before sending the interrupt the HW disables it to prevent a nested
* interrupt. This is done by writing 1 to the corresponding bit in

drivers/bluetooth/btmtksdio.c

View file
diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
index 50abefb..62db31b 100644
--- a/drivers/bluetooth/btmtksdio.c
+++ b/drivers/bluetooth/btmtksdio.c
@@ -1270,6 +1270,12 @@ static void btmtksdio_reset(struct hci_dev *hdev)
sdio_claim_host(bdev->func);
+ /* set drv_pmctrl if BT is closed before doing reset */
+ if (!test_bit(BTMTKSDIO_FUNC_ENABLED, &bdev->tx_state)) {
+ sdio_enable_func(bdev->func);
+ btmtksdio_drv_pmctrl(bdev);
+ }
+
sdio_writel(bdev->func, C_INT_EN_CLR, MTK_REG_CHLPCR, NULL);
skb_queue_purge(&bdev->txq);
cancel_work_sync(&bdev->txrx_work);
@@ -1285,6 +1291,12 @@ static void btmtksdio_reset(struct hci_dev *hdev)
goto err;
}
+ /* set fw_pmctrl back if BT is closed after doing reset */
+ if (!test_bit(BTMTKSDIO_FUNC_ENABLED, &bdev->tx_state)) {
+ btmtksdio_fw_pmctrl(bdev);
+ sdio_disable_func(bdev->func);
+ }
+
clear_bit(BTMTKSDIO_PATCH_ENABLED, &bdev->tx_state);
err:
sdio_release_host(bdev->func);

drivers/bluetooth/btmtkuart.c

View file
diff --git a/drivers/bluetooth/btmtkuart.c b/drivers/bluetooth/btmtkuart.c
index d9b90ea..27aa48f 100644
--- a/drivers/bluetooth/btmtkuart.c
+++ b/drivers/bluetooth/btmtkuart.c
@@ -79,6 +79,7 @@ struct btmtkuart_dev {
u16 stp_dlen;
const struct btmtkuart_data *data;
+ struct hci_uart hu;
};
#define btmtkuart_is_standalone(bdev) \
@@ -368,7 +369,7 @@ static void btmtkuart_recv(struct hci_dev *hdev, const u8 *data, size_t count)
sz_left -= adv;
p_left += adv;
- bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, p_h4,
+ bdev->rx_skb = h4_recv_buf(&bdev->hu, bdev->rx_skb, p_h4,
sz_h4, mtk_recv_pkts,
ARRAY_SIZE(mtk_recv_pkts));
if (IS_ERR(bdev->rx_skb)) {
@@ -858,6 +859,7 @@ static int btmtkuart_probe(struct serdev_device *serdev)
}
bdev->hdev = hdev;
+ bdev->hu.hdev = hdev;
hdev->bus = HCI_UART;
hci_set_drvdata(hdev, bdev);

drivers/bluetooth/btnxpuart.c

View file
diff --git a/drivers/bluetooth/btnxpuart.c b/drivers/bluetooth/btnxpuart.c
index d5153fe..3b1e922 100644
--- a/drivers/bluetooth/btnxpuart.c
+++ b/drivers/bluetooth/btnxpuart.c
@@ -212,6 +212,7 @@ struct btnxpuart_dev {
struct ps_data psdata;
struct btnxpuart_data *nxp_data;
struct reset_control *pdn;
+ struct hci_uart hu;
};
#define NXP_V1_FW_REQ_PKT 0xa5
@@ -1756,7 +1757,7 @@ static size_t btnxpuart_receive_buf(struct serdev_device *serdev,
ps_start_timer(nxpdev);
- nxpdev->rx_skb = h4_recv_buf(nxpdev->hdev, nxpdev->rx_skb, data, count,
+ nxpdev->rx_skb = h4_recv_buf(&nxpdev->hu, nxpdev->rx_skb, data, count,
nxp_recv_pkts, ARRAY_SIZE(nxp_recv_pkts));
if (IS_ERR(nxpdev->rx_skb)) {
int err = PTR_ERR(nxpdev->rx_skb);
@@ -1875,6 +1876,7 @@ static int nxp_serdev_probe(struct serdev_device *serdev)
reset_control_deassert(nxpdev->pdn);
nxpdev->hdev = hdev;
+ nxpdev->hu.hdev = hdev;
hdev->bus = HCI_UART;
hci_set_drvdata(hdev, nxpdev);

drivers/bluetooth/hci_ag6xx.c

View file
diff --git a/drivers/bluetooth/hci_ag6xx.c b/drivers/bluetooth/hci_ag6xx.c
index 2d40302..9458867 100644
--- a/drivers/bluetooth/hci_ag6xx.c
+++ b/drivers/bluetooth/hci_ag6xx.c
@@ -105,7 +105,7 @@ static int ag6xx_recv(struct hci_uart *hu, const void *data, int count)
if (!test_bit(HCI_UART_REGISTERED, &hu->flags))
return -EUNATCH;
- ag6xx->rx_skb = h4_recv_buf(hu->hdev, ag6xx->rx_skb, data, count,
+ ag6xx->rx_skb = h4_recv_buf(hu, ag6xx->rx_skb, data, count,
ag6xx_recv_pkts,
ARRAY_SIZE(ag6xx_recv_pkts));
if (IS_ERR(ag6xx->rx_skb)) {

drivers/bluetooth/hci_aml.c

View file
diff --git a/drivers/bluetooth/hci_aml.c b/drivers/bluetooth/hci_aml.c
index 707e90f..b1f32c5 100644
--- a/drivers/bluetooth/hci_aml.c
+++ b/drivers/bluetooth/hci_aml.c
@@ -650,7 +650,7 @@ static int aml_recv(struct hci_uart *hu, const void *data, int count)
struct aml_data *aml_data = hu->priv;
int err;
- aml_data->rx_skb = h4_recv_buf(hu->hdev, aml_data->rx_skb, data, count,
+ aml_data->rx_skb = h4_recv_buf(hu, aml_data->rx_skb, data, count,
aml_recv_pkts,
ARRAY_SIZE(aml_recv_pkts));
if (IS_ERR(aml_data->rx_skb)) {

drivers/bluetooth/hci_ath.c

View file
diff --git a/drivers/bluetooth/hci_ath.c b/drivers/bluetooth/hci_ath.c
index dbfe346..8d2b5e7 100644
--- a/drivers/bluetooth/hci_ath.c
+++ b/drivers/bluetooth/hci_ath.c
@@ -191,7 +191,7 @@ static int ath_recv(struct hci_uart *hu, const void *data, int count)
{
struct ath_struct *ath = hu->priv;
- ath->rx_skb = h4_recv_buf(hu->hdev, ath->rx_skb, data, count,
+ ath->rx_skb = h4_recv_buf(hu, ath->rx_skb, data, count,
ath_recv_pkts, ARRAY_SIZE(ath_recv_pkts));
if (IS_ERR(ath->rx_skb)) {
int err = PTR_ERR(ath->rx_skb);

drivers/bluetooth/hci_bcm.c

View file
diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index f96617b..fff845e 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -698,7 +698,7 @@ static int bcm_recv(struct hci_uart *hu, const void *data, int count)
if (!test_bit(HCI_UART_REGISTERED, &hu->flags))
return -EUNATCH;
- bcm->rx_skb = h4_recv_buf(hu->hdev, bcm->rx_skb, data, count,
+ bcm->rx_skb = h4_recv_buf(hu, bcm->rx_skb, data, count,
bcm_recv_pkts, ARRAY_SIZE(bcm_recv_pkts));
if (IS_ERR(bcm->rx_skb)) {
int err = PTR_ERR(bcm->rx_skb);

drivers/bluetooth/hci_h4.c

View file
diff --git a/drivers/bluetooth/hci_h4.c b/drivers/bluetooth/hci_h4.c
index 9070e31..ec017df 100644
--- a/drivers/bluetooth/hci_h4.c
+++ b/drivers/bluetooth/hci_h4.c
@@ -112,7 +112,7 @@ static int h4_recv(struct hci_uart *hu, const void *data, int count)
if (!test_bit(HCI_UART_REGISTERED, &hu->flags))
return -EUNATCH;
- h4->rx_skb = h4_recv_buf(hu->hdev, h4->rx_skb, data, count,
+ h4->rx_skb = h4_recv_buf(hu, h4->rx_skb, data, count,
h4_recv_pkts, ARRAY_SIZE(h4_recv_pkts));
if (IS_ERR(h4->rx_skb)) {
int err = PTR_ERR(h4->rx_skb);
@@ -151,12 +151,12 @@ int __exit h4_deinit(void)
return hci_uart_unregister_proto(&h4p);
}
-struct sk_buff *h4_recv_buf(struct hci_dev *hdev, struct sk_buff *skb,
+struct sk_buff *h4_recv_buf(struct hci_uart *hu, struct sk_buff *skb,
const unsigned char *buffer, int count,
const struct h4_recv_pkt *pkts, int pkts_count)
{
- struct hci_uart *hu = hci_get_drvdata(hdev);
u8 alignment = hu->alignment ? hu->alignment : 1;
+ struct hci_dev *hdev = hu->hdev;
/* Check for error from previous call */
if (IS_ERR(skb))

drivers/bluetooth/hci_intel.c

View file
diff --git a/drivers/bluetooth/hci_intel.c b/drivers/bluetooth/hci_intel.c
index 9b353c3..1d6e095 100644
--- a/drivers/bluetooth/hci_intel.c
+++ b/drivers/bluetooth/hci_intel.c
@@ -972,7 +972,7 @@ static int intel_recv(struct hci_uart *hu, const void *data, int count)
if (!test_bit(HCI_UART_REGISTERED, &hu->flags))
return -EUNATCH;
- intel->rx_skb = h4_recv_buf(hu->hdev, intel->rx_skb, data, count,
+ intel->rx_skb = h4_recv_buf(hu, intel->rx_skb, data, count,
intel_recv_pkts,
ARRAY_SIZE(intel_recv_pkts));
if (IS_ERR(intel->rx_skb)) {

drivers/bluetooth/hci_ll.c

View file
diff --git a/drivers/bluetooth/hci_ll.c b/drivers/bluetooth/hci_ll.c
index 7044c86..6f4e259 100644
--- a/drivers/bluetooth/hci_ll.c
+++ b/drivers/bluetooth/hci_ll.c
@@ -429,7 +429,7 @@ static int ll_recv(struct hci_uart *hu, const void *data, int count)
if (!test_bit(HCI_UART_REGISTERED, &hu->flags))
return -EUNATCH;
- ll->rx_skb = h4_recv_buf(hu->hdev, ll->rx_skb, data, count,
+ ll->rx_skb = h4_recv_buf(hu, ll->rx_skb, data, count,
ll_recv_pkts, ARRAY_SIZE(ll_recv_pkts));
if (IS_ERR(ll->rx_skb)) {
int err = PTR_ERR(ll->rx_skb);

drivers/bluetooth/hci_mrvl.c

View file
diff --git a/drivers/bluetooth/hci_mrvl.c b/drivers/bluetooth/hci_mrvl.c
index e082223..8767522 100644
--- a/drivers/bluetooth/hci_mrvl.c
+++ b/drivers/bluetooth/hci_mrvl.c
@@ -264,9 +264,9 @@ static int mrvl_recv(struct hci_uart *hu, const void *data, int count)
!test_bit(STATE_FW_LOADED, &mrvl->flags))
return count;
- mrvl->rx_skb = h4_recv_buf(hu->hdev, mrvl->rx_skb, data, count,
- mrvl_recv_pkts,
- ARRAY_SIZE(mrvl_recv_pkts));
+ mrvl->rx_skb = h4_recv_buf(hu, mrvl->rx_skb, data, count,
+ mrvl_recv_pkts,
+ ARRAY_SIZE(mrvl_recv_pkts));
if (IS_ERR(mrvl->rx_skb)) {
int err = PTR_ERR(mrvl->rx_skb);
bt_dev_err(hu->hdev, "Frame reassembly failed (%d)", err);

drivers/bluetooth/hci_nokia.c

View file
diff --git a/drivers/bluetooth/hci_nokia.c b/drivers/bluetooth/hci_nokia.c
index cd7575c..1e65b54 100644
--- a/drivers/bluetooth/hci_nokia.c
+++ b/drivers/bluetooth/hci_nokia.c
@@ -624,8 +624,8 @@ static int nokia_recv(struct hci_uart *hu, const void *data, int count)
if (!test_bit(HCI_UART_REGISTERED, &hu->flags))
return -EUNATCH;
- btdev->rx_skb = h4_recv_buf(hu->hdev, btdev->rx_skb, data, count,
- nokia_recv_pkts, ARRAY_SIZE(nokia_recv_pkts));
+ btdev->rx_skb = h4_recv_buf(hu, btdev->rx_skb, data, count,
+ nokia_recv_pkts, ARRAY_SIZE(nokia_recv_pkts));
if (IS_ERR(btdev->rx_skb)) {
err = PTR_ERR(btdev->rx_skb);
dev_err(dev, "Frame reassembly failed (%d)", err);

drivers/bluetooth/hci_qca.c

View file
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 4cff4d9..888176b 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1277,7 +1277,7 @@ static int qca_recv(struct hci_uart *hu, const void *data, int count)
if (!test_bit(HCI_UART_REGISTERED, &hu->flags))
return -EUNATCH;
- qca->rx_skb = h4_recv_buf(hu->hdev, qca->rx_skb, data, count,
+ qca->rx_skb = h4_recv_buf(hu, qca->rx_skb, data, count,
qca_recv_pkts, ARRAY_SIZE(qca_recv_pkts));
if (IS_ERR(qca->rx_skb)) {
int err = PTR_ERR(qca->rx_skb);

drivers/bluetooth/hci_uart.h

View file
diff --git a/drivers/bluetooth/hci_uart.h b/drivers/bluetooth/hci_uart.h
index cbbe79b..48ac7ca 100644
--- a/drivers/bluetooth/hci_uart.h
+++ b/drivers/bluetooth/hci_uart.h
@@ -162,7 +162,7 @@ struct h4_recv_pkt {
int h4_init(void);
int h4_deinit(void);
-struct sk_buff *h4_recv_buf(struct hci_dev *hdev, struct sk_buff *skb,
+struct sk_buff *h4_recv_buf(struct hci_uart *hu, struct sk_buff *skb,
const unsigned char *buffer, int count,
const struct h4_recv_pkt *pkts, int pkts_count);
#endif

drivers/dpll/dpll_netlink.c

View file
diff --git a/drivers/dpll/dpll_netlink.c b/drivers/dpll/dpll_netlink.c
index 74c1f0c..a4153bc 100644
--- a/drivers/dpll/dpll_netlink.c
+++ b/drivers/dpll/dpll_netlink.c
@@ -1559,16 +1559,18 @@ int dpll_nl_pin_id_get_doit(struct sk_buff *skb, struct genl_info *info)
return -EMSGSIZE;
}
pin = dpll_pin_find_from_nlattr(info);
- if (!IS_ERR(pin)) {
- if (!dpll_pin_available(pin)) {
- nlmsg_free(msg);
- return -ENODEV;
- }
- ret = dpll_msg_add_pin_handle(msg, pin);
- if (ret) {
- nlmsg_free(msg);
- return ret;
- }
+ if (IS_ERR(pin)) {
+ nlmsg_free(msg);
+ return PTR_ERR(pin);
+ }
+ if (!dpll_pin_available(pin)) {
+ nlmsg_free(msg);
+ return -ENODEV;
+ }
+ ret = dpll_msg_add_pin_handle(msg, pin);
+ if (ret) {
+ nlmsg_free(msg);
+ return ret;
}
genlmsg_end(msg, hdr);
@@ -1735,12 +1737,14 @@ int dpll_nl_device_id_get_doit(struct sk_buff *skb, struct genl_info *info)
}
dpll = dpll_device_find_from_nlattr(info);
- if (!IS_ERR(dpll)) {
- ret = dpll_msg_add_dev_handle(msg, dpll);
- if (ret) {
- nlmsg_free(msg);
- return ret;
- }
+ if (IS_ERR(dpll)) {
+ nlmsg_free(msg);
+ return PTR_ERR(dpll);
+ }
+ ret = dpll_msg_add_dev_handle(msg, dpll);
+ if (ret) {
+ nlmsg_free(msg);
+ return ret;
}
genlmsg_end(msg, hdr);

drivers/dpll/zl3073x/dpll.c

View file
diff --git a/drivers/dpll/zl3073x/dpll.c b/drivers/dpll/zl3073x/dpll.c
index 93dc93e..f93f9a4 100644
--- a/drivers/dpll/zl3073x/dpll.c
+++ b/drivers/dpll/zl3073x/dpll.c
@@ -1904,7 +1904,7 @@ zl3073x_dpll_pin_is_registrable(struct zl3073x_dpll *zldpll,
}
is_diff = zl3073x_out_is_diff(zldev, out);
- is_enabled = zl3073x_out_is_enabled(zldev, out);
+ is_enabled = zl3073x_output_pin_is_enabled(zldev, index);
}
/* Skip N-pin if the corresponding input/output is differential */

drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c

View file
diff --git a/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c b/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c
index ecd9a0b..49b57bb 100644
--- a/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c
+++ b/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c
@@ -290,9 +290,15 @@ static int ch_ipsec_xfrm_add_state(struct net_device *dev,
return -EINVAL;
}
+ if (unlikely(!try_module_get(THIS_MODULE))) {
+ NL_SET_ERR_MSG_MOD(extack, "Failed to acquire module reference");
+ return -ENODEV;
+ }
+
sa_entry = kzalloc(sizeof(*sa_entry), GFP_KERNEL);
if (!sa_entry) {
res = -ENOMEM;
+ module_put(THIS_MODULE);
goto out;
}
@@ -301,7 +307,6 @@ static int ch_ipsec_xfrm_add_state(struct net_device *dev,
sa_entry->esn = 1;
ch_ipsec_setkey(x, sa_entry);
x->xso.offload_handle = (unsigned long)sa_entry;
- try_module_get(THIS_MODULE);
out:
return res;
}

drivers/net/ethernet/hisilicon/hibmcge/hbg_common.h

View file
diff --git a/drivers/net/ethernet/hisilicon/hibmcge/hbg_common.h b/drivers/net/ethernet/hisilicon/hibmcge/hbg_common.h
index ea09a09..2097e4c 100644
--- a/drivers/net/ethernet/hisilicon/hibmcge/hbg_common.h
+++ b/drivers/net/ethernet/hisilicon/hibmcge/hbg_common.h
@@ -17,6 +17,7 @@
#define HBG_PCU_CACHE_LINE_SIZE 32
#define HBG_TX_TIMEOUT_BUF_LEN 1024
#define HBG_RX_DESCR 0x01
+#define HBG_NO_PHY 0xFF
#define HBG_PACKET_HEAD_SIZE ((HBG_RX_SKIP1 + HBG_RX_SKIP2 + \
HBG_RX_DESCR) * HBG_PCU_CACHE_LINE_SIZE)

drivers/net/ethernet/hisilicon/hibmcge/hbg_err.c

View file
diff --git a/drivers/net/ethernet/hisilicon/hibmcge/hbg_err.c b/drivers/net/ethernet/hisilicon/hibmcge/hbg_err.c
index 83cf75b..e11495b 100644
--- a/drivers/net/ethernet/hisilicon/hibmcge/hbg_err.c
+++ b/drivers/net/ethernet/hisilicon/hibmcge/hbg_err.c
@@ -136,12 +136,11 @@ static pci_ers_result_t hbg_pci_err_detected(struct pci_dev *pdev,
{
struct net_device *netdev = pci_get_drvdata(pdev);
- netif_device_detach(netdev);
-
- if (state == pci_channel_io_perm_failure)
+ if (state == pci_channel_io_perm_failure) {
+ netif_device_detach(netdev);
return PCI_ERS_RESULT_DISCONNECT;
+ }
- pci_disable_device(pdev);
return PCI_ERS_RESULT_NEED_RESET;
}
@@ -150,6 +149,9 @@ static pci_ers_result_t hbg_pci_err_slot_reset(struct pci_dev *pdev)
struct net_device *netdev = pci_get_drvdata(pdev);
struct hbg_priv *priv = netdev_priv(netdev);
+ netif_device_detach(netdev);
+ pci_disable_device(pdev);
+
if (pci_enable_device(pdev)) {
dev_err(&pdev->dev,
"failed to re-enable PCI device after reset\n");

drivers/net/ethernet/hisilicon/hibmcge/hbg_hw.c

View file
diff --git a/drivers/net/ethernet/hisilicon/hibmcge/hbg_hw.c b/drivers/net/ethernet/hisilicon/hibmcge/hbg_hw.c
index d0aa066..d6e8ce8 100644
--- a/drivers/net/ethernet/hisilicon/hibmcge/hbg_hw.c
+++ b/drivers/net/ethernet/hisilicon/hibmcge/hbg_hw.c
@@ -244,6 +244,9 @@ void hbg_hw_adjust_link(struct hbg_priv *priv, u32 speed, u32 duplex)
hbg_hw_mac_enable(priv, HBG_STATUS_ENABLE);
+ if (priv->mac.phy_addr == HBG_NO_PHY)
+ return;
+
/* wait MAC link up */
ret = readl_poll_timeout(priv->io_base + HBG_REG_AN_NEG_STATE_ADDR,
link_status,

drivers/net/ethernet/hisilicon/hibmcge/hbg_irq.c

View file
diff --git a/drivers/net/ethernet/hisilicon/hibmcge/hbg_irq.c b/drivers/net/ethernet/hisilicon/hibmcge/hbg_irq.c
index 8af0bc4..ae4cb35 100644
--- a/drivers/net/ethernet/hisilicon/hibmcge/hbg_irq.c
+++ b/drivers/net/ethernet/hisilicon/hibmcge/hbg_irq.c
@@ -32,6 +32,7 @@ static void hbg_irq_handle_rx_buf_val(struct hbg_priv *priv,
const struct hbg_irq_info *irq_info)
{
priv->stats.rx_fifo_less_empty_thrsld_cnt++;
+ hbg_hw_irq_enable(priv, irq_info->mask, true);
}
#define HBG_IRQ_I(name, handle) \

drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c

View file
diff --git a/drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c b/drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c
index 37791de..b6f0a27 100644
--- a/drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c
+++ b/drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c
@@ -20,7 +20,6 @@
#define HBG_MDIO_OP_INTERVAL_US (5 * 1000)
#define HBG_NP_LINK_FAIL_RETRY_TIMES 5
-#define HBG_NO_PHY 0xFF

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.h

View file

This diff is incomplete. Download the complete patch.

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

View file

This diff is incomplete. Download the complete patch.

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

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/intel/ice/ice_sbq_cmd.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/intel/igb/igb_ethtool.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/intel/igc/igc_ethtool.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/en_rx.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/netronome/nfp/nfp_net_common.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/sfc/mae.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/stmicro/stmmac/stmmac_vlan.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/mctp/mctp-usb.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/netconsole.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/phy/dp83867.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/phy/dp83869.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/usb/asix_devices.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/usb/usbnet.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/virtio_net.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/ath/ath10k/wmi.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/ath/ath11k/core.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/ath/ath11k/mac.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/ath/ath12k/mac.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/mld/link.c

View file

This diff is incomplete. Download the complete patch.

include/net/bluetooth/hci.h

View file

This diff is incomplete. Download the complete patch.

include/net/bluetooth/hci_core.h

View file

This diff is incomplete. Download the complete patch.

include/net/bluetooth/l2cap.h

View file

This diff is incomplete. Download the complete patch.

include/net/bluetooth/mgmt.h

View file

This diff is incomplete. Download the complete patch.

include/net/tcp.h

View file

This diff is incomplete. Download the complete patch.

include/net/tls.h

View file

This diff is incomplete. Download the complete patch.

include/trace/events/tcp.h

View file

This diff is incomplete. Download the complete patch.

net/batman-adv/originator.c

View file

This diff is incomplete. Download the complete patch.

net/bluetooth/hci_conn.c

View file

This diff is incomplete. Download the complete patch.

net/bluetooth/hci_event.c

View file

This diff is incomplete. Download the complete patch.

net/bluetooth/hci_sync.c

View file

This diff is incomplete. Download the complete patch.

net/bluetooth/iso.c

View file

This diff is incomplete. Download the complete patch.

net/bluetooth/l2cap_core.c

View file

This diff is incomplete. Download the complete patch.

net/bluetooth/mgmt.c

View file

This diff is incomplete. Download the complete patch.

net/bluetooth/rfcomm/tty.c

View file

This diff is incomplete. Download the complete patch.

net/core/devmem.c

View file

This diff is incomplete. Download the complete patch.

net/ipv4/tcp_input.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/cfg.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/key.c

View file

This diff is incomplete. Download the complete patch.

net/mptcp/mib.c

View file

This diff is incomplete. Download the complete patch.

net/mptcp/mib.h

View file

This diff is incomplete. Download the complete patch.

net/mptcp/protocol.c

View file

This diff is incomplete. Download the complete patch.

net/mptcp/protocol.h

View file

This diff is incomplete. Download the complete patch.

net/netfilter/nft_connlimit.c

View file

This diff is incomplete. Download the complete patch.

net/netfilter/nft_ct.c

View file

This diff is incomplete. Download the complete patch.

net/sctp/input.c

View file

This diff is incomplete. Download the complete patch.

net/tls/tls_device.c

View file

This diff is incomplete. Download the complete patch.

net/wireless/nl80211.c

View file

This diff is incomplete. Download the complete patch.

tools/net/ynl/lib/ynl-priv.h

View file

This diff is incomplete. Download the complete patch.

tools/net/ynl/pyynl/ethtool.py

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/net/bareudp.sh

View file

This diff is incomplete. Download the complete patch.