Skip to content

Commit bc9ff19

Browse files
committed
Merge tag 'net-6.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Including fixes from Bluetooth. Current release - regressions: - tcp: refine sk_rcvbuf increase for ooo packets - bluetooth: fix attempting to send HCI_Disconnect to BIS handle - rxrpc: fix over large frame size warning - eth: bcmgenet: initialize u64 stats seq counter Previous releases - regressions: - tcp: correct signedness in skb remaining space calculation - sched: abort __tc_modify_qdisc if parent class does not exist - vsock: fix transport_{g2h,h2g} TOCTOU - rxrpc: fix bug due to prealloc collision - tipc: fix use-after-free in tipc_conn_close(). - bluetooth: fix not marking Broadcast Sink BIS as connected - phy: qca808x: fix WoL issue by utilizing at8031_set_wol() - eth: am65-cpsw-nuss: fix skb size by accounting for skb_shared_info Previous releases - always broken: - netlink: fix wraparounds of sk->sk_rmem_alloc. - atm: fix infinite recursive call of clip_push(). - eth: - stmmac: fix interrupt handling for level-triggered mode in DWC_XGMAC2 - rtsn: fix a null pointer dereference in rtsn_probe()" * tag 'net-6.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (37 commits) net/sched: sch_qfq: Fix null-deref in agg_dequeue rxrpc: Fix oops due to non-existence of prealloc backlog struct rxrpc: Fix bug due to prealloc collision MAINTAINERS: remove myself as netronome maintainer selftests/net: packetdrill: add tcp_ooo-before-and-after-accept.pkt tcp: refine sk_rcvbuf increase for ooo packets net/sched: Abort __tc_modify_qdisc if parent class does not exist net: ethernet: ti: am65-cpsw-nuss: Fix skb size by accounting for skb_shared_info net: thunderx: avoid direct MTU assignment after WRITE_ONCE() selftests/tc-testing: Create test case for UAF scenario with DRR/NETEM/BLACKHOLE chain atm: clip: Fix NULL pointer dereference in vcc_sendmsg() atm: clip: Fix infinite recursive call of clip_push(). atm: clip: Fix memory leak of struct clip_vcc. atm: clip: Fix potential null-ptr-deref in to_atmarpd(). net: phy: smsc: Fix link failure in forced mode with Auto-MDIX net: phy: smsc: Force predictable MDI-X state on LAN87xx net: phy: smsc: Fix Auto-MDIX configuration when disabled by strap net: stmmac: Fix interrupt handling for level-triggered mode in DWC_XGMAC2 rxrpc: Fix over large frame size warning net: airoha: Fix an error handling path in airoha_probe() ...
2 parents 73d7cf0 + dd831ac commit bc9ff19

File tree

33 files changed

+421
-175
lines changed

33 files changed

+421
-175
lines changed

Documentation/devicetree/bindings/net/allwinner,sun8i-a83t-emac.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ properties:
2323
- allwinner,sun20i-d1-emac
2424
- allwinner,sun50i-h6-emac
2525
- allwinner,sun50i-h616-emac0
26-
- allwinner,sun55i-a523-emac0
26+
- allwinner,sun55i-a523-gmac0
2727
- const: allwinner,sun50i-a64-emac
2828

2929
reg:

MAINTAINERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17224,10 +17224,10 @@ F: drivers/rtc/rtc-ntxec.c
1722417224
F: include/linux/mfd/ntxec.h
1722517225

1722617226
NETRONOME ETHERNET DRIVERS
17227-
M: Louis Peens <[email protected]>
1722817227
R: Jakub Kicinski <[email protected]>
17228+
R: Simon Horman <[email protected]>
1722917229
17230-
S: Maintained
17230+
S: Odd Fixes
1723117231
F: drivers/net/ethernet/netronome/
1723217232

1723317233
NETWORK BLOCK DEVICE (NBD)

drivers/net/ethernet/airoha/airoha_eth.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2984,6 +2984,7 @@ static int airoha_probe(struct platform_device *pdev)
29842984
error_napi_stop:
29852985
for (i = 0; i < ARRAY_SIZE(eth->qdma); i++)
29862986
airoha_qdma_stop_napi(&eth->qdma[i]);
2987+
airoha_ppe_deinit(eth);
29872988
error_hw_cleanup:
29882989
for (i = 0; i < ARRAY_SIZE(eth->qdma); i++)
29892990
airoha_hw_cleanup(&eth->qdma[i]);

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11607,11 +11607,9 @@ static void bnxt_free_irq(struct bnxt *bp)
1160711607

1160811608
static int bnxt_request_irq(struct bnxt *bp)
1160911609
{
11610+
struct cpu_rmap *rmap = NULL;
1161011611
int i, j, rc = 0;
1161111612
unsigned long flags = 0;
11612-
#ifdef CONFIG_RFS_ACCEL
11613-
struct cpu_rmap *rmap;
11614-
#endif
1161511613

1161611614
rc = bnxt_setup_int_mode(bp);
1161711615
if (rc) {
@@ -11632,15 +11630,15 @@ static int bnxt_request_irq(struct bnxt *bp)
1163211630
int map_idx = bnxt_cp_num_to_irq_num(bp, i);
1163311631
struct bnxt_irq *irq = &bp->irq_tbl[map_idx];
1163411632

11635-
#ifdef CONFIG_RFS_ACCEL
11636-
if (rmap && bp->bnapi[i]->rx_ring) {
11633+
if (IS_ENABLED(CONFIG_RFS_ACCEL) &&
11634+
rmap && bp->bnapi[i]->rx_ring) {
1163711635
rc = irq_cpu_rmap_add(rmap, irq->vector);
1163811636
if (rc)
1163911637
netdev_warn(bp->dev, "failed adding irq rmap for ring %d\n",
1164011638
j);
1164111639
j++;
1164211640
}
11643-
#endif
11641+
1164411642
rc = request_irq(irq->vector, irq->handler, flags, irq->name,
1164511643
bp->bnapi[i]);
1164611644
if (rc)

drivers/net/ethernet/broadcom/genet/bcmgenet.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4092,6 +4092,12 @@ static int bcmgenet_probe(struct platform_device *pdev)
40924092
for (i = 0; i <= priv->hw_params->rx_queues; i++)
40934093
priv->rx_rings[i].rx_max_coalesced_frames = 1;
40944094

4095+
/* Initialize u64 stats seq counter for 32bit machines */
4096+
for (i = 0; i <= priv->hw_params->rx_queues; i++)
4097+
u64_stats_init(&priv->rx_rings[i].stats64.syncp);
4098+
for (i = 0; i <= priv->hw_params->tx_queues; i++)
4099+
u64_stats_init(&priv->tx_rings[i].stats64.syncp);
4100+
40954101
/* libphy will determine the link state */
40964102
netif_carrier_off(dev);
40974103

drivers/net/ethernet/cavium/thunder/nicvf_main.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1578,7 +1578,6 @@ int nicvf_open(struct net_device *netdev)
15781578
static int nicvf_change_mtu(struct net_device *netdev, int new_mtu)
15791579
{
15801580
struct nicvf *nic = netdev_priv(netdev);
1581-
int orig_mtu = netdev->mtu;
15821581

15831582
/* For now just support only the usual MTU sized frames,
15841583
* plus some headroom for VLAN, QinQ.
@@ -1589,15 +1588,10 @@ static int nicvf_change_mtu(struct net_device *netdev, int new_mtu)
15891588
return -EINVAL;
15901589
}
15911590

1592-
WRITE_ONCE(netdev->mtu, new_mtu);
1593-
1594-
if (!netif_running(netdev))
1595-
return 0;
1596-
1597-
if (nicvf_update_hw_max_frs(nic, new_mtu)) {
1598-
netdev->mtu = orig_mtu;
1591+
if (netif_running(netdev) && nicvf_update_hw_max_frs(nic, new_mtu))
15991592
return -EINVAL;
1600-
}
1593+
1594+
WRITE_ONCE(netdev->mtu, new_mtu);
16011595

16021596
return 0;
16031597
}

drivers/net/ethernet/renesas/rtsn.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,7 +1259,12 @@ static int rtsn_probe(struct platform_device *pdev)
12591259
priv = netdev_priv(ndev);
12601260
priv->pdev = pdev;
12611261
priv->ndev = ndev;
1262+
12621263
priv->ptp_priv = rcar_gen4_ptp_alloc(pdev);
1264+
if (!priv->ptp_priv) {
1265+
ret = -ENOMEM;
1266+
goto error_free;
1267+
}
12631268

12641269
spin_lock_init(&priv->lock);
12651270
platform_set_drvdata(pdev, priv);

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

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -364,19 +364,17 @@ static int dwxgmac2_dma_interrupt(struct stmmac_priv *priv,
364364
}
365365

366366
/* TX/RX NORMAL interrupts */
367-
if (likely(intr_status & XGMAC_NIS)) {
368-
if (likely(intr_status & XGMAC_RI)) {
369-
u64_stats_update_begin(&stats->syncp);
370-
u64_stats_inc(&stats->rx_normal_irq_n[chan]);
371-
u64_stats_update_end(&stats->syncp);
372-
ret |= handle_rx;
373-
}
374-
if (likely(intr_status & (XGMAC_TI | XGMAC_TBU))) {
375-
u64_stats_update_begin(&stats->syncp);
376-
u64_stats_inc(&stats->tx_normal_irq_n[chan]);
377-
u64_stats_update_end(&stats->syncp);
378-
ret |= handle_tx;
379-
}
367+
if (likely(intr_status & XGMAC_RI)) {
368+
u64_stats_update_begin(&stats->syncp);
369+
u64_stats_inc(&stats->rx_normal_irq_n[chan]);
370+
u64_stats_update_end(&stats->syncp);
371+
ret |= handle_rx;
372+
}
373+
if (likely(intr_status & (XGMAC_TI | XGMAC_TBU))) {
374+
u64_stats_update_begin(&stats->syncp);
375+
u64_stats_inc(&stats->tx_normal_irq_n[chan]);
376+
u64_stats_update_end(&stats->syncp);
377+
ret |= handle_tx;
380378
}
381379

382380
/* Clear interrupts */

drivers/net/ethernet/ti/am65-cpsw-nuss.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -856,8 +856,6 @@ static struct sk_buff *am65_cpsw_build_skb(void *page_addr,
856856
{
857857
struct sk_buff *skb;
858858

859-
len += AM65_CPSW_HEADROOM;
860-
861859
skb = build_skb(page_addr, len);
862860
if (unlikely(!skb))
863861
return NULL;
@@ -1344,7 +1342,7 @@ static int am65_cpsw_nuss_rx_packets(struct am65_cpsw_rx_flow *flow,
13441342
}
13451343

13461344
skb = am65_cpsw_build_skb(page_addr, ndev,
1347-
AM65_CPSW_MAX_PACKET_SIZE, headroom);
1345+
PAGE_SIZE, headroom);
13481346
if (unlikely(!skb)) {
13491347
new_page = page;
13501348
goto requeue;

drivers/net/phy/qcom/at803x.c

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@
2626

2727
#define AT803X_LED_CONTROL 0x18
2828

29-
#define AT803X_PHY_MMD3_WOL_CTRL 0x8012
30-
#define AT803X_WOL_EN BIT(5)
31-
3229
#define AT803X_REG_CHIP_CONFIG 0x1f
3330
#define AT803X_BT_BX_REG_SEL 0x8000
3431

@@ -866,30 +863,6 @@ static int at8031_config_init(struct phy_device *phydev)
866863
return at803x_config_init(phydev);
867864
}
868865

869-
static int at8031_set_wol(struct phy_device *phydev,
870-
struct ethtool_wolinfo *wol)
871-
{
872-
int ret;
873-
874-
/* First setup MAC address and enable WOL interrupt */
875-
ret = at803x_set_wol(phydev, wol);
876-
if (ret)
877-
return ret;
878-
879-
if (wol->wolopts & WAKE_MAGIC)
880-
/* Enable WOL function for 1588 */
881-
ret = phy_modify_mmd(phydev, MDIO_MMD_PCS,
882-
AT803X_PHY_MMD3_WOL_CTRL,
883-
0, AT803X_WOL_EN);
884-
else
885-
/* Disable WoL function for 1588 */
886-
ret = phy_modify_mmd(phydev, MDIO_MMD_PCS,
887-
AT803X_PHY_MMD3_WOL_CTRL,
888-
AT803X_WOL_EN, 0);
889-
890-
return ret;
891-
}
892-
893866
static int at8031_config_intr(struct phy_device *phydev)
894867
{
895868
struct at803x_priv *priv = phydev->priv;

0 commit comments

Comments
 (0)