Skip to content

Commit 033771c

Browse files
committed
Merge tag 'net-6.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from bluetooth, wireless and netfilter. There's one fix for power management with Intel's e1000e here, Thorsten tells us there's another problem that started in v6.9. We're trying to wrap that up but I don't think it's blocking. Current release - new code bugs: - wifi: mac80211: disable softirqs for queued frame handling - af_unix: fix uninit-value in __unix_walk_scc(), with the new garbage collection algo Previous releases - regressions: - Bluetooth: - qca: fix BT enable failure for QCA6390 after warm reboot - add quirk to ignore reserved PHY bits in LE Extended Adv Report, abused by some Broadcom controllers found on Apple machines - wifi: wilc1000: fix ies_len type in connect path Previous releases - always broken: - tcp: fix DSACK undo in fast recovery to call tcp_try_to_open(), avoid premature timeouts - net: make sure skb_datagram_iter maps fragments page by page, in case we somehow get compound highmem mixed in - eth: bnx2x: fix multiple UBSAN array-index-out-of-bounds when more queues are used Misc: - MAINTAINERS: Remembering Larry Finger" * tag 'net-6.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (62 commits) bnxt_en: Fix the resource check condition for RSS contexts mlxsw: core_linecards: Fix double memory deallocation in case of invalid INI file inet_diag: Initialize pad field in struct inet_diag_req_v2 tcp: Don't flag tcp_sk(sk)->rx_opt.saw_unknown for TCP AO. selftests: make order checking verbose in msg_zerocopy selftest selftests: fix OOM in msg_zerocopy selftest ice: use proper macro for testing bit ice: Reject pin requests with unsupported flags ice: Don't process extts if PTP is disabled ice: Fix improper extts handling selftest: af_unix: Add test case for backtrack after finalising SCC. af_unix: Fix uninit-value in __unix_walk_scc() bonding: Fix out-of-bounds read in bond_option_arp_ip_targets_set() net: rswitch: Avoid use-after-free in rswitch_poll() netfilter: nf_tables: unconditionally flush pending work before notifier wifi: iwlwifi: mvm: check vif for NULL/ERR_PTR before dereference wifi: iwlwifi: mvm: avoid link lookup in statistics wifi: iwlwifi: mvm: don't wake up rx_sync_waitq upon RFKILL wifi: iwlwifi: properly set WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK wifi: wilc1000: fix ies_len type in connect path ...
2 parents d470e9f + 5d350dc commit 033771c

File tree

67 files changed

+630
-378
lines changed

Some content is hidden

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

67 files changed

+630
-378
lines changed

CREDITS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,10 @@ D: UDF filesystem
12141214
S: (ask for current address)
12151215
S: USA
12161216

1217+
N: Larry Finger
1218+
1219+
D: Maintainer of wireless drivers, too many to list here
1220+
12171221
N: Jürgen Fischer
12181222
12191223
D: Author of Adaptec AHA-152x SCSI driver

MAINTAINERS

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3601,10 +3601,9 @@ W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
36013601
F: drivers/net/wireless/broadcom/b43/
36023602

36033603
B43LEGACY WIRELESS DRIVER
3604-
M: Larry Finger <[email protected]>
36053604
36063605
3607-
S: Maintained
3606+
S: Orphan
36083607
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
36093608
F: drivers/net/wireless/broadcom/b43legacy/
36103609

@@ -18374,7 +18373,7 @@ M: Jeff Johnson <[email protected]>
1837418373
1837518374
S: Supported
1837618375
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath12k
18377-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
18376+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
1837818377
F: drivers/net/wireless/ath/ath12k/
1837918378
N: ath12k
1838018379

@@ -18384,7 +18383,7 @@ M: Jeff Johnson <[email protected]>
1838418383
1838518384
S: Supported
1838618385
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
18387-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
18386+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
1838818387
F: drivers/net/wireless/ath/ath10k/
1838918388
N: ath10k
1839018389

@@ -18395,7 +18394,7 @@ L: [email protected]
1839518394
S: Supported
1839618395
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k
1839718396
B: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k/bugreport
18398-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
18397+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
1839918398
F: drivers/net/wireless/ath/ath11k/
1840018399
N: ath11k
1840118400

@@ -18404,7 +18403,7 @@ M: Toke Høiland-Jørgensen <[email protected]>
1840418403
1840518404
S: Maintained
1840618405
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
18407-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
18406+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
1840818407
F: Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
1840918408
F: drivers/net/wireless/ath/ath9k/
1841018409

@@ -19509,7 +19508,6 @@ F: drivers/net/wireless/realtek/rtl818x/rtl8180/
1950919508

1951019509
RTL8187 WIRELESS DRIVER
1951119510
M: Hin-Tak Leung <[email protected]>
19512-
M: Larry Finger <[email protected]>
1951319511
1951419512
S: Maintained
1951519513
T: git https://github.com/pkshih/rtw.git
@@ -21247,7 +21245,6 @@ W: http://wiki.laptop.org/go/DCON
2124721245
F: drivers/staging/olpc_dcon/
2124821246

2124921247
STAGING - REALTEK RTL8712U DRIVERS
21250-
M: Larry Finger <[email protected]>
2125121248
M: Florian Schilhabel <[email protected]>.
2125221249
S: Odd Fixes
2125321250
F: drivers/staging/rtl8712/

drivers/bluetooth/btintel_pcie.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ static int btintel_pcie_recv_frame(struct btintel_pcie_data *data,
382382

383383
/* The first 4 bytes indicates the Intel PCIe specific packet type */
384384
pdata = skb_pull_data(skb, BTINTEL_PCIE_HCI_TYPE_LEN);
385-
if (!data) {
385+
if (!pdata) {
386386
bt_dev_err(hdev, "Corrupted packet received");
387387
ret = -EILSEQ;
388388
goto exit_error;

drivers/bluetooth/btnxpuart.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ static u8 crc8_table[CRC8_TABLE_SIZE];
281281

282282
/* Default configurations */
283283
#define DEFAULT_H2C_WAKEUP_MODE WAKEUP_METHOD_BREAK
284-
#define DEFAULT_PS_MODE PS_MODE_DISABLE
284+
#define DEFAULT_PS_MODE PS_MODE_ENABLE
285285
#define FW_INIT_BAUDRATE HCI_NXP_PRI_BAUDRATE
286286

287287
static struct sk_buff *nxp_drv_send_cmd(struct hci_dev *hdev, u16 opcode,

drivers/bluetooth/hci_bcm4377.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,10 @@ struct bcm4377_data;
495495
* extended scanning
496496
* broken_mws_transport_config: Set to true if the chip erroneously claims to
497497
* support MWS Transport Configuration
498+
* broken_le_ext_adv_report_phy: Set to true if this chip stuffs flags inside
499+
* reserved bits of Primary/Secondary_PHY inside
500+
* LE Extended Advertising Report events which
501+
* have to be ignored
498502
* send_calibration: Optional callback to send calibration data
499503
* send_ptb: Callback to send "PTB" regulatory/calibration data
500504
*/
@@ -513,6 +517,7 @@ struct bcm4377_hw {
513517
unsigned long broken_ext_scan : 1;
514518
unsigned long broken_mws_transport_config : 1;
515519
unsigned long broken_le_coded : 1;
520+
unsigned long broken_le_ext_adv_report_phy : 1;
516521

517522
int (*send_calibration)(struct bcm4377_data *bcm4377);
518523
int (*send_ptb)(struct bcm4377_data *bcm4377,
@@ -716,7 +721,7 @@ static void bcm4377_handle_ack(struct bcm4377_data *bcm4377,
716721
ring->events[msgid] = NULL;
717722
}
718723

719-
bitmap_release_region(ring->msgids, msgid, ring->n_entries);
724+
bitmap_release_region(ring->msgids, msgid, 0);
720725

721726
unlock:
722727
spin_unlock_irqrestore(&ring->lock, flags);
@@ -2373,6 +2378,8 @@ static int bcm4377_probe(struct pci_dev *pdev, const struct pci_device_id *id)
23732378
set_bit(HCI_QUIRK_BROKEN_EXT_SCAN, &hdev->quirks);
23742379
if (bcm4377->hw->broken_le_coded)
23752380
set_bit(HCI_QUIRK_BROKEN_LE_CODED, &hdev->quirks);
2381+
if (bcm4377->hw->broken_le_ext_adv_report_phy)
2382+
set_bit(HCI_QUIRK_FIXUP_LE_EXT_ADV_REPORT_PHY, &hdev->quirks);
23762383

23772384
pci_set_drvdata(pdev, bcm4377);
23782385
hci_set_drvdata(hdev, bcm4377);
@@ -2477,6 +2484,7 @@ static const struct bcm4377_hw bcm4377_hw_variants[] = {
24772484
.clear_pciecfg_subsystem_ctrl_bit19 = true,
24782485
.broken_mws_transport_config = true,
24792486
.broken_le_coded = true,
2487+
.broken_le_ext_adv_report_phy = true,
24802488
.send_calibration = bcm4387_send_calibration,
24812489
.send_ptb = bcm4378_send_ptb,
24822490
},

drivers/bluetooth/hci_qca.c

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2450,15 +2450,27 @@ static void qca_serdev_shutdown(struct device *dev)
24502450
struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev);
24512451
struct hci_uart *hu = &qcadev->serdev_hu;
24522452
struct hci_dev *hdev = hu->hdev;
2453-
struct qca_data *qca = hu->priv;
24542453
const u8 ibs_wake_cmd[] = { 0xFD };
24552454
const u8 edl_reset_soc_cmd[] = { 0x01, 0x00, 0xFC, 0x01, 0x05 };
24562455

24572456
if (qcadev->btsoc_type == QCA_QCA6390) {
2458-
if (test_bit(QCA_BT_OFF, &qca->flags) ||
2459-
!test_bit(HCI_RUNNING, &hdev->flags))
2457+
/* The purpose of sending the VSC is to reset SOC into a initial
2458+
* state and the state will ensure next hdev->setup() success.
2459+
* if HCI_QUIRK_NON_PERSISTENT_SETUP is set, it means that
2460+
* hdev->setup() can do its job regardless of SoC state, so
2461+
* don't need to send the VSC.
2462+
* if HCI_SETUP is set, it means that hdev->setup() was never
2463+
* invoked and the SOC is already in the initial state, so
2464+
* don't also need to send the VSC.
2465+
*/
2466+
if (test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks) ||
2467+
hci_dev_test_flag(hdev, HCI_SETUP))
24602468
return;
24612469

2470+
/* The serdev must be in open state when conrol logic arrives
2471+
* here, so also fix the use-after-free issue caused by that
2472+
* the serdev is flushed or wrote after it is closed.
2473+
*/
24622474
serdev_device_write_flush(serdev);
24632475
ret = serdev_device_write_buf(serdev, ibs_wake_cmd,
24642476
sizeof(ibs_wake_cmd));

drivers/net/bonding/bond_options.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,9 +1214,9 @@ static int bond_option_arp_ip_targets_set(struct bonding *bond,
12141214
__be32 target;
12151215

12161216
if (newval->string) {
1217-
if (!in4_pton(newval->string+1, -1, (u8 *)&target, -1, NULL)) {
1218-
netdev_err(bond->dev, "invalid ARP target %pI4 specified\n",
1219-
&target);
1217+
if (strlen(newval->string) < 1 ||
1218+
!in4_pton(newval->string + 1, -1, (u8 *)&target, -1, NULL)) {
1219+
netdev_err(bond->dev, "invalid ARP target specified\n");
12201220
return ret;
12211221
}
12221222
if (newval->string[0] == '+')

drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ static const struct kvaser_usb_driver_info kvaser_usb_driver_info_leaf_err_liste
125125

126126
static const struct kvaser_usb_driver_info kvaser_usb_driver_info_leafimx = {
127127
.quirks = 0,
128+
.family = KVASER_LEAF,
128129
.ops = &kvaser_usb_leaf_dev_ops,
129130
};
130131

drivers/net/ethernet/broadcom/bnx2x/bnx2x.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1262,7 +1262,7 @@ enum {
12621262

12631263
struct bnx2x_fw_stats_req {
12641264
struct stats_query_header hdr;
1265-
struct stats_query_entry query[FP_SB_MAX_E1x+
1265+
struct stats_query_entry query[FP_SB_MAX_E2 +
12661266
BNX2X_FIRST_QUEUE_QUERY_IDX];
12671267
};
12681268

drivers/net/ethernet/broadcom/bnxt/bnxt.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12669,7 +12669,11 @@ bool bnxt_rfs_capable(struct bnxt *bp, bool new_rss_ctx)
1266912669
if (!BNXT_NEW_RM(bp))
1267012670
return true;
1267112671

12672-
if (hwr.vnic == bp->hw_resc.resv_vnics &&
12672+
/* Do not reduce VNIC and RSS ctx reservations. There is a FW
12673+
* issue that will mess up the default VNIC if we reduce the
12674+
* reservations.
12675+
*/
12676+
if (hwr.vnic <= bp->hw_resc.resv_vnics &&
1267312677
hwr.rss_ctx <= bp->hw_resc.resv_rsscos_ctxs)
1267412678
return true;
1267512679

0 commit comments

Comments
 (0)