Skip to content

Commit c2933b2

Browse files
committed
Merge tag 'net-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from IPSec, netfilter and Bluetooth. Nothing really stands out, but as usual there's a slight concentration of fixes for issues added in the last two weeks before the merge window, and driver bugs from 6.13 which tend to get discovered upon wider distribution. Current release - regressions: - net: revert RTNL changes in unregister_netdevice_many_notify() - Bluetooth: fix possible infinite recursion of btusb_reset - eth: adjust locking in some old drivers which protect their state with spinlocks to avoid sleeping in atomic; core protects netdev state with a mutex now Previous releases - regressions: - eth: - mlx5e: make sure we pass node ID, not CPU ID to kvzalloc_node() - bgmac: reduce max frame size to support just 1500 bytes; the jumbo frame support would previously cause OOB writes, but now fails outright - mptcp: blackhole only if 1st SYN retrans w/o MPC is accepted, avoid false detection of MPTCP blackholing Previous releases - always broken: - mptcp: handle fastopen disconnect correctly - xfrm: - make sure skb->sk is a full sock before accessing its fields - fix taking a lock with preempt disabled for RT kernels - usb: ipheth: improve safety of packet metadata parsing; prevent potential OOB accesses - eth: renesas: fix missing rtnl lock in suspend/resume path" * tag 'net-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (88 commits) MAINTAINERS: add Neal to TCP maintainers net: revert RTNL changes in unregister_netdevice_many_notify() net: hsr: fix fill_frame_info() regression vs VLAN packets doc: mptcp: sysctl: blackhole_timeout is per-netns mptcp: blackhole only if 1st SYN retrans w/o MPC is accepted netfilter: nf_tables: reject mismatching sum of field_len with set key length net: sh_eth: Fix missing rtnl lock in suspend/resume path net: ravb: Fix missing rtnl lock in suspend/resume path selftests/net: Add test for loading devbound XDP program in generic mode net: xdp: Disallow attaching device-bound programs in generic mode tcp: correct handling of extreme memory squeeze bgmac: reduce max frame size to support just MTU 1500 vsock/test: Add test for connect() retries vsock/test: Add test for UAF due to socket unbinding vsock/test: Introduce vsock_connect_fd() vsock/test: Introduce vsock_bind() vsock: Allow retrying on connect() failure vsock: Keep the binding until socket destruction Bluetooth: L2CAP: accept zero as a special value for MTU auto-selection Bluetooth: btnxpuart: Fix glitches seen in dual A2DP streaming ...
2 parents b4b0881 + dfffacc commit c2933b2

File tree

103 files changed

+877
-420
lines changed

Some content is hidden

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

103 files changed

+877
-420
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
What: /sys/class/bluetooth/hci<index>/reset
2+
Date: 14-Jan-2025
3+
KernelVersion: 6.13
4+
5+
Description: This write-only attribute allows users to trigger the vendor reset
6+
method on the Bluetooth device when arbitrary data is written.
7+
The reset may or may not be done through the device transport
8+
(e.g., UART/USB), and can also be done through an out-of-band
9+
approach such as GPIO.

Documentation/devicetree/bindings/net/qcom,ethqos.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ properties:
2222
oneOf:
2323
- items:
2424
- enum:
25-
- qcom,qcs8300-ethqos
26-
- const: qcom,sa8775p-ethqos
25+
- qcom,qcs615-ethqos
26+
- const: qcom,qcs404-ethqos
2727
- items:
2828
- enum:
29-
- qcom,qcs615-ethqos
30-
- const: qcom,sm8150-ethqos
29+
- qcom,qcs8300-ethqos
30+
- const: qcom,sa8775p-ethqos
3131
- enum:
3232
- qcom,qcs404-ethqos
3333
- qcom,sa8775p-ethqos

Documentation/networking/can.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -699,10 +699,10 @@ RAW socket option CAN_RAW_JOIN_FILTERS
699699

700700
The CAN_RAW socket can set multiple CAN identifier specific filters that
701701
lead to multiple filters in the af_can.c filter processing. These filters
702-
are indenpendent from each other which leads to logical OR'ed filters when
702+
are independent from each other which leads to logical OR'ed filters when
703703
applied (see :ref:`socketcan-rawfilter`).
704704

705-
This socket option joines the given CAN filters in the way that only CAN
705+
This socket option joins the given CAN filters in the way that only CAN
706706
frames are passed to user space that matched *all* given CAN filters. The
707707
semantic for the applied filters is therefore changed to a logical AND.
708708

Documentation/networking/mptcp-sysctl.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ blackhole_timeout - INTEGER (seconds)
4141
MPTCP is re-enabled and will reset to the initial value when the
4242
blackhole issue goes away.
4343

44-
0 to disable the blackhole detection.
44+
0 to disable the blackhole detection. This is a per-namespace sysctl.
4545

4646
Default: 3600
4747

Documentation/networking/napi.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ It is expected that ``irq-suspend-timeout`` will be set to a value much larger
362362
than ``gro_flush_timeout`` as ``irq-suspend-timeout`` should suspend IRQs for
363363
the duration of one userland processing cycle.
364364

365-
While it is not stricly necessary to use ``napi_defer_hard_irqs`` and
365+
While it is not strictly necessary to use ``napi_defer_hard_irqs`` and
366366
``gro_flush_timeout`` to use IRQ suspension, their use is strongly
367367
recommended.
368368

MAINTAINERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4102,6 +4102,7 @@ S: Supported
41024102
W: http://www.bluez.org/
41034103
T: git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
41044104
T: git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
4105+
F: Documentation/ABI/stable/sysfs-class-bluetooth
41054106
F: include/net/bluetooth/
41064107
F: net/bluetooth/
41074108

@@ -16277,6 +16278,7 @@ F: drivers/scsi/sun3_scsi_vme.c
1627716278

1627816279
NCSI LIBRARY
1627916280
M: Samuel Mendoza-Jonas <[email protected]>
16281+
R: Paul Fertser <[email protected]>
1628016282
S: Maintained
1628116283
F: net/ncsi/
1628216284

@@ -16611,6 +16613,7 @@ F: tools/testing/selftests/net/mptcp/
1661116613

1661216614
NETWORKING [TCP]
1661316615
M: Eric Dumazet <[email protected]>
16616+
M: Neal Cardwell <[email protected]>
1661416617
1661516618
S: Maintained
1661616619
F: Documentation/networking/net_cachelines/tcp_sock.rst

drivers/bluetooth/btnxpuart.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1381,13 +1381,12 @@ static void btnxpuart_tx_work(struct work_struct *work)
13811381

13821382
while ((skb = nxp_dequeue(nxpdev))) {
13831383
len = serdev_device_write_buf(serdev, skb->data, skb->len);
1384-
serdev_device_wait_until_sent(serdev, 0);
13851384
hdev->stat.byte_tx += len;
13861385

13871386
skb_pull(skb, len);
13881387
if (skb->len > 0) {
13891388
skb_queue_head(&nxpdev->txq, skb);
1390-
break;
1389+
continue;
13911390
}
13921391

13931392
switch (hci_skb_pkt_type(skb)) {

drivers/bluetooth/btusb.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -899,11 +899,6 @@ static void btusb_reset(struct hci_dev *hdev)
899899
struct btusb_data *data;
900900
int err;
901901

902-
if (hdev->reset) {
903-
hdev->reset(hdev);
904-
return;
905-
}
906-
907902
data = hci_get_drvdata(hdev);
908903
/* This is not an unbalanced PM reference since the device will reset */
909904
err = usb_autopm_get_interface(data->intf);
@@ -2639,8 +2634,15 @@ static void btusb_mtk_claim_iso_intf(struct btusb_data *data)
26392634
struct btmtk_data *btmtk_data = hci_get_priv(data->hdev);
26402635
int err;
26412636

2637+
/*
2638+
* The function usb_driver_claim_interface() is documented to need
2639+
* locks held if it's not called from a probe routine. The code here
2640+
* is called from the hci_power_on workqueue, so grab the lock.
2641+
*/
2642+
device_lock(&btmtk_data->isopkt_intf->dev);
26422643
err = usb_driver_claim_interface(&btusb_driver,
26432644
btmtk_data->isopkt_intf, data);
2645+
device_unlock(&btmtk_data->isopkt_intf->dev);
26442646
if (err < 0) {
26452647
btmtk_data->isopkt_intf = NULL;
26462648
bt_dev_err(data->hdev, "Failed to claim iso interface");

drivers/net/bonding/bond_main.c

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1538,17 +1538,20 @@ static netdev_features_t bond_fix_features(struct net_device *dev,
15381538
NETIF_F_HIGHDMA | NETIF_F_LRO)
15391539

15401540
#define BOND_ENC_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
1541-
NETIF_F_RXCSUM | NETIF_F_GSO_SOFTWARE)
1541+
NETIF_F_RXCSUM | NETIF_F_GSO_SOFTWARE | \
1542+
NETIF_F_GSO_PARTIAL)
15421543

15431544
#define BOND_MPLS_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
15441545
NETIF_F_GSO_SOFTWARE)
15451546

1547+
#define BOND_GSO_PARTIAL_FEATURES (NETIF_F_GSO_ESP)
1548+
15461549

15471550
static void bond_compute_features(struct bonding *bond)
15481551
{
1552+
netdev_features_t gso_partial_features = BOND_GSO_PARTIAL_FEATURES;
15491553
unsigned int dst_release_flag = IFF_XMIT_DST_RELEASE |
15501554
IFF_XMIT_DST_RELEASE_PERM;
1551-
netdev_features_t gso_partial_features = NETIF_F_GSO_ESP;
15521555
netdev_features_t vlan_features = BOND_VLAN_FEATURES;
15531556
netdev_features_t enc_features = BOND_ENC_FEATURES;
15541557
#ifdef CONFIG_XFRM_OFFLOAD
@@ -1582,8 +1585,9 @@ static void bond_compute_features(struct bonding *bond)
15821585
BOND_XFRM_FEATURES);
15831586
#endif /* CONFIG_XFRM_OFFLOAD */
15841587

1585-
if (slave->dev->hw_enc_features & NETIF_F_GSO_PARTIAL)
1586-
gso_partial_features &= slave->dev->gso_partial_features;
1588+
gso_partial_features = netdev_increment_features(gso_partial_features,
1589+
slave->dev->gso_partial_features,
1590+
BOND_GSO_PARTIAL_FEATURES);
15871591

15881592
mpls_features = netdev_increment_features(mpls_features,
15891593
slave->dev->mpls_features,
@@ -1598,12 +1602,8 @@ static void bond_compute_features(struct bonding *bond)
15981602
}
15991603
bond_dev->hard_header_len = max_hard_header_len;
16001604

1601-
if (gso_partial_features & NETIF_F_GSO_ESP)
1602-
bond_dev->gso_partial_features |= NETIF_F_GSO_ESP;
1603-
else
1604-
bond_dev->gso_partial_features &= ~NETIF_F_GSO_ESP;
1605-
16061605
done:
1606+
bond_dev->gso_partial_features = gso_partial_features;
16071607
bond_dev->vlan_features = vlan_features;
16081608
bond_dev->hw_enc_features = enc_features | NETIF_F_GSO_ENCAP_ALL |
16091609
NETIF_F_HW_VLAN_CTAG_TX |
@@ -6046,6 +6046,7 @@ void bond_setup(struct net_device *bond_dev)
60466046
bond_dev->hw_features |= NETIF_F_GSO_ENCAP_ALL;
60476047
bond_dev->features |= bond_dev->hw_features;
60486048
bond_dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX;
6049+
bond_dev->features |= NETIF_F_GSO_PARTIAL;
60496050
#ifdef CONFIG_XFRM_OFFLOAD
60506051
bond_dev->hw_features |= BOND_XFRM_FEATURES;
60516052
/* Only enable XFRM features if this is an active-backup config */

drivers/net/ethernet/broadcom/bgmac.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,8 +328,7 @@
328328
#define BGMAC_RX_FRAME_OFFSET 30 /* There are 2 unused bytes between header and real data */
329329
#define BGMAC_RX_BUF_OFFSET (NET_SKB_PAD + NET_IP_ALIGN - \
330330
BGMAC_RX_FRAME_OFFSET)
331-
/* Jumbo frame size with FCS */
332-
#define BGMAC_RX_MAX_FRAME_SIZE 9724
331+
#define BGMAC_RX_MAX_FRAME_SIZE 1536
333332
#define BGMAC_RX_BUF_SIZE (BGMAC_RX_FRAME_OFFSET + BGMAC_RX_MAX_FRAME_SIZE)
334333
#define BGMAC_RX_ALLOC_SIZE (SKB_DATA_ALIGN(BGMAC_RX_BUF_SIZE + BGMAC_RX_BUF_OFFSET) + \
335334
SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))

0 commit comments

Comments
 (0)