Skip to content

Commit 5e83793

Browse files
committed
Merge tag 'net-5.19-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from netfilter. Current release - new code bugs: - clear msg_get_inq in __sys_recvfrom() and __copy_msghdr_from_user() - mptcp: - invoke MP_FAIL response only when needed - fix shutdown vs fallback race - consistent map handling on failure - octeon_ep: use bitwise AND Previous releases - regressions: - tipc: move bc link creation back to tipc_node_create, fix NPD Previous releases - always broken: - tcp: add a missing nf_reset_ct() in 3WHS handling to prevent socket buffered skbs from keeping refcount on the conntrack module - ipv6: take care of disable_policy when restoring routes - tun: make sure to always disable and unlink NAPI instances - phy: don't trigger state machine while in suspend - netfilter: nf_tables: avoid skb access on nf_stolen - asix: fix "can't send until first packet is send" issue - usb: asix: do not force pause frames support - nxp-nci: don't issue a zero length i2c_master_read() Misc: - ncsi: allow use of proper "mellanox" DT vendor prefix - act_api: add a message for user space if any actions were already flushed before the error was hit" * tag 'net-5.19-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (55 commits) net: dsa: felix: fix race between reading PSFP stats and port stats selftest: tun: add test for NAPI dismantle net: tun: avoid disabling NAPI twice net: sparx5: mdb add/del handle non-sparx5 devices net: sfp: fix memory leak in sfp_probe() mlxsw: spectrum_router: Fix rollback in tunnel next hop init net: rose: fix UAF bugs caused by timer handler net: usb: ax88179_178a: Fix packet receiving net: bonding: fix use-after-free after 802.3ad slave unbind ipv6: fix lockdep splat in in6_dump_addrs() net: phy: ax88772a: fix lost pause advertisement configuration net: phy: Don't trigger state machine while in suspend usbnet: fix memory allocation in helpers selftests net: fix kselftest net fatal error NFC: nxp-nci: don't print header length mismatch on i2c error NFC: nxp-nci: Don't issue a zero length i2c_master_read() net: tipc: fix possible refcount leak in tipc_sk_create() nfc: nfcmrvl: Fix irq_of_parse_and_map() return value net: ipv6: unexport __init-annotated seg6_hmac_net_init() ipv6/sit: fix ipip6_tunnel_get_prl return value ...
2 parents 868f9f2 + 58bf4db commit 5e83793

Some content is hidden

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

58 files changed

+905
-254
lines changed

MAINTAINERS

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14397,9 +14397,8 @@ F: Documentation/devicetree/bindings/sound/nxp,tfa989x.yaml
1439714397
F: sound/soc/codecs/tfa989x.c
1439814398

1439914399
NXP-NCI NFC DRIVER
14400-
R: Charles Gorand <[email protected]>
1440114400
L: [email protected] (subscribers-only)
14402-
S: Supported
14401+
S: Orphan
1440314402
F: Documentation/devicetree/bindings/net/nfc/nxp,nci.yaml
1440414403
F: drivers/nfc/nxp-nci
1440514404

drivers/net/bonding/bond_3ad.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2228,7 +2228,8 @@ void bond_3ad_unbind_slave(struct slave *slave)
22282228
temp_aggregator->num_of_ports--;
22292229
if (__agg_active_ports(temp_aggregator) == 0) {
22302230
select_new_active_agg = temp_aggregator->is_active;
2231-
ad_clear_agg(temp_aggregator);
2231+
if (temp_aggregator->num_of_ports == 0)
2232+
ad_clear_agg(temp_aggregator);
22322233
if (select_new_active_agg) {
22332234
slave_info(bond->dev, slave->dev, "Removing an active aggregator\n");
22342235
/* select new active aggregator */

drivers/net/bonding/bond_alb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1302,12 +1302,12 @@ int bond_alb_initialize(struct bonding *bond, int rlb_enabled)
13021302
return res;
13031303

13041304
if (rlb_enabled) {
1305-
bond->alb_info.rlb_enabled = 1;
13061305
res = rlb_initialize(bond);
13071306
if (res) {
13081307
tlb_deinitialize(bond);
13091308
return res;
13101309
}
1310+
bond->alb_info.rlb_enabled = 1;
13111311
} else {
13121312
bond->alb_info.rlb_enabled = 0;
13131313
}

drivers/net/dsa/bcm_sf2.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,11 @@ static void bcm_sf2_sw_mac_link_up(struct dsa_switch *ds, int port,
878878
if (duplex == DUPLEX_FULL)
879879
reg |= DUPLX_MODE;
880880

881+
if (tx_pause)
882+
reg |= TXFLOW_CNTL;
883+
if (rx_pause)
884+
reg |= RXFLOW_CNTL;
885+
881886
core_writel(priv, reg, offset);
882887
}
883888

drivers/net/dsa/hirschmann/hellcreek_ptp.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,7 @@ static int hellcreek_led_setup(struct hellcreek *hellcreek)
300300
const char *label, *state;
301301
int ret = -EINVAL;
302302

303+
of_node_get(hellcreek->dev->of_node);
303304
leds = of_find_node_by_name(hellcreek->dev->of_node, "leds");
304305
if (!leds) {
305306
dev_err(hellcreek->dev, "No LEDs specified in device tree!\n");

drivers/net/dsa/ocelot/felix_vsc9959.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1886,6 +1886,8 @@ static void vsc9959_psfp_sgi_table_del(struct ocelot *ocelot,
18861886
static void vsc9959_psfp_counters_get(struct ocelot *ocelot, u32 index,
18871887
struct felix_stream_filter_counters *counters)
18881888
{
1889+
mutex_lock(&ocelot->stats_lock);
1890+
18891891
ocelot_rmw(ocelot, SYS_STAT_CFG_STAT_VIEW(index),
18901892
SYS_STAT_CFG_STAT_VIEW_M,
18911893
SYS_STAT_CFG);
@@ -1900,6 +1902,8 @@ static void vsc9959_psfp_counters_get(struct ocelot *ocelot, u32 index,
19001902
SYS_STAT_CFG_STAT_VIEW(index) |
19011903
SYS_STAT_CFG_STAT_CLEAR_SHOT(0x10),
19021904
SYS_STAT_CFG);
1905+
1906+
mutex_unlock(&ocelot->stats_lock);
19031907
}
19041908

19051909
static int vsc9959_psfp_filter_add(struct ocelot *ocelot, int port,

drivers/net/ethernet/marvell/octeon_ep/octep_regs_cn9k_pf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252

5353
#define CN93_SDP_EPF_RINFO_SRN(val) ((val) & 0xFF)
5454
#define CN93_SDP_EPF_RINFO_RPVF(val) (((val) >> 32) & 0xF)
55-
#define CN93_SDP_EPF_RINFO_NVFS(val) (((val) >> 48) && 0xFF)
55+
#define CN93_SDP_EPF_RINFO_NVFS(val) (((val) >> 48) & 0xFF)
5656

5757
/* SDP Function select */
5858
#define CN93_SDP_FUNC_SEL_EPF_BIT_POS 8

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4415,6 +4415,8 @@ static int mlxsw_sp_nexthop4_init(struct mlxsw_sp *mlxsw_sp,
44154415
return 0;
44164416

44174417
err_nexthop_neigh_init:
4418+
list_del(&nh->router_list_node);
4419+
mlxsw_sp_nexthop_counter_free(mlxsw_sp, nh);
44184420
mlxsw_sp_nexthop_remove(mlxsw_sp, nh);
44194421
return err;
44204422
}
@@ -6740,6 +6742,7 @@ static int mlxsw_sp_nexthop6_init(struct mlxsw_sp *mlxsw_sp,
67406742
const struct fib6_info *rt)
67416743
{
67426744
struct net_device *dev = rt->fib6_nh->fib_nh_dev;
6745+
int err;
67436746

67446747
nh->nhgi = nh_grp->nhgi;
67456748
nh->nh_weight = rt->fib6_nh->fib_nh_weight;
@@ -6755,7 +6758,16 @@ static int mlxsw_sp_nexthop6_init(struct mlxsw_sp *mlxsw_sp,
67556758
return 0;
67566759
nh->ifindex = dev->ifindex;
67576760

6758-
return mlxsw_sp_nexthop_type_init(mlxsw_sp, nh, dev);
6761+
err = mlxsw_sp_nexthop_type_init(mlxsw_sp, nh, dev);
6762+
if (err)
6763+
goto err_nexthop_type_init;
6764+
6765+
return 0;
6766+
6767+
err_nexthop_type_init:
6768+
list_del(&nh->router_list_node);
6769+
mlxsw_sp_nexthop_counter_free(mlxsw_sp, nh);
6770+
return err;
67596771
}
67606772

67616773
static void mlxsw_sp_nexthop6_fini(struct mlxsw_sp *mlxsw_sp,

drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,9 @@ static int sparx5_handle_port_mdb_add(struct net_device *dev,
396396
u32 mact_entry;
397397
int res, err;
398398

399+
if (!sparx5_netdevice_check(dev))
400+
return -EOPNOTSUPP;
401+
399402
if (netif_is_bridge_master(v->obj.orig_dev)) {
400403
sparx5_mact_learn(spx5, PGID_CPU, v->addr, v->vid);
401404
return 0;
@@ -466,6 +469,9 @@ static int sparx5_handle_port_mdb_del(struct net_device *dev,
466469
u32 mact_entry, res, pgid_entry[3];
467470
int err;
468471

472+
if (!sparx5_netdevice_check(dev))
473+
return -EOPNOTSUPP;
474+
469475
if (netif_is_bridge_master(v->obj.orig_dev)) {
470476
sparx5_mact_forget(spx5, v->addr, v->vid);
471477
return 0;

drivers/net/ethernet/smsc/epic100.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1515,14 +1515,14 @@ static void epic_remove_one(struct pci_dev *pdev)
15151515
struct net_device *dev = pci_get_drvdata(pdev);
15161516
struct epic_private *ep = netdev_priv(dev);
15171517

1518+
unregister_netdev(dev);
15181519
dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, ep->tx_ring,
15191520
ep->tx_ring_dma);
15201521
dma_free_coherent(&pdev->dev, RX_TOTAL_SIZE, ep->rx_ring,
15211522
ep->rx_ring_dma);
1522-
unregister_netdev(dev);
15231523
pci_iounmap(pdev, ep->ioaddr);
1524-
pci_release_regions(pdev);
15251524
free_netdev(dev);
1525+
pci_release_regions(pdev);
15261526
pci_disable_device(pdev);
15271527
/* pci_power_off(pdev, -1); */
15281528
}

0 commit comments

Comments
 (0)