Skip to content

Commit 8a28a0b

Browse files
committed
Merge tag 'net-6.4-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Including fixes from ipsec, bpf, mptcp and netfilter. Current release - regressions: - netfilter: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain - eth: mlx5e: - fix scheduling of IPsec ASO query while in atomic - free IRQ rmap and notifier on kernel shutdown Current release - new code bugs: - phy: manual remove LEDs to ensure correct ordering Previous releases - regressions: - mptcp: fix possible divide by zero in recvmsg() - dsa: revert "net: phy: dp83867: perform soft reset and retain established link" Previous releases - always broken: - sched: netem: acquire qdisc lock in netem_change() - bpf: - fix verifier id tracking of scalars on spill - fix NULL dereference on exceptions - accept function names that contain dots - netfilter: disallow element updates of bound anonymous sets - mptcp: ensure listener is unhashed before updating the sk status - xfrm: - add missed call to delete offloaded policies - fix inbound ipv4/udp/esp packets to UDPv6 dualstack sockets - selftests: fixes for FIPS mode - dsa: mt7530: fix multiple CPU ports, BPDU and LLDP handling - eth: sfc: use budget for TX completions Misc: - wifi: iwlwifi: add support for SO-F device with PCI id 0x7AF0" * tag 'net-6.4-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (74 commits) revert "net: align SO_RCVMARK required privileges with SO_MARK" net: wwan: iosm: Convert single instance struct member to flexible array sch_netem: acquire qdisc lock in netem_change() selftests: forwarding: Fix race condition in mirror installation wifi: mac80211: report all unusable beacon frames mptcp: ensure listener is unhashed before updating the sk status mptcp: drop legacy code around RX EOF mptcp: consolidate fallback and non fallback state machine mptcp: fix possible list corruption on passive MPJ mptcp: fix possible divide by zero in recvmsg() mptcp: handle correctly disconnect() failures bpf: Force kprobe multi expected_attach_type for kprobe_multi link bpf/btf: Accept function names that contain dots Revert "net: phy: dp83867: perform soft reset and retain established link" net: mdio: fix the wrong parameters netfilter: nf_tables: Fix for deleting base chains with payload netfilter: nfnetlink_osf: fix module autoload netfilter: nf_tables: drop module reference after updating chain netfilter: nf_tables: disallow timeout for anonymous sets netfilter: nf_tables: disallow updates of anonymous sets ...
2 parents 412d070 + 2ba7e7e commit 8a28a0b

Some content is hidden

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

78 files changed

+1178
-351
lines changed

MAINTAINERS

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9972,8 +9972,9 @@ M: Miquel Raynal <[email protected]>
99729972
99739973
S: Maintained
99749974
W: https://linux-wpan.org/
9975-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan.git
9976-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan-next.git
9975+
Q: https://patchwork.kernel.org/project/linux-wpan/list/
9976+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/wpan/wpan.git
9977+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/wpan/wpan-next.git
99779978
F: Documentation/networking/ieee802154.rst
99789979
F: drivers/net/ieee802154/
99799980
F: include/linux/ieee802154.h
@@ -13269,10 +13270,11 @@ F: drivers/memory/mtk-smi.c
1326913270
F: include/soc/mediatek/smi.h
1327013271

1327113272
MEDIATEK SWITCH DRIVER
13272-
M: Sean Wang <[email protected]>
13273+
M: Arınç ÜNAL <[email protected]>
13274+
M: Daniel Golle <[email protected]>
1327313275
M: Landen Chao <[email protected]>
1327413276
M: DENG Qingfang <[email protected]>
13275-
M: Daniel Golle <[email protected]>
13277+
M: Sean Wang <[email protected]>
1327613278
1327713279
S: Maintained
1327813280
F: drivers/net/dsa/mt7530-mdio.c

arch/x86/net/bpf_jit_comp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2570,7 +2570,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
25702570
}
25712571

25722572
if (bpf_jit_enable > 1)
2573-
bpf_jit_dump(prog->len, proglen, pass + 1, image);
2573+
bpf_jit_dump(prog->len, proglen, pass + 1, rw_image);
25742574

25752575
if (image) {
25762576
if (!prog->is_func || extra_pass) {

drivers/net/dsa/mt7530.c

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,20 @@ static void mt7530_pll_setup(struct mt7530_priv *priv)
399399
core_set(priv, CORE_TRGMII_GSW_CLK_CG, REG_GSWCK_EN);
400400
}
401401

402+
/* If port 6 is available as a CPU port, always prefer that as the default,
403+
* otherwise don't care.
404+
*/
405+
static struct dsa_port *
406+
mt753x_preferred_default_local_cpu_port(struct dsa_switch *ds)
407+
{
408+
struct dsa_port *cpu_dp = dsa_to_port(ds, 6);
409+
410+
if (dsa_port_is_cpu(cpu_dp))
411+
return cpu_dp;
412+
413+
return NULL;
414+
}
415+
402416
/* Setup port 6 interface mode and TRGMII TX circuit */
403417
static int
404418
mt7530_pad_clk_setup(struct dsa_switch *ds, phy_interface_t interface)
@@ -985,6 +999,18 @@ static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface)
985999
mutex_unlock(&priv->reg_mutex);
9861000
}
9871001

1002+
static void
1003+
mt753x_trap_frames(struct mt7530_priv *priv)
1004+
{
1005+
/* Trap BPDUs to the CPU port(s) */
1006+
mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK,
1007+
MT753X_BPDU_CPU_ONLY);
1008+
1009+
/* Trap LLDP frames with :0E MAC DA to the CPU port(s) */
1010+
mt7530_rmw(priv, MT753X_RGAC2, MT753X_R0E_PORT_FW_MASK,
1011+
MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY));
1012+
}
1013+
9881014
static int
9891015
mt753x_cpu_port_enable(struct dsa_switch *ds, int port)
9901016
{
@@ -1007,9 +1033,16 @@ mt753x_cpu_port_enable(struct dsa_switch *ds, int port)
10071033
UNU_FFP(BIT(port)));
10081034

10091035
/* Set CPU port number */
1010-
if (priv->id == ID_MT7621)
1036+
if (priv->id == ID_MT7530 || priv->id == ID_MT7621)
10111037
mt7530_rmw(priv, MT7530_MFC, CPU_MASK, CPU_EN | CPU_PORT(port));
10121038

1039+
/* Add the CPU port to the CPU port bitmap for MT7531 and the switch on
1040+
* the MT7988 SoC. Trapped frames will be forwarded to the CPU port that
1041+
* is affine to the inbound user port.
1042+
*/
1043+
if (priv->id == ID_MT7531 || priv->id == ID_MT7988)
1044+
mt7530_set(priv, MT7531_CFC, MT7531_CPU_PMAP(BIT(port)));
1045+
10131046
/* CPU port gets connected to all user ports of
10141047
* the switch.
10151048
*/
@@ -2255,6 +2288,8 @@ mt7530_setup(struct dsa_switch *ds)
22552288

22562289
priv->p6_interface = PHY_INTERFACE_MODE_NA;
22572290

2291+
mt753x_trap_frames(priv);
2292+
22582293
/* Enable and reset MIB counters */
22592294
mt7530_mib_reset(ds);
22602295

@@ -2352,17 +2387,9 @@ static int
23522387
mt7531_setup_common(struct dsa_switch *ds)
23532388
{
23542389
struct mt7530_priv *priv = ds->priv;
2355-
struct dsa_port *cpu_dp;
23562390
int ret, i;
23572391

2358-
/* BPDU to CPU port */
2359-
dsa_switch_for_each_cpu_port(cpu_dp, ds) {
2360-
mt7530_rmw(priv, MT7531_CFC, MT7531_CPU_PMAP_MASK,
2361-
BIT(cpu_dp->index));
2362-
break;
2363-
}
2364-
mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK,
2365-
MT753X_BPDU_CPU_ONLY);
2392+
mt753x_trap_frames(priv);
23662393

23672394
/* Enable and reset MIB counters */
23682395
mt7530_mib_reset(ds);
@@ -3085,6 +3112,7 @@ static int mt7988_setup(struct dsa_switch *ds)
30853112
const struct dsa_switch_ops mt7530_switch_ops = {
30863113
.get_tag_protocol = mtk_get_tag_protocol,
30873114
.setup = mt753x_setup,
3115+
.preferred_default_local_cpu_port = mt753x_preferred_default_local_cpu_port,
30883116
.get_strings = mt7530_get_strings,
30893117
.get_ethtool_stats = mt7530_get_ethtool_stats,
30903118
.get_sset_count = mt7530_get_sset_count,

drivers/net/dsa/mt7530.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ enum mt753x_id {
5454
#define MT7531_MIRROR_PORT_GET(x) (((x) >> 16) & MIRROR_MASK)
5555
#define MT7531_MIRROR_PORT_SET(x) (((x) & MIRROR_MASK) << 16)
5656
#define MT7531_CPU_PMAP_MASK GENMASK(7, 0)
57+
#define MT7531_CPU_PMAP(x) FIELD_PREP(MT7531_CPU_PMAP_MASK, x)
5758

5859
#define MT753X_MIRROR_REG(id) ((((id) == ID_MT7531) || ((id) == ID_MT7988)) ? \
5960
MT7531_CFC : MT7530_MFC)
@@ -66,6 +67,11 @@ enum mt753x_id {
6667
#define MT753X_BPC 0x24
6768
#define MT753X_BPDU_PORT_FW_MASK GENMASK(2, 0)
6869

70+
/* Register for :03 and :0E MAC DA frame control */
71+
#define MT753X_RGAC2 0x2c
72+
#define MT753X_R0E_PORT_FW_MASK GENMASK(18, 16)
73+
#define MT753X_R0E_PORT_FW(x) FIELD_PREP(MT753X_R0E_PORT_FW_MASK, x)
74+
6975
enum mt753x_bpdu_port_fw {
7076
MT753X_BPDU_FOLLOW_MFC,
7177
MT753X_BPDU_CPU_EXCLUDE = 4,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,8 +1135,8 @@ static struct sk_buff *be_lancer_xmit_workarounds(struct be_adapter *adapter,
11351135
eth_hdr_len = ntohs(skb->protocol) == ETH_P_8021Q ?
11361136
VLAN_ETH_HLEN : ETH_HLEN;
11371137
if (skb->len <= 60 &&
1138-
(lancer_chip(adapter) || skb_vlan_tag_present(skb)) &&
1139-
is_ipv4_pkt(skb)) {
1138+
(lancer_chip(adapter) || BE3_chip(adapter) ||
1139+
skb_vlan_tag_present(skb)) && is_ipv4_pkt(skb)) {
11401140
ip = (struct iphdr *)ip_hdr(skb);
11411141
pskb_trim(skb, eth_hdr_len + ntohs(ip->tot_len));
11421142
}

drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ static int phy_mode(enum dpmac_eth_if eth_if, phy_interface_t *if_mode)
5454
case DPMAC_ETH_IF_XFI:
5555
*if_mode = PHY_INTERFACE_MODE_10GBASER;
5656
break;
57+
case DPMAC_ETH_IF_CAUI:
58+
*if_mode = PHY_INTERFACE_MODE_25GBASER;
59+
break;
5760
default:
5861
return -EINVAL;
5962
}
@@ -79,6 +82,8 @@ static enum dpmac_eth_if dpmac_eth_if_mode(phy_interface_t if_mode)
7982
return DPMAC_ETH_IF_XFI;
8083
case PHY_INTERFACE_MODE_1000BASEX:
8184
return DPMAC_ETH_IF_1000BASEX;
85+
case PHY_INTERFACE_MODE_25GBASER:
86+
return DPMAC_ETH_IF_CAUI;
8287
default:
8388
return DPMAC_ETH_IF_MII;
8489
}
@@ -418,7 +423,7 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac)
418423

419424
mac->phylink_config.mac_capabilities = MAC_SYM_PAUSE | MAC_ASYM_PAUSE |
420425
MAC_10FD | MAC_100FD | MAC_1000FD | MAC_2500FD | MAC_5000FD |
421-
MAC_10000FD;
426+
MAC_10000FD | MAC_25000FD;
422427

423428
dpaa2_mac_set_supported_interfaces(mac);
424429

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -732,7 +732,8 @@ static void mlx5e_rx_compute_wqe_bulk_params(struct mlx5e_params *params,
732732
static int mlx5e_build_rq_frags_info(struct mlx5_core_dev *mdev,
733733
struct mlx5e_params *params,
734734
struct mlx5e_xsk_param *xsk,
735-
struct mlx5e_rq_frags_info *info)
735+
struct mlx5e_rq_frags_info *info,
736+
u32 *xdp_frag_size)
736737
{
737738
u32 byte_count = MLX5E_SW2HW_MTU(params, params->sw_mtu);
738739
int frag_size_max = DEFAULT_FRAG_SIZE;
@@ -845,6 +846,8 @@ static int mlx5e_build_rq_frags_info(struct mlx5_core_dev *mdev,
845846

846847
info->log_num_frags = order_base_2(info->num_frags);
847848

849+
*xdp_frag_size = info->num_frags > 1 && params->xdp_prog ? PAGE_SIZE : 0;
850+
848851
return 0;
849852
}
850853

@@ -989,7 +992,8 @@ int mlx5e_build_rq_param(struct mlx5_core_dev *mdev,
989992
}
990993
default: /* MLX5_WQ_TYPE_CYCLIC */
991994
MLX5_SET(wq, wq, log_wq_sz, params->log_rq_mtu_frames);
992-
err = mlx5e_build_rq_frags_info(mdev, params, xsk, &param->frags_info);
995+
err = mlx5e_build_rq_frags_info(mdev, params, xsk, &param->frags_info,
996+
&param->xdp_frag_size);
993997
if (err)
994998
return err;
995999
ndsegs = param->frags_info.num_frags;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ struct mlx5e_rq_param {
2424
u32 rqc[MLX5_ST_SZ_DW(rqc)];
2525
struct mlx5_wq_param wq;
2626
struct mlx5e_rq_frags_info frags_info;
27+
u32 xdp_frag_size;
2728
};
2829

2930
struct mlx5e_sq_param {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2021,6 +2021,8 @@ void
20212021
mlx5_tc_ct_delete_flow(struct mlx5_tc_ct_priv *priv,
20222022
struct mlx5_flow_attr *attr)
20232023
{
2024+
if (!attr->ct_attr.ft) /* no ct action, return */
2025+
return;
20242026
if (!attr->ct_attr.nf_ft) /* means only ct clear action, and not ct_clear,ct() */
20252027
return;
20262028

drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ static int mlx5e_init_xsk_rq(struct mlx5e_channel *c,
8686
if (err)
8787
return err;
8888

89-
return xdp_rxq_info_reg(&rq->xdp_rxq, rq->netdev, rq_xdp_ix, 0);
89+
return xdp_rxq_info_reg(&rq->xdp_rxq, rq->netdev, rq_xdp_ix, c->napi.napi_id);
9090
}
9191

9292
static int mlx5e_open_xsk_rq(struct mlx5e_channel *c, struct mlx5e_params *params,

0 commit comments

Comments
 (0)