Skip to content

Commit ed23734

Browse files
committed
Merge tag 'net-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from netfilter. Current release - regressions: - sched: act_pedit: free pedit keys on bail from offset check Current release - new code bugs: - pds_core: - Kconfig fixes (DEBUGFS and AUXILIARY_BUS) - fix mutex double unlock in error path Previous releases - regressions: - sched: cls_api: remove block_cb from driver_list before freeing - nf_tables: fix ct untracked match breakage - eth: mtk_eth_soc: drop generic vlan rx offload - sched: flower: fix error handler on replace Previous releases - always broken: - tcp: fix skb_copy_ubufs() vs BIG TCP - ipv6: fix skb hash for some RST packets - af_packet: don't send zero-byte data in packet_sendmsg_spkt() - rxrpc: timeout handling fixes after moving client call connection to the I/O thread - ixgbe: fix panic during XDP_TX with > 64 CPUs - igc: RMW the SRRCTL register to prevent losing timestamp config - dsa: mt7530: fix corrupt frames using TRGMII on 40 MHz XTAL MT7621 - r8152: - fix flow control issue of RTL8156A - fix the poor throughput for 2.5G devices - move setting r8153b_rx_agg_chg_indicate() to fix coalescing - enable autosuspend - ncsi: clear Tx enable mode when handling a Config required AEN - octeontx2-pf: macsec: fixes for CN10KB ASIC rev Misc: - 9p: remove INET dependency" * tag 'net-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (69 commits) net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop() pds_core: fix mutex double unlock in error path net/sched: flower: fix error handler on replace Revert "net/sched: flower: Fix wrong handle assignment during filter change" net/sched: flower: fix filter idr initialization net: fec: correct the counting of XDP sent frames bonding: add xdp_features support net: enetc: check the index of the SFI rather than the handle sfc: Add back mailing list virtio_net: suppress cpu stall when free_unused_bufs ice: block LAN in case of VF to VF offload net: dsa: mt7530: fix network connectivity with multiple CPU ports net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621 9p: Remove INET dependency netfilter: nf_tables: fix ct untracked match breakage af_packet: Don't send zero-byte data in packet_sendmsg_spkt(). igc: read before write to SRRCTL register pds_core: add AUXILIARY_BUS and NET_DEVLINK to Kconfig pds_core: remove CONFIG_DEBUG_FS from makefile ionic: catch failure from devlink_alloc ...
2 parents a5e2190 + 644bca1 commit ed23734

Some content is hidden

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

84 files changed

+735
-407
lines changed

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19059,6 +19059,7 @@ SFC NETWORK DRIVER
1905919059
M: Edward Cree <ecree.xilinx@gmail.com>
1906019060
M: Martin Habets <habetsm.xilinx@gmail.com>
1906119061
L: netdev@vger.kernel.org
19062+
L: linux-net-drivers@amd.com
1906219063
S: Supported
1906319064
F: Documentation/networking/devlink/sfc.rst
1906419065
F: drivers/net/ethernet/sfc/

drivers/isdn/mISDN/dsp_cmx.c

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -141,17 +141,6 @@
141141
/*#define CMX_DELAY_DEBUG * gives rx-buffer delay overview */
142142
/*#define CMX_TX_DEBUG * massive read/write on tx-buffer with content */
143143

144-
static inline int
145-
count_list_member(struct list_head *head)
146-
{
147-
int cnt = 0;
148-
struct list_head *m;
149-
150-
list_for_each(m, head)
151-
cnt++;
152-
return cnt;
153-
}
154-
155144
/*
156145
* debug cmx memory structure
157146
*/
@@ -1672,7 +1661,7 @@ dsp_cmx_send(void *arg)
16721661
mustmix = 0;
16731662
members = 0;
16741663
if (conf) {
1675-
members = count_list_member(&conf->mlist);
1664+
members = list_count_nodes(&conf->mlist);
16761665
#ifdef CMX_CONF_DEBUG
16771666
if (conf->software && members > 1)
16781667
#else
@@ -1695,7 +1684,7 @@ dsp_cmx_send(void *arg)
16951684
/* loop all members that require conference mixing */
16961685
list_for_each_entry(conf, &conf_ilist, list) {
16971686
/* count members and check hardware */
1698-
members = count_list_member(&conf->mlist);
1687+
members = list_count_nodes(&conf->mlist);
16991688
#ifdef CMX_CONF_DEBUG
17001689
if (conf->software && members > 1) {
17011690
#else

drivers/net/bonding/bond_main.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1789,6 +1789,26 @@ static void bond_ether_setup(struct net_device *bond_dev)
17891789
bond_dev->priv_flags &= ~IFF_TX_SKB_SHARING;
17901790
}
17911791

1792+
void bond_xdp_set_features(struct net_device *bond_dev)
1793+
{
1794+
struct bonding *bond = netdev_priv(bond_dev);
1795+
xdp_features_t val = NETDEV_XDP_ACT_MASK;
1796+
struct list_head *iter;
1797+
struct slave *slave;
1798+
1799+
ASSERT_RTNL();
1800+
1801+
if (!bond_xdp_check(bond)) {
1802+
xdp_clear_features_flag(bond_dev);
1803+
return;
1804+
}
1805+
1806+
bond_for_each_slave(bond, slave, iter)
1807+
val &= slave->dev->xdp_features;
1808+
1809+
xdp_set_features_flag(bond_dev, val);
1810+
}
1811+
17921812
/* enslave device <slave> to bond device <master> */
17931813
int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
17941814
struct netlink_ext_ack *extack)
@@ -2236,6 +2256,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
22362256
bpf_prog_inc(bond->xdp_prog);
22372257
}
22382258

2259+
bond_xdp_set_features(bond_dev);
2260+
22392261
slave_info(bond_dev, slave_dev, "Enslaving as %s interface with %s link\n",
22402262
bond_is_active_slave(new_slave) ? "an active" : "a backup",
22412263
new_slave->link != BOND_LINK_DOWN ? "an up" : "a down");
@@ -2483,6 +2505,7 @@ static int __bond_release_one(struct net_device *bond_dev,
24832505
if (!netif_is_bond_master(slave_dev))
24842506
slave_dev->priv_flags &= ~IFF_BONDING;
24852507

2508+
bond_xdp_set_features(bond_dev);
24862509
kobject_put(&slave->kobj);
24872510

24882511
return 0;
@@ -3930,6 +3953,9 @@ static int bond_slave_netdev_event(unsigned long event,
39303953
/* Propagate to master device */
39313954
call_netdevice_notifiers(event, slave->bond->dev);
39323955
break;
3956+
case NETDEV_XDP_FEAT_CHANGE:
3957+
bond_xdp_set_features(bond_dev);
3958+
break;
39333959
default:
39343960
break;
39353961
}
@@ -5874,6 +5900,9 @@ void bond_setup(struct net_device *bond_dev)
58745900
if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP)
58755901
bond_dev->features |= BOND_XFRM_FEATURES;
58765902
#endif /* CONFIG_XFRM_OFFLOAD */
5903+
5904+
if (bond_xdp_check(bond))
5905+
bond_dev->xdp_features = NETDEV_XDP_ACT_MASK;
58775906
}
58785907

58795908
/* Destroy a bonding device.

drivers/net/bonding/bond_options.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -877,6 +877,8 @@ static int bond_option_mode_set(struct bonding *bond,
877877
netdev_update_features(bond->dev);
878878
}
879879

880+
bond_xdp_set_features(bond->dev);
881+
880882
return 0;
881883
}
882884

drivers/net/dsa/mt7530.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -426,9 +426,9 @@ mt7530_pad_clk_setup(struct dsa_switch *ds, phy_interface_t interface)
426426
else
427427
ssc_delta = 0x87;
428428
if (priv->id == ID_MT7621) {
429-
/* PLL frequency: 150MHz: 1.2GBit */
429+
/* PLL frequency: 125MHz: 1.0GBit */
430430
if (xtal == HWTRAP_XTAL_40MHZ)
431-
ncpo1 = 0x0780;
431+
ncpo1 = 0x0640;
432432
if (xtal == HWTRAP_XTAL_25MHZ)
433433
ncpo1 = 0x0a00;
434434
} else { /* PLL frequency: 250MHz: 2.0Gbit */
@@ -1002,9 +1002,9 @@ mt753x_cpu_port_enable(struct dsa_switch *ds, int port)
10021002
mt7530_write(priv, MT7530_PVC_P(port),
10031003
PORT_SPEC_TAG);
10041004

1005-
/* Disable flooding by default */
1006-
mt7530_rmw(priv, MT7530_MFC, BC_FFP_MASK | UNM_FFP_MASK | UNU_FFP_MASK,
1007-
BC_FFP(BIT(port)) | UNM_FFP(BIT(port)) | UNU_FFP(BIT(port)));
1005+
/* Enable flooding on the CPU port */
1006+
mt7530_set(priv, MT7530_MFC, BC_FFP(BIT(port)) | UNM_FFP(BIT(port)) |
1007+
UNU_FFP(BIT(port)));
10081008

10091009
/* Set CPU port number */
10101010
if (priv->id == ID_MT7621)
@@ -2367,6 +2367,10 @@ mt7531_setup_common(struct dsa_switch *ds)
23672367
/* Enable and reset MIB counters */
23682368
mt7530_mib_reset(ds);
23692369

2370+
/* Disable flooding on all ports */
2371+
mt7530_clear(priv, MT7530_MFC, BC_FFP_MASK | UNM_FFP_MASK |
2372+
UNU_FFP_MASK);
2373+
23702374
for (i = 0; i < MT7530_NUM_PORTS; i++) {
23712375
/* Disable forwarding by default on all ports */
23722376
mt7530_rmw(priv, MT7530_PCR_P(i), PCR_MATRIX_MASK,

drivers/net/dsa/mv88e6xxx/chip.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5194,6 +5194,7 @@ static const struct mv88e6xxx_ops mv88e6321_ops = {
51945194
.set_cpu_port = mv88e6095_g1_set_cpu_port,
51955195
.set_egress_port = mv88e6095_g1_set_egress_port,
51965196
.watchdog_ops = &mv88e6390_watchdog_ops,
5197+
.mgmt_rsvd2cpu = mv88e6352_g2_mgmt_rsvd2cpu,
51975198
.reset = mv88e6352_g1_reset,
51985199
.vtu_getnext = mv88e6185_g1_vtu_getnext,
51995200
.vtu_loadpurge = mv88e6185_g1_vtu_loadpurge,

drivers/net/ethernet/amd/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,8 @@ config AMD_XGBE_HAVE_ECC
189189
config PDS_CORE
190190
tristate "AMD/Pensando Data Systems Core Device Support"
191191
depends on 64BIT && PCI
192+
select AUXILIARY_BUS
193+
select NET_DEVLINK
192194
help
193195
This enables the support for the AMD/Pensando Core device family of
194196
adapters. More specific information on this driver can be

drivers/net/ethernet/amd/pds_core/Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,5 @@ pds_core-y := main.o \
99
dev.o \
1010
adminq.o \
1111
core.o \
12+
debugfs.o \
1213
fw.o
13-
14-
pds_core-$(CONFIG_DEBUG_FS) += debugfs.o

drivers/net/ethernet/amd/pds_core/main.c

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -244,11 +244,16 @@ static int pdsc_init_pf(struct pdsc *pdsc)
244244
set_bit(PDSC_S_FW_DEAD, &pdsc->state);
245245

246246
err = pdsc_setup(pdsc, PDSC_SETUP_INIT);
247-
if (err)
247+
if (err) {
248+
mutex_unlock(&pdsc->config_lock);
248249
goto err_out_unmap_bars;
250+
}
251+
249252
err = pdsc_start(pdsc);
250-
if (err)
253+
if (err) {
254+
mutex_unlock(&pdsc->config_lock);
251255
goto err_out_teardown;
256+
}
252257

253258
mutex_unlock(&pdsc->config_lock);
254259

@@ -257,13 +262,15 @@ static int pdsc_init_pf(struct pdsc *pdsc)
257262
err = devl_params_register(dl, pdsc_dl_params,
258263
ARRAY_SIZE(pdsc_dl_params));
259264
if (err) {
265+
devl_unlock(dl);
260266
dev_warn(pdsc->dev, "Failed to register devlink params: %pe\n",
261267
ERR_PTR(err));
262-
goto err_out_unlock_dl;
268+
goto err_out_stop;
263269
}
264270

265271
hr = devl_health_reporter_create(dl, &pdsc_fw_reporter_ops, 0, pdsc);
266272
if (IS_ERR(hr)) {
273+
devl_unlock(dl);
267274
dev_warn(pdsc->dev, "Failed to create fw reporter: %pe\n", hr);
268275
err = PTR_ERR(hr);
269276
goto err_out_unreg_params;
@@ -279,15 +286,13 @@ static int pdsc_init_pf(struct pdsc *pdsc)
279286
return 0;
280287

281288
err_out_unreg_params:
282-
devl_params_unregister(dl, pdsc_dl_params,
283-
ARRAY_SIZE(pdsc_dl_params));
284-
err_out_unlock_dl:
285-
devl_unlock(dl);
289+
devlink_params_unregister(dl, pdsc_dl_params,
290+
ARRAY_SIZE(pdsc_dl_params));
291+
err_out_stop:
286292
pdsc_stop(pdsc);
287293
err_out_teardown:
288294
pdsc_teardown(pdsc, PDSC_TEARDOWN_REMOVING);
289295
err_out_unmap_bars:
290-
mutex_unlock(&pdsc->config_lock);
291296
del_timer_sync(&pdsc->wdtimer);
292297
if (pdsc->wq)
293298
destroy_workqueue(pdsc->wq);

drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,7 @@ static void aq_pci_shutdown(struct pci_dev *pdev)
379379
}
380380
}
381381

382+
#ifdef CONFIG_PM
382383
static int aq_suspend_common(struct device *dev)
383384
{
384385
struct aq_nic_s *nic = pci_get_drvdata(to_pci_dev(dev));
@@ -463,6 +464,7 @@ static const struct dev_pm_ops aq_pm_ops = {
463464
.restore = aq_pm_resume_restore,
464465
.thaw = aq_pm_thaw,
465466
};
467+
#endif
466468

467469
static struct pci_driver aq_pci_ops = {
468470
.name = AQ_CFG_DRV_NAME,

0 commit comments

Comments
 (0)