Skip to content

Commit 5deaa98

Browse files
committed
Merge tag 'net-6.2-rc5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from wireless, bluetooth, bpf and netfilter. Current release - regressions: - Revert "net: team: use IFF_NO_ADDRCONF flag to prevent ipv6 addrconf", fix nsna_ping mode of team - wifi: mt76: fix bugs in Rx queue handling and DMA mapping - eth: mlx5: - add missing mutex_unlock in error reporter - protect global IPsec ASO with a lock Current release - new code bugs: - rxrpc: fix wrong error return in rxrpc_connect_call() Previous releases - regressions: - bluetooth: hci_sync: fix use of HCI_OP_LE_READ_BUFFER_SIZE_V2 - wifi: - mac80211: fix crashes on Rx due to incorrect initialization of rx->link and rx->link_sta - mac80211: fix bugs in iTXQ conversion - Tx stalls, incorrect aggregation handling, crashes - brcmfmac: fix regression for Broadcom PCIe wifi devices - rndis_wlan: prevent buffer overflow in rndis_query_oid - netfilter: conntrack: handle tcp challenge acks during connection reuse - sched: avoid grafting on htb_destroy_class_offload when destroying - virtio-net: correctly enable callback during start_xmit, fix stalls - tcp: avoid the lookup process failing to get sk in ehash table - ipa: disable ipa interrupt during suspend - eth: stmmac: enable all safety features by default Previous releases - always broken: - bpf: - fix pointer-leak due to insufficient speculative store bypass mitigation (Spectre v4) - skip task with pid=1 in send_signal_common() to avoid a splat - fix BPF program ID information in BPF_AUDIT_UNLOAD as well as PERF_BPF_EVENT_PROG_UNLOAD events - fix potential deadlock in htab_lock_bucket from same bucket index but different map_locked index - bluetooth: - fix a buffer overflow in mgmt_mesh_add() - hci_qca: fix driver shutdown on closed serdev - ISO: fix possible circular locking dependency - CIS: hci_event: fix invalid wait context - wifi: brcmfmac: fixes for survey dump handling - mptcp: explicitly specify sock family at subflow creation time - netfilter: nft_payload: incorrect arithmetics when fetching VLAN header bits - tcp: fix rate_app_limited to default to 1 - l2tp: close all race conditions in l2tp_tunnel_register() - eth: mlx5: fixes for QoS config and eswitch configuration - eth: enetc: avoid deadlock in enetc_tx_onestep_tstamp() - eth: stmmac: fix invalid call to mdiobus_get_phy() Misc: - ethtool: add netlink attr in rss get reply only if the value is not empty" * tag 'net-6.2-rc5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (88 commits) Revert "Merge branch 'octeontx2-af-CPT'" tcp: fix rate_app_limited to default to 1 bnxt: Do not read past the end of test names net: stmmac: enable all safety features by default octeontx2-af: add mbox to return CPT_AF_FLT_INT info octeontx2-af: update cpt lf alloc mailbox octeontx2-af: restore rxc conf after teardown sequence octeontx2-af: optimize cpt pf identification octeontx2-af: modify FLR sequence for CPT octeontx2-af: add mbox for CPT LF reset octeontx2-af: recover CPT engine when it gets fault net: dsa: microchip: ksz9477: port map correction in ALU table entry register selftests/net: toeplitz: fix race on tpacket_v3 block close net/ulp: use consistent error code when blocking ULP octeontx2-pf: Fix the use of GFP_KERNEL in atomic context on rt tcp: avoid the lookup process failing to get sk in ehash table Revert "net: team: use IFF_NO_ADDRCONF flag to prevent ipv6 addrconf" MAINTAINERS: add networking entries for Willem net: sched: gred: prevent races when adding offloads to stats l2tp: prevent lockdep issue in l2tp_tunnel_register() ...
2 parents 4a0c7a6 + 45a919b commit 5deaa98

Some content is hidden

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

90 files changed

+804
-560
lines changed

MAINTAINERS

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1104,7 +1104,6 @@ S: Supported
11041104
F: arch/arm64/boot/dts/amd/
11051105

11061106
AMD XGBE DRIVER
1107-
M: Tom Lendacky <[email protected]>
11081107
M: "Shyam Sundar S K" <[email protected]>
11091108
11101109
S: Supported
@@ -15750,6 +15749,12 @@ S: Maintained
1575015749
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
1575115750
F: drivers/net/wireless/intersil/p54/
1575215751

15752+
PACKET SOCKETS
15753+
M: Willem de Bruijn <[email protected]>
15754+
S: Maintained
15755+
F: include/uapi/linux/if_packet.h
15756+
F: net/packet/af_packet.c
15757+
1575315758
PACKING
1575415759
M: Vladimir Oltean <[email protected]>
1575515760
@@ -19326,6 +19331,13 @@ L: [email protected] (moderated for non-subscribers)
1932619331
S: Orphan
1932719332
F: sound/soc/uniphier/
1932819333

19334+
SOCKET TIMESTAMPING
19335+
M: Willem de Bruijn <[email protected]>
19336+
S: Maintained
19337+
F: Documentation/networking/timestamping.rst
19338+
F: include/uapi/linux/net_tstamp.h
19339+
F: tools/testing/selftests/net/so_txtime.c
19340+
1932919341
SOEKRIS NET48XX LED SUPPORT
1933019342
M: Chris Boot <[email protected]>
1933119343
S: Maintained
@@ -21746,6 +21758,13 @@ T: git git://linuxtv.org/media_tree.git
2174621758
F: Documentation/admin-guide/media/zr364xx*
2174721759
F: drivers/staging/media/deprecated/zr364xx/
2174821760

21761+
USER DATAGRAM PROTOCOL (UDP)
21762+
M: Willem de Bruijn <[email protected]>
21763+
S: Maintained
21764+
F: include/linux/udp.h
21765+
F: net/ipv4/udp.c
21766+
F: net/ipv6/udp.c
21767+
2174921768
USER-MODE LINUX (UML)
2175021769
M: Richard Weinberger <[email protected]>
2175121770
M: Anton Ivanov <[email protected]>

drivers/bluetooth/hci_qca.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2164,10 +2164,17 @@ static void qca_serdev_shutdown(struct device *dev)
21642164
int timeout = msecs_to_jiffies(CMD_TRANS_TIMEOUT_MS);
21652165
struct serdev_device *serdev = to_serdev_device(dev);
21662166
struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev);
2167+
struct hci_uart *hu = &qcadev->serdev_hu;
2168+
struct hci_dev *hdev = hu->hdev;
2169+
struct qca_data *qca = hu->priv;
21672170
const u8 ibs_wake_cmd[] = { 0xFD };
21682171
const u8 edl_reset_soc_cmd[] = { 0x01, 0x00, 0xFC, 0x01, 0x05 };
21692172

21702173
if (qcadev->btsoc_type == QCA_QCA6390) {
2174+
if (test_bit(QCA_BT_OFF, &qca->flags) ||
2175+
!test_bit(HCI_RUNNING, &hdev->flags))
2176+
return;
2177+
21712178
serdev_device_write_flush(serdev);
21722179
ret = serdev_device_write_buf(serdev, ibs_wake_cmd,
21732180
sizeof(ibs_wake_cmd));

drivers/net/dsa/microchip/ksz9477.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -540,10 +540,10 @@ int ksz9477_fdb_del(struct ksz_device *dev, int port,
540540
ksz_read32(dev, REG_SW_ALU_VAL_D, &alu_table[3]);
541541

542542
/* clear forwarding port */
543-
alu_table[2] &= ~BIT(port);
543+
alu_table[1] &= ~BIT(port);
544544

545545
/* if there is no port to forward, clear table */
546-
if ((alu_table[2] & ALU_V_PORT_MAP) == 0) {
546+
if ((alu_table[1] & ALU_V_PORT_MAP) == 0) {
547547
alu_table[0] = 0;
548548
alu_table[1] = 0;
549549
alu_table[2] = 0;

drivers/net/ethernet/amd/xgbe/xgbe-dev.c

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -524,19 +524,28 @@ static void xgbe_disable_vxlan(struct xgbe_prv_data *pdata)
524524
netif_dbg(pdata, drv, pdata->netdev, "VXLAN acceleration disabled\n");
525525
}
526526

527+
static unsigned int xgbe_get_fc_queue_count(struct xgbe_prv_data *pdata)
528+
{
529+
unsigned int max_q_count = XGMAC_MAX_FLOW_CONTROL_QUEUES;
530+
531+
/* From MAC ver 30H the TFCR is per priority, instead of per queue */
532+
if (XGMAC_GET_BITS(pdata->hw_feat.version, MAC_VR, SNPSVER) >= 0x30)
533+
return max_q_count;
534+
else
535+
return min_t(unsigned int, pdata->tx_q_count, max_q_count);
536+
}
537+
527538
static int xgbe_disable_tx_flow_control(struct xgbe_prv_data *pdata)
528539
{
529-
unsigned int max_q_count, q_count;
530540
unsigned int reg, reg_val;
531-
unsigned int i;
541+
unsigned int i, q_count;
532542

533543
/* Clear MTL flow control */
534544
for (i = 0; i < pdata->rx_q_count; i++)
535545
XGMAC_MTL_IOWRITE_BITS(pdata, i, MTL_Q_RQOMR, EHFC, 0);
536546

537547
/* Clear MAC flow control */
538-
max_q_count = XGMAC_MAX_FLOW_CONTROL_QUEUES;
539-
q_count = min_t(unsigned int, pdata->tx_q_count, max_q_count);
548+
q_count = xgbe_get_fc_queue_count(pdata);
540549
reg = MAC_Q0TFCR;
541550
for (i = 0; i < q_count; i++) {
542551
reg_val = XGMAC_IOREAD(pdata, reg);
@@ -553,9 +562,8 @@ static int xgbe_enable_tx_flow_control(struct xgbe_prv_data *pdata)
553562
{
554563
struct ieee_pfc *pfc = pdata->pfc;
555564
struct ieee_ets *ets = pdata->ets;
556-
unsigned int max_q_count, q_count;
557565
unsigned int reg, reg_val;
558-
unsigned int i;
566+
unsigned int i, q_count;
559567

560568
/* Set MTL flow control */
561569
for (i = 0; i < pdata->rx_q_count; i++) {
@@ -579,8 +587,7 @@ static int xgbe_enable_tx_flow_control(struct xgbe_prv_data *pdata)
579587
}
580588

581589
/* Set MAC flow control */
582-
max_q_count = XGMAC_MAX_FLOW_CONTROL_QUEUES;
583-
q_count = min_t(unsigned int, pdata->tx_q_count, max_q_count);
590+
q_count = xgbe_get_fc_queue_count(pdata);
584591
reg = MAC_Q0TFCR;
585592
for (i = 0; i < q_count; i++) {
586593
reg_val = XGMAC_IOREAD(pdata, reg);

drivers/net/ethernet/amd/xgbe/xgbe-mdio.c

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,7 @@ static enum xgbe_an xgbe_an73_tx_training(struct xgbe_prv_data *pdata,
496496
reg |= XGBE_KR_TRAINING_ENABLE;
497497
reg |= XGBE_KR_TRAINING_START;
498498
XMDIO_WRITE(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL, reg);
499+
pdata->kr_start_time = jiffies;
499500

500501
netif_dbg(pdata, link, pdata->netdev,
501502
"KR training initiated\n");
@@ -632,6 +633,8 @@ static enum xgbe_an xgbe_an73_incompat_link(struct xgbe_prv_data *pdata)
632633

633634
xgbe_switch_mode(pdata);
634635

636+
pdata->an_result = XGBE_AN_READY;
637+
635638
xgbe_an_restart(pdata);
636639

637640
return XGBE_AN_INCOMPAT_LINK;
@@ -1275,9 +1278,30 @@ static bool xgbe_phy_aneg_done(struct xgbe_prv_data *pdata)
12751278
static void xgbe_check_link_timeout(struct xgbe_prv_data *pdata)
12761279
{
12771280
unsigned long link_timeout;
1281+
unsigned long kr_time;
1282+
int wait;
12781283

12791284
link_timeout = pdata->link_check + (XGBE_LINK_TIMEOUT * HZ);
12801285
if (time_after(jiffies, link_timeout)) {
1286+
if ((xgbe_cur_mode(pdata) == XGBE_MODE_KR) &&
1287+
pdata->phy.autoneg == AUTONEG_ENABLE) {
1288+
/* AN restart should not happen while KR training is in progress.
1289+
* The while loop ensures no AN restart during KR training,
1290+
* waits up to 500ms and AN restart is triggered only if KR
1291+
* training is failed.
1292+
*/
1293+
wait = XGBE_KR_TRAINING_WAIT_ITER;
1294+
while (wait--) {
1295+
kr_time = pdata->kr_start_time +
1296+
msecs_to_jiffies(XGBE_AN_MS_TIMEOUT);
1297+
if (time_after(jiffies, kr_time))
1298+
break;
1299+
/* AN restart is not required, if AN result is COMPLETE */
1300+
if (pdata->an_result == XGBE_AN_COMPLETE)
1301+
return;
1302+
usleep_range(10000, 11000);
1303+
}
1304+
}
12811305
netif_dbg(pdata, link, pdata->netdev, "AN link timeout\n");
12821306
xgbe_phy_config_aneg(pdata);
12831307
}

drivers/net/ethernet/amd/xgbe/xgbe.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@
290290
/* Auto-negotiation */
291291
#define XGBE_AN_MS_TIMEOUT 500
292292
#define XGBE_LINK_TIMEOUT 5
293+
#define XGBE_KR_TRAINING_WAIT_ITER 50
293294

294295
#define XGBE_SGMII_AN_LINK_STATUS BIT(1)
295296
#define XGBE_SGMII_AN_LINK_SPEED (BIT(2) | BIT(3))
@@ -1280,6 +1281,7 @@ struct xgbe_prv_data {
12801281
unsigned int parallel_detect;
12811282
unsigned int fec_ability;
12821283
unsigned long an_start;
1284+
unsigned long kr_start_time;
12831285
enum xgbe_an_mode an_mode;
12841286

12851287
/* I2C support */

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

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3969,7 +3969,7 @@ void bnxt_ethtool_init(struct bnxt *bp)
39693969
test_info->timeout = HWRM_CMD_TIMEOUT;
39703970
for (i = 0; i < bp->num_tests; i++) {
39713971
char *str = test_info->string[i];
3972-
char *fw_str = resp->test0_name + i * 32;
3972+
char *fw_str = resp->test_name[i];
39733973

39743974
if (i == BNXT_MACLPBK_TEST_IDX) {
39753975
strcpy(str, "Mac loopback test (offline)");
@@ -3980,14 +3980,9 @@ void bnxt_ethtool_init(struct bnxt *bp)
39803980
} else if (i == BNXT_IRQ_TEST_IDX) {
39813981
strcpy(str, "Interrupt_test (offline)");
39823982
} else {
3983-
strscpy(str, fw_str, ETH_GSTRING_LEN);
3984-
strncat(str, " test", ETH_GSTRING_LEN - strlen(str));
3985-
if (test_info->offline_mask & (1 << i))
3986-
strncat(str, " (offline)",
3987-
ETH_GSTRING_LEN - strlen(str));
3988-
else
3989-
strncat(str, " (online)",
3990-
ETH_GSTRING_LEN - strlen(str));
3983+
snprintf(str, ETH_GSTRING_LEN, "%s test (%s)",
3984+
fw_str, test_info->offline_mask & (1 << i) ?
3985+
"offline" : "online");
39913986
}
39923987
}
39933988

drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10249,14 +10249,7 @@ struct hwrm_selftest_qlist_output {
1024910249
u8 unused_0;
1025010250
__le16 test_timeout;
1025110251
u8 unused_1[2];
10252-
char test0_name[32];
10253-
char test1_name[32];
10254-
char test2_name[32];
10255-
char test3_name[32];
10256-
char test4_name[32];
10257-
char test5_name[32];
10258-
char test6_name[32];
10259-
char test7_name[32];
10252+
char test_name[8][32];
1026010253
u8 eyescope_target_BER_support;
1026110254
#define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E8_SUPPORTED 0x0UL
1026210255
#define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E9_SUPPORTED 0x1UL

drivers/net/ethernet/cadence/macb_main.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2187,7 +2187,6 @@ static int macb_pad_and_fcs(struct sk_buff **skb, struct net_device *ndev)
21872187
bool cloned = skb_cloned(*skb) || skb_header_cloned(*skb) ||
21882188
skb_is_nonlinear(*skb);
21892189
int padlen = ETH_ZLEN - (*skb)->len;
2190-
int headroom = skb_headroom(*skb);
21912190
int tailroom = skb_tailroom(*skb);
21922191
struct sk_buff *nskb;
21932192
u32 fcs;
@@ -2201,9 +2200,6 @@ static int macb_pad_and_fcs(struct sk_buff **skb, struct net_device *ndev)
22012200
/* FCS could be appeded to tailroom. */
22022201
if (tailroom >= ETH_FCS_LEN)
22032202
goto add_fcs;
2204-
/* FCS could be appeded by moving data to headroom. */
2205-
else if (!cloned && headroom + tailroom >= ETH_FCS_LEN)
2206-
padlen = 0;
22072203
/* No room for FCS, need to reallocate skb. */
22082204
else
22092205
padlen = ETH_FCS_LEN;
@@ -2212,10 +2208,7 @@ static int macb_pad_and_fcs(struct sk_buff **skb, struct net_device *ndev)
22122208
padlen += ETH_FCS_LEN;
22132209
}
22142210

2215-
if (!cloned && headroom + tailroom >= padlen) {
2216-
(*skb)->data = memmove((*skb)->head, (*skb)->data, (*skb)->len);
2217-
skb_set_tail_pointer(*skb, (*skb)->len);
2218-
} else {
2211+
if (cloned || tailroom < padlen) {
22192212
nskb = skb_copy_expand(*skb, 0, padlen, GFP_ATOMIC);
22202213
if (!nskb)
22212214
return -ENOMEM;

drivers/net/ethernet/freescale/enetc/enetc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2290,14 +2290,14 @@ static void enetc_tx_onestep_tstamp(struct work_struct *work)
22902290

22912291
priv = container_of(work, struct enetc_ndev_priv, tx_onestep_tstamp);
22922292

2293-
netif_tx_lock(priv->ndev);
2293+
netif_tx_lock_bh(priv->ndev);
22942294

22952295
clear_bit_unlock(ENETC_TX_ONESTEP_TSTAMP_IN_PROGRESS, &priv->flags);
22962296
skb = skb_dequeue(&priv->tx_skbs);
22972297
if (skb)
22982298
enetc_start_xmit(skb, priv->ndev);
22992299

2300-
netif_tx_unlock(priv->ndev);
2300+
netif_tx_unlock_bh(priv->ndev);
23012301
}
23022302

23032303
static void enetc_tx_onestep_tstamp_init(struct enetc_ndev_priv *priv)

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,7 +1012,6 @@ static void otx2_pool_refill_task(struct work_struct *work)
10121012
rbpool = cq->rbpool;
10131013
free_ptrs = cq->pool_ptrs;
10141014

1015-
get_cpu();
10161015
while (cq->pool_ptrs) {
10171016
if (otx2_alloc_rbuf(pfvf, rbpool, &bufptr)) {
10181017
/* Schedule a WQ if we fails to free atleast half of the
@@ -1032,7 +1031,6 @@ static void otx2_pool_refill_task(struct work_struct *work)
10321031
pfvf->hw_ops->aura_freeptr(pfvf, qidx, bufptr + OTX2_HEAD_ROOM);
10331032
cq->pool_ptrs--;
10341033
}
1035-
put_cpu();
10361034
cq->refill_task_sched = false;
10371035
}
10381036

@@ -1370,7 +1368,6 @@ int otx2_sq_aura_pool_init(struct otx2_nic *pfvf)
13701368
if (err)
13711369
goto fail;
13721370

1373-
get_cpu();
13741371
/* Allocate pointers and free them to aura/pool */
13751372
for (qidx = 0; qidx < hw->tot_tx_queues; qidx++) {
13761373
pool_id = otx2_get_pool_idx(pfvf, AURA_NIX_SQ, qidx);
@@ -1394,7 +1391,6 @@ int otx2_sq_aura_pool_init(struct otx2_nic *pfvf)
13941391
}
13951392

13961393
err_mem:
1397-
put_cpu();
13981394
return err ? -ENOMEM : 0;
13991395

14001396
fail:
@@ -1435,21 +1431,18 @@ int otx2_rq_aura_pool_init(struct otx2_nic *pfvf)
14351431
if (err)
14361432
goto fail;
14371433

1438-
get_cpu();
14391434
/* Allocate pointers and free them to aura/pool */
14401435
for (pool_id = 0; pool_id < hw->rqpool_cnt; pool_id++) {
14411436
pool = &pfvf->qset.pool[pool_id];
14421437
for (ptr = 0; ptr < num_ptrs; ptr++) {
14431438
err = otx2_alloc_rbuf(pfvf, pool, &bufptr);
14441439
if (err)
1445-
goto err_mem;
1440+
return -ENOMEM;
14461441
pfvf->hw_ops->aura_freeptr(pfvf, pool_id,
14471442
bufptr + OTX2_HEAD_ROOM);
14481443
}
14491444
}
1450-
err_mem:
1451-
put_cpu();
1452-
return err ? -ENOMEM : 0;
1445+
return 0;
14531446
fail:
14541447
otx2_mbox_reset(&pfvf->mbox.mbox, 0);
14551448
otx2_aura_pool_free(pfvf);

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -736,8 +736,10 @@ static inline void cn10k_aura_freeptr(void *dev, int aura, u64 buf)
736736
u64 ptrs[2];
737737

738738
ptrs[1] = buf;
739+
get_cpu();
739740
/* Free only one buffer at time during init and teardown */
740741
__cn10k_aura_freeptr(pfvf, aura, ptrs, 2);
742+
put_cpu();
741743
}
742744

743745
/* Alloc pointer from pool/aura */

drivers/net/ethernet/mellanox/mlx5/core/en/htb.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ mlx5e_htb_update_children(struct mlx5e_htb *htb, struct mlx5e_qos_node *node,
637637
if (child->bw_share == old_bw_share)
638638
continue;
639639

640-
err_one = mlx5_qos_update_node(htb->mdev, child->hw_id, child->bw_share,
640+
err_one = mlx5_qos_update_node(htb->mdev, child->bw_share,
641641
child->max_average_bw, child->hw_id);
642642
if (!err && err_one) {
643643
err = err_one;
@@ -671,7 +671,7 @@ mlx5e_htb_node_modify(struct mlx5e_htb *htb, u16 classid, u64 rate, u64 ceil,
671671
mlx5e_htb_convert_rate(htb, rate, node->parent, &bw_share);
672672
mlx5e_htb_convert_ceil(htb, ceil, &max_average_bw);
673673

674-
err = mlx5_qos_update_node(htb->mdev, node->parent->hw_id, bw_share,
674+
err = mlx5_qos_update_node(htb->mdev, bw_share,
675675
max_average_bw, node->hw_id);
676676
if (err) {
677677
NL_SET_ERR_MSG_MOD(extack, "Firmware error when modifying a node.");

drivers/net/ethernet/mellanox/mlx5/core/en/params.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,6 @@ int mlx5e_mpwrq_validate_xsk(struct mlx5_core_dev *mdev, struct mlx5e_params *pa
578578
{
579579
enum mlx5e_mpwrq_umr_mode umr_mode = mlx5e_mpwrq_umr_mode(mdev, xsk);
580580
u8 page_shift = mlx5e_mpwrq_page_shift(mdev, xsk);
581-
bool unaligned = xsk ? xsk->unaligned : false;
582581
u16 max_mtu_pkts;
583582

584583
if (!mlx5e_check_fragmented_striding_rq_cap(mdev, page_shift, umr_mode))
@@ -591,7 +590,7 @@ int mlx5e_mpwrq_validate_xsk(struct mlx5_core_dev *mdev, struct mlx5e_params *pa
591590
* needed number of WQEs exceeds the maximum.
592591
*/
593592
max_mtu_pkts = min_t(u8, MLX5E_PARAMS_MAXIMUM_LOG_RQ_SIZE,
594-
mlx5e_mpwrq_max_log_rq_pkts(mdev, page_shift, unaligned));
593+
mlx5e_mpwrq_max_log_rq_pkts(mdev, page_shift, xsk->unaligned));
595594
if (params->log_rq_mtu_frames > max_mtu_pkts) {
596595
mlx5_core_err(mdev, "Current RQ length %d is too big for XSK with given frame size %u\n",
597596
1 << params->log_rq_mtu_frames, xsk->chunk_size);

0 commit comments

Comments
 (0)