Skip to content

Commit 6832a93

Browse files
committed
Merge tag 'net-6.16-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from Bluetooth, CAN, WiFi and Netfilter. More code here than I would have liked. That said, better now than next week. Nothing particularly scary stands out. The improvement to the OpenVPN input validation is a bit large but better get them in before the code makes it to a final release. Some of the changes we got from sub-trees could have been split better between the fix and -next refactoring, IMHO, that has been communicated. We have one known regression in a TI AM65 board not getting link. The investigation is going a bit slow, a number of people are on vacation. We'll try to wrap it up, but don't think it should hold up the release. Current release - fix to a fix: - Bluetooth: L2CAP: fix attempting to adjust outgoing MTU, it broke some headphones and speakers Current release - regressions: - wifi: ath12k: fix packets received in WBM error ring with REO LUT enabled, fix Rx performance regression - wifi: iwlwifi: - fix crash due to a botched indexing conversion - mask reserved bits in chan_state_active_bitmap, avoid FW assert() Current release - new code bugs: - nf_conntrack: fix crash due to removal of uninitialised entry - eth: airoha: fix potential UaF in airoha_npu_get() Previous releases - regressions: - net: fix segmentation after TCP/UDP fraglist GRO - af_packet: fix the SO_SNDTIMEO constraint not taking effect and a potential soft lockup waiting for a completion - rpl: fix UaF in rpl_do_srh_inline() for sneaky skb geometry - virtio-net: fix recursive rtnl_lock() during probe() - eth: stmmac: populate entire system_counterval_t in get_time_fn() - eth: libwx: fix a number of crashes in the driver Rx path - hv_netvsc: prevent IPv6 addrconf after IFF_SLAVE lost that meaning Previous releases - always broken: - mptcp: fix races in handling connection fallback to pure TCP - rxrpc: assorted error handling and race fixes - sched: another batch of "security" fixes for qdiscs (QFQ, HTB) - tls: always refresh the queue when reading sock, avoid UaF - phy: don't register LEDs for genphy, avoid deadlock - Bluetooth: btintel: check if controller is ISO capable on btintel_classify_pkt_type(), work around FW returning incorrect capabilities Misc: - make OpenVPN Netlink input checking more strict before it makes it to a final release - wifi: cfg80211: remove scan request n_channels __counted_by, it's only yielding false positives" * tag 'net-6.16-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (66 commits) rxrpc: Fix to use conn aborts for conn-wide failures rxrpc: Fix transmission of an abort in response to an abort rxrpc: Fix notification vs call-release vs recvmsg rxrpc: Fix recv-recv race of completed call rxrpc: Fix irq-disabled in local_bh_enable() selftests/tc-testing: Test htb_dequeue_tree with deactivation and row emptying net/sched: Return NULL when htb_lookup_leaf encounters an empty rbtree net: bridge: Do not offload IGMP/MLD messages selftests: Add test cases for vlan_filter modification during runtime net: vlan: fix VLAN 0 refcount imbalance of toggling filtering during runtime tls: always refresh the queue when reading sock virtio-net: fix recursived rtnl_lock() during probe() net/mlx5: Update the list of the PCI supported devices hv_netvsc: Set VF priv_flags to IFF_NO_ADDRCONF before open to prevent IPv6 addrconf phonet/pep: Move call to pn_skb_get_dst_sockaddr() earlier in pep_sock_accept() Bluetooth: L2CAP: Fix attempting to adjust outgoing MTU netfilter: nf_conntrack: fix crash due to removal of uninitialised entry net: fix segmentation after TCP/UDP fraglist GRO ipv6: mcast: Delay put pmc->idev in mld_del_delrec() net: airoha: fix potential use-after-free in airoha_npu_get() ...
2 parents e6e82e5 + a2bbaff commit 6832a93

File tree

113 files changed

+1591
-549
lines changed

Some content is hidden

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

113 files changed

+1591
-549
lines changed

Documentation/netlink/specs/ovpn.yaml

Lines changed: 147 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,66 @@ attribute-sets:
160160
name: link-tx-packets
161161
type: uint
162162
doc: Number of packets transmitted at the transport level
163+
-
164+
name: peer-new-input
165+
subset-of: peer
166+
attributes:
167+
-
168+
name: id
169+
-
170+
name: remote-ipv4
171+
-
172+
name: remote-ipv6
173+
-
174+
name: remote-ipv6-scope-id
175+
-
176+
name: remote-port
177+
-
178+
name: socket
179+
-
180+
name: vpn-ipv4
181+
-
182+
name: vpn-ipv6
183+
-
184+
name: local-ipv4
185+
-
186+
name: local-ipv6
187+
-
188+
name: keepalive-interval
189+
-
190+
name: keepalive-timeout
191+
-
192+
name: peer-set-input
193+
subset-of: peer
194+
attributes:
195+
-
196+
name: id
197+
-
198+
name: remote-ipv4
199+
-
200+
name: remote-ipv6
201+
-
202+
name: remote-ipv6-scope-id
203+
-
204+
name: remote-port
205+
-
206+
name: vpn-ipv4
207+
-
208+
name: vpn-ipv6
209+
-
210+
name: local-ipv4
211+
-
212+
name: local-ipv6
213+
-
214+
name: keepalive-interval
215+
-
216+
name: keepalive-timeout
217+
-
218+
name: peer-del-input
219+
subset-of: peer
220+
attributes:
221+
-
222+
name: id
163223
-
164224
name: keyconf
165225
attributes:
@@ -216,6 +276,33 @@ attribute-sets:
216276
obtain the actual cipher IV
217277
checks:
218278
exact-len: nonce-tail-size
279+
280+
-
281+
name: keyconf-get
282+
subset-of: keyconf
283+
attributes:
284+
-
285+
name: peer-id
286+
-
287+
name: slot
288+
-
289+
name: key-id
290+
-
291+
name: cipher-alg
292+
-
293+
name: keyconf-swap-input
294+
subset-of: keyconf
295+
attributes:
296+
-
297+
name: peer-id
298+
-
299+
name: keyconf-del-input
300+
subset-of: keyconf
301+
attributes:
302+
-
303+
name: peer-id
304+
-
305+
name: slot
219306
-
220307
name: ovpn
221308
attributes:
@@ -235,12 +322,66 @@ attribute-sets:
235322
type: nest
236323
doc: Peer specific cipher configuration
237324
nested-attributes: keyconf
325+
-
326+
name: ovpn-peer-new-input
327+
subset-of: ovpn
328+
attributes:
329+
-
330+
name: ifindex
331+
-
332+
name: peer
333+
nested-attributes: peer-new-input
334+
-
335+
name: ovpn-peer-set-input
336+
subset-of: ovpn
337+
attributes:
338+
-
339+
name: ifindex
340+
-
341+
name: peer
342+
nested-attributes: peer-set-input
343+
-
344+
name: ovpn-peer-del-input
345+
subset-of: ovpn
346+
attributes:
347+
-
348+
name: ifindex
349+
-
350+
name: peer
351+
nested-attributes: peer-del-input
352+
-
353+
name: ovpn-keyconf-get
354+
subset-of: ovpn
355+
attributes:
356+
-
357+
name: ifindex
358+
-
359+
name: keyconf
360+
nested-attributes: keyconf-get
361+
-
362+
name: ovpn-keyconf-swap-input
363+
subset-of: ovpn
364+
attributes:
365+
-
366+
name: ifindex
367+
-
368+
name: keyconf
369+
nested-attributes: keyconf-swap-input
370+
-
371+
name: ovpn-keyconf-del-input
372+
subset-of: ovpn
373+
attributes:
374+
-
375+
name: ifindex
376+
-
377+
name: keyconf
378+
nested-attributes: keyconf-del-input
238379

239380
operations:
240381
list:
241382
-
242383
name: peer-new
243-
attribute-set: ovpn
384+
attribute-set: ovpn-peer-new-input
244385
flags: [ admin-perm ]
245386
doc: Add a remote peer
246387
do:
@@ -252,7 +393,7 @@ operations:
252393
- peer
253394
-
254395
name: peer-set
255-
attribute-set: ovpn
396+
attribute-set: ovpn-peer-set-input
256397
flags: [ admin-perm ]
257398
doc: modify a remote peer
258399
do:
@@ -286,7 +427,7 @@ operations:
286427
- peer
287428
-
288429
name: peer-del
289-
attribute-set: ovpn
430+
attribute-set: ovpn-peer-del-input
290431
flags: [ admin-perm ]
291432
doc: Delete existing remote peer
292433
do:
@@ -316,7 +457,7 @@ operations:
316457
- keyconf
317458
-
318459
name: key-get
319-
attribute-set: ovpn
460+
attribute-set: ovpn-keyconf-get
320461
flags: [ admin-perm ]
321462
doc: Retrieve non-sensitive data about peer key and cipher
322463
do:
@@ -331,7 +472,7 @@ operations:
331472
- keyconf
332473
-
333474
name: key-swap
334-
attribute-set: ovpn
475+
attribute-set: ovpn-keyconf-swap-input
335476
flags: [ admin-perm ]
336477
doc: Swap primary and secondary session keys for a specific peer
337478
do:
@@ -350,7 +491,7 @@ operations:
350491
mcgrp: peers
351492
-
352493
name: key-del
353-
attribute-set: ovpn
494+
attribute-set: ovpn-keyconf-del-input
354495
flags: [ admin-perm ]
355496
doc: Delete cipher key for a specific peer
356497
do:

drivers/bluetooth/bfusb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,7 @@ static int bfusb_probe(struct usb_interface *intf, const struct usb_device_id *i
670670
hdev->flush = bfusb_flush;
671671
hdev->send = bfusb_send_frame;
672672

673-
set_bit(HCI_QUIRK_BROKEN_LOCAL_COMMANDS, &hdev->quirks);
673+
hci_set_quirk(hdev, HCI_QUIRK_BROKEN_LOCAL_COMMANDS);
674674

675675
if (hci_register_dev(hdev) < 0) {
676676
BT_ERR("Can't register HCI device");

drivers/bluetooth/bpa10x.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ static int bpa10x_probe(struct usb_interface *intf,
398398
hdev->send = bpa10x_send_frame;
399399
hdev->set_diag = bpa10x_set_diag;
400400

401-
set_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks);
401+
hci_set_quirk(hdev, HCI_QUIRK_RESET_ON_CLOSE);
402402

403403
err = hci_register_dev(hdev);
404404
if (err < 0) {

drivers/bluetooth/btbcm.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ int btbcm_check_bdaddr(struct hci_dev *hdev)
135135
if (btbcm_set_bdaddr_from_efi(hdev) != 0) {
136136
bt_dev_info(hdev, "BCM: Using default device address (%pMR)",
137137
&bda->bdaddr);
138-
set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks);
138+
hci_set_quirk(hdev, HCI_QUIRK_INVALID_BDADDR);
139139
}
140140
}
141141

@@ -467,7 +467,7 @@ static int btbcm_print_controller_features(struct hci_dev *hdev)
467467

468468
/* Read DMI and disable broken Read LE Min/Max Tx Power */
469469
if (dmi_first_match(disable_broken_read_transmit_power))
470-
set_bit(HCI_QUIRK_BROKEN_READ_TRANSMIT_POWER, &hdev->quirks);
470+
hci_set_quirk(hdev, HCI_QUIRK_BROKEN_READ_TRANSMIT_POWER);
471471

472472
return 0;
473473
}
@@ -706,7 +706,7 @@ int btbcm_finalize(struct hci_dev *hdev, bool *fw_load_done, bool use_autobaud_m
706706

707707
btbcm_check_bdaddr(hdev);
708708

709-
set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
709+
hci_set_quirk(hdev, HCI_QUIRK_STRICT_DUPLICATE_FILTER);
710710

711711
return 0;
712712
}
@@ -769,7 +769,7 @@ int btbcm_setup_apple(struct hci_dev *hdev)
769769
kfree_skb(skb);
770770
}
771771

772-
set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
772+
hci_set_quirk(hdev, HCI_QUIRK_STRICT_DUPLICATE_FILTER);
773773

774774
return 0;
775775
}

drivers/bluetooth/btintel.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ int btintel_check_bdaddr(struct hci_dev *hdev)
8888
if (!bacmp(&bda->bdaddr, BDADDR_INTEL)) {
8989
bt_dev_err(hdev, "Found Intel default device address (%pMR)",
9090
&bda->bdaddr);
91-
set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks);
91+
hci_set_quirk(hdev, HCI_QUIRK_INVALID_BDADDR);
9292
}
9393

9494
kfree_skb(skb);
@@ -2027,7 +2027,7 @@ static int btintel_download_fw(struct hci_dev *hdev,
20272027
*/
20282028
if (!bacmp(&params->otp_bdaddr, BDADDR_ANY)) {
20292029
bt_dev_info(hdev, "No device address configured");
2030-
set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks);
2030+
hci_set_quirk(hdev, HCI_QUIRK_INVALID_BDADDR);
20312031
}
20322032

20332033
download:
@@ -2295,7 +2295,7 @@ static int btintel_prepare_fw_download_tlv(struct hci_dev *hdev,
22952295
*/
22962296
if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) {
22972297
bt_dev_info(hdev, "No device address configured");
2298-
set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks);
2298+
hci_set_quirk(hdev, HCI_QUIRK_INVALID_BDADDR);
22992299
}
23002300
}
23012301

@@ -2670,7 +2670,7 @@ static u8 btintel_classify_pkt_type(struct hci_dev *hdev, struct sk_buff *skb)
26702670
* Distinguish ISO data packets form ACL data packets
26712671
* based on their connection handle value range.
26722672
*/
2673-
if (hci_skb_pkt_type(skb) == HCI_ACLDATA_PKT) {
2673+
if (iso_capable(hdev) && hci_skb_pkt_type(skb) == HCI_ACLDATA_PKT) {
26742674
__u16 handle = __le16_to_cpu(hci_acl_hdr(skb)->handle);
26752675

26762676
if (hci_handle(handle) >= BTINTEL_ISODATA_HANDLE_BASE)
@@ -3435,9 +3435,9 @@ static int btintel_setup_combined(struct hci_dev *hdev)
34353435
}
34363436

34373437
/* Apply the common HCI quirks for Intel device */
3438-
set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
3439-
set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks);
3440-
set_bit(HCI_QUIRK_NON_PERSISTENT_DIAG, &hdev->quirks);
3438+
hci_set_quirk(hdev, HCI_QUIRK_STRICT_DUPLICATE_FILTER);
3439+
hci_set_quirk(hdev, HCI_QUIRK_SIMULTANEOUS_DISCOVERY);
3440+
hci_set_quirk(hdev, HCI_QUIRK_NON_PERSISTENT_DIAG);
34413441

34423442
/* Set up the quality report callback for Intel devices */
34433443
hdev->set_quality_report = btintel_set_quality_report;
@@ -3475,8 +3475,8 @@ static int btintel_setup_combined(struct hci_dev *hdev)
34753475
*/
34763476
if (!btintel_test_flag(hdev,
34773477
INTEL_ROM_LEGACY_NO_WBS_SUPPORT))
3478-
set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED,
3479-
&hdev->quirks);
3478+
hci_set_quirk(hdev,
3479+
HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED);
34803480

34813481
err = btintel_legacy_rom_setup(hdev, &ver);
34823482
break;
@@ -3491,11 +3491,11 @@ static int btintel_setup_combined(struct hci_dev *hdev)
34913491
*
34923492
* All Legacy bootloader devices support WBS
34933493
*/
3494-
set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED,
3495-
&hdev->quirks);
3494+
hci_set_quirk(hdev,
3495+
HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED);
34963496

34973497
/* These variants don't seem to support LE Coded PHY */
3498-
set_bit(HCI_QUIRK_BROKEN_LE_CODED, &hdev->quirks);
3498+
hci_set_quirk(hdev, HCI_QUIRK_BROKEN_LE_CODED);
34993499

35003500
/* Setup MSFT Extension support */
35013501
btintel_set_msft_opcode(hdev, ver.hw_variant);
@@ -3571,10 +3571,10 @@ static int btintel_setup_combined(struct hci_dev *hdev)
35713571
*
35723572
* All Legacy bootloader devices support WBS
35733573
*/
3574-
set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
3574+
hci_set_quirk(hdev, HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED);
35753575

35763576
/* These variants don't seem to support LE Coded PHY */
3577-
set_bit(HCI_QUIRK_BROKEN_LE_CODED, &hdev->quirks);
3577+
hci_set_quirk(hdev, HCI_QUIRK_BROKEN_LE_CODED);
35783578

35793579
/* Setup MSFT Extension support */
35803580
btintel_set_msft_opcode(hdev, ver.hw_variant);
@@ -3600,7 +3600,7 @@ static int btintel_setup_combined(struct hci_dev *hdev)
36003600
*
36013601
* All TLV based devices support WBS
36023602
*/
3603-
set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
3603+
hci_set_quirk(hdev, HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED);
36043604

36053605
/* Setup MSFT Extension support */
36063606
btintel_set_msft_opcode(hdev,

drivers/bluetooth/btintel_pcie.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2081,9 +2081,9 @@ static int btintel_pcie_setup_internal(struct hci_dev *hdev)
20812081
}
20822082

20832083
/* Apply the common HCI quirks for Intel device */
2084-
set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
2085-
set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks);
2086-
set_bit(HCI_QUIRK_NON_PERSISTENT_DIAG, &hdev->quirks);
2084+
hci_set_quirk(hdev, HCI_QUIRK_STRICT_DUPLICATE_FILTER);
2085+
hci_set_quirk(hdev, HCI_QUIRK_SIMULTANEOUS_DISCOVERY);
2086+
hci_set_quirk(hdev, HCI_QUIRK_NON_PERSISTENT_DIAG);
20872087

20882088
/* Set up the quality report callback for Intel devices */
20892089
hdev->set_quality_report = btintel_set_quality_report;
@@ -2123,7 +2123,7 @@ static int btintel_pcie_setup_internal(struct hci_dev *hdev)
21232123
*
21242124
* All TLV based devices support WBS
21252125
*/
2126-
set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
2126+
hci_set_quirk(hdev, HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED);
21272127

21282128
/* Setup MSFT Extension support */
21292129
btintel_set_msft_opcode(hdev,

0 commit comments

Comments
 (0)