Skip to content

Commit 8e621c9

Browse files
committed
Merge tag 'net-6.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from IPsec and wireless. Previous releases - regressions: - prevent NULL deref in generic_hwtstamp_ioctl_lower(), newer APIs don't populate all the pointers in the request - phylink: add missing supported link modes for the fixed-link - mptcp: fix false positive warning in mptcp_pm_nl_rm_addr Previous releases - always broken: - openvswitch: remove never-working support for setting NSH fields - xfrm: number of fixes for error paths of xfrm_state creation/ modification/deletion - xfrm: fixes for offload - fix the determination of the protocol of the inner packet - don't push locally generated packets directly to L2 tunnel mode offloading, they still need processing from the standard xfrm path - mptcp: fix a couple of corner cases in fallback and fastclose handling - wifi: rtw89: hw_scan: prevent connections from getting stuck, work around apparent bug in FW by tweaking messages we send - af_unix: fix duplicate data if PEEK w/ peek_offset needs to wait - veth: more robust handing of race to avoid txq getting stuck - eth: ps3_gelic_net: handle skb allocation failures" * tag 'net-6.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (47 commits) vsock: Ignore signal/timeout on connect() if already established be2net: pass wrb_params in case of OS2BMC l2tp: reset skb control buffer on xmit net: dsa: microchip: lan937x: Fix RGMII delay tuning selftests: mptcp: add a check for 'add_addr_accepted' mptcp: fix address removal logic in mptcp_pm_nl_rm_addr selftests: mptcp: join: userspace: longer timeout selftests: mptcp: join: endpoints: longer timeout selftests: mptcp: join: fastclose: remove flaky marks mptcp: fix duplicate reset on fastclose mptcp: decouple mptcp fastclose from tcp close mptcp: do not fallback when OoO is present mptcp: fix premature close in case of fallback mptcp: avoid unneeded subflow-level drops mptcp: fix ack generation for fallback msk wifi: rtw89: hw_scan: Don't let the operating channel be last net: phylink: add missing supported link modes for the fixed-link selftest: af_unix: Add test for SO_PEEK_OFF. af_unix: Read sk_peek_offset() again after sleeping in unix_stream_read_generic(). net/mlx5: Clean up only new IRQ glue on request_irq() failure ...
2 parents 23cb64f + 002541e commit 8e621c9

File tree

43 files changed

+521
-252
lines changed

Some content is hidden

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

43 files changed

+521
-252
lines changed

MAINTAINERS

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9266,7 +9266,6 @@ M: Ido Schimmel <[email protected]>
92669266
92679267
92689268
S: Maintained
9269-
W: http://www.linuxfoundation.org/en/Net:Bridge
92709269
F: include/linux/if_bridge.h
92719270
F: include/uapi/linux/if_bridge.h
92729271
F: include/linux/netfilter_bridge/

drivers/net/dsa/hirschmann/hellcreek_ptp.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,8 +376,18 @@ static int hellcreek_led_setup(struct hellcreek *hellcreek)
376376
hellcreek_set_brightness(hellcreek, STATUS_OUT_IS_GM, 1);
377377

378378
/* Register both leds */
379-
led_classdev_register(hellcreek->dev, &hellcreek->led_sync_good);
380-
led_classdev_register(hellcreek->dev, &hellcreek->led_is_gm);
379+
ret = led_classdev_register(hellcreek->dev, &hellcreek->led_sync_good);
380+
if (ret) {
381+
dev_err(hellcreek->dev, "Failed to register sync_good LED\n");
382+
goto out;
383+
}
384+
385+
ret = led_classdev_register(hellcreek->dev, &hellcreek->led_is_gm);
386+
if (ret) {
387+
dev_err(hellcreek->dev, "Failed to register is_gm LED\n");
388+
led_classdev_unregister(&hellcreek->led_sync_good);
389+
goto out;
390+
}
381391

382392
ret = 0;
383393

drivers/net/dsa/microchip/lan937x_main.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,7 @@ static void lan937x_set_tune_adj(struct ksz_device *dev, int port,
540540
ksz_pread16(dev, port, reg, &data16);
541541

542542
/* Update tune Adjust */
543+
data16 &= ~PORT_TUNE_ADJ;
543544
data16 |= FIELD_PREP(PORT_TUNE_ADJ, val);
544545
ksz_pwrite16(dev, port, reg, data16);
545546

drivers/net/ethernet/airoha/airoha_ppe.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ static int airoha_ppe_foe_entry_prepare(struct airoha_eth *eth,
282282
if (!airoha_is_valid_gdm_port(eth, port))
283283
return -EINVAL;
284284

285-
if (dsa_port >= 0)
285+
if (dsa_port >= 0 || eth->ports[1])
286286
pse_port = port->id == 4 ? FE_PSE_PORT_GDM4
287287
: port->id;
288288
else

drivers/net/ethernet/emulex/benet/be_main.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,7 +1296,8 @@ static void be_xmit_flush(struct be_adapter *adapter, struct be_tx_obj *txo)
12961296
(adapter->bmc_filt_mask & BMC_FILT_MULTICAST)
12971297

12981298
static bool be_send_pkt_to_bmc(struct be_adapter *adapter,
1299-
struct sk_buff **skb)
1299+
struct sk_buff **skb,
1300+
struct be_wrb_params *wrb_params)
13001301
{
13011302
struct ethhdr *eh = (struct ethhdr *)(*skb)->data;
13021303
bool os2bmc = false;
@@ -1360,7 +1361,7 @@ static bool be_send_pkt_to_bmc(struct be_adapter *adapter,
13601361
* to BMC, asic expects the vlan to be inline in the packet.
13611362
*/
13621363
if (os2bmc)
1363-
*skb = be_insert_vlan_in_pkt(adapter, *skb, NULL);
1364+
*skb = be_insert_vlan_in_pkt(adapter, *skb, wrb_params);
13641365

13651366
return os2bmc;
13661367
}
@@ -1387,7 +1388,7 @@ static netdev_tx_t be_xmit(struct sk_buff *skb, struct net_device *netdev)
13871388
/* if os2bmc is enabled and if the pkt is destined to bmc,
13881389
* enqueue the pkt a 2nd time with mgmt bit set.
13891390
*/
1390-
if (be_send_pkt_to_bmc(adapter, &skb)) {
1391+
if (be_send_pkt_to_bmc(adapter, &skb, &wrb_params)) {
13911392
BE_WRB_F_SET(wrb_params.features, OS2BMC, 1);
13921393
wrb_cnt = be_xmit_enqueue(adapter, txo, skb, &wrb_params);
13931394
if (unlikely(!wrb_cnt))

drivers/net/ethernet/intel/ice/ice_ptp.c

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3246,7 +3246,7 @@ void ice_ptp_init(struct ice_pf *pf)
32463246

32473247
err = ice_ptp_init_port(pf, &ptp->port);
32483248
if (err)
3249-
goto err_exit;
3249+
goto err_clean_pf;
32503250

32513251
/* Start the PHY timestamping block */
32523252
ice_ptp_reset_phy_timestamping(pf);
@@ -3263,13 +3263,19 @@ void ice_ptp_init(struct ice_pf *pf)
32633263
dev_info(ice_pf_to_dev(pf), "PTP init successful\n");
32643264
return;
32653265

3266+
err_clean_pf:
3267+
mutex_destroy(&ptp->port.ps_lock);
3268+
ice_ptp_cleanup_pf(pf);
32663269
err_exit:
32673270
/* If we registered a PTP clock, release it */
32683271
if (pf->ptp.clock) {
32693272
ptp_clock_unregister(ptp->clock);
32703273
pf->ptp.clock = NULL;
32713274
}
3272-
ptp->state = ICE_PTP_ERROR;
3275+
/* Keep ICE_PTP_UNINIT state to avoid ambiguity at driver unload
3276+
* and to avoid duplicated resources release.
3277+
*/
3278+
ptp->state = ICE_PTP_UNINIT;
32733279
dev_err(ice_pf_to_dev(pf), "PTP failed %d\n", err);
32743280
}
32753281

@@ -3282,9 +3288,19 @@ void ice_ptp_init(struct ice_pf *pf)
32823288
*/
32833289
void ice_ptp_release(struct ice_pf *pf)
32843290
{
3285-
if (pf->ptp.state != ICE_PTP_READY)
3291+
if (pf->ptp.state == ICE_PTP_UNINIT)
32863292
return;
32873293

3294+
if (pf->ptp.state != ICE_PTP_READY) {
3295+
mutex_destroy(&pf->ptp.port.ps_lock);
3296+
ice_ptp_cleanup_pf(pf);
3297+
if (pf->ptp.clock) {
3298+
ptp_clock_unregister(pf->ptp.clock);
3299+
pf->ptp.clock = NULL;
3300+
}
3301+
return;
3302+
}
3303+
32883304
pf->ptp.state = ICE_PTP_UNINIT;
32893305

32903306
/* Disable timestamping for both Tx and Rx */

drivers/net/ethernet/intel/idpf/idpf_main.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ static void idpf_remove(struct pci_dev *pdev)
6363
destroy_workqueue(adapter->vc_event_wq);
6464

6565
for (i = 0; i < adapter->max_vports; i++) {
66+
if (!adapter->vport_config[i])
67+
continue;
6668
kfree(adapter->vport_config[i]->user_config.q_coalesce);
6769
kfree(adapter->vport_config[i]);
6870
adapter->vport_config[i] = NULL;

drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -324,10 +324,8 @@ struct mlx5_irq *mlx5_irq_alloc(struct mlx5_irq_pool *pool, int i,
324324
free_irq(irq->map.virq, &irq->nh);
325325
err_req_irq:
326326
#ifdef CONFIG_RFS_ACCEL
327-
if (i && rmap && *rmap) {
328-
free_irq_cpu_rmap(*rmap);
329-
*rmap = NULL;
330-
}
327+
if (i && rmap && *rmap)
328+
irq_cpu_rmap_remove(*rmap, irq->map.virq);
331329
err_irq_rmap:
332330
#endif
333331
if (i && pci_msix_can_alloc_dyn(dev->pdev))

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,8 @@ int mlxsw_linecard_devlink_info_get(struct mlxsw_linecard *linecard,
601601
err = devlink_info_version_fixed_put(req,
602602
DEVLINK_INFO_VERSION_GENERIC_FW_PSID,
603603
info->psid);
604+
if (err)
605+
goto unlock;
604606

605607
sprintf(buf, "%u.%u.%u", info->fw_major, info->fw_minor,
606608
info->fw_sub_minor);

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -830,8 +830,10 @@ int mlxsw_sp_flower_stats(struct mlxsw_sp *mlxsw_sp,
830830
return -EINVAL;
831831

832832
rule = mlxsw_sp_acl_rule_lookup(mlxsw_sp, ruleset, f->cookie);
833-
if (!rule)
834-
return -EINVAL;
833+
if (!rule) {
834+
err = -EINVAL;
835+
goto err_rule_get_stats;
836+
}
835837

836838
err = mlxsw_sp_acl_rule_get_stats(mlxsw_sp, rule, &packets, &bytes,
837839
&drops, &lastuse, &used_hw_stats);

0 commit comments

Comments
 (0)