Skip to content

Commit c7979c3

Browse files
committed
Merge tag 'net-6.16-rc6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull more networking fixes from Jakub Kicinski "Big chunk of fixes for WiFi, Johannes says probably the last for the release. The Netlink fixes (on top of the tree) restore operation of iw (WiFi CLI) which uses sillily small recv buffer, and is the reason for this 'emergency PR'. The GRE multicast fix also stands out among the user-visible regressions. Current release - fix to a fix: - netlink: make sure we always allow at least one skb to be queued, even if the recvbuf is (mis)configured to be tiny Previous releases - regressions: - gre: fix IPv6 multicast route creation Previous releases - always broken: - wifi: prevent A-MSDU attacks in mesh networks - wifi: cfg80211: fix S1G beacon head validation and detection - wifi: mac80211: - always clear frame buffer to prevent stack leak in cases which hit a WARN() - fix monitor interface in device restart - wifi: mwifiex: discard erroneous disassoc frames on STA interface - wifi: mt76: - prevent null-deref in mt7925_sta_set_decap_offload() - add missing RCU annotations, and fix sleep in atomic - fix decapsulation offload - fixes for scanning - phy: microchip: improve link establishment and reset handling - eth: mlx5e: fix race between DIM disable and net_dim() - bnxt_en: correct DMA unmap len for XDP_REDIRECT" * tag 'net-6.16-rc6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (44 commits) netlink: make sure we allow at least one dump skb netlink: Fix rmem check in netlink_broadcast_deliver(). bnxt_en: Set DMA unmap len correctly for XDP_REDIRECT bnxt_en: Flush FW trace before copying to the coredump bnxt_en: Fix DCB ETS validation net: ll_temac: Fix missing tx_pending check in ethtools_set_ringparam() net/mlx5e: Add new prio for promiscuous mode net/mlx5e: Fix race between DIM disable and net_dim() net/mlx5: Reset bw_share field when changing a node's parent can: m_can: m_can_handle_lost_msg(): downgrade msg lost in rx message to debug level selftests: net: lib: fix shift count out of range selftests: Add IPv6 multicast route generation tests for GRE devices. gre: Fix IPv6 multicast route creation. net: phy: microchip: limit 100M workaround to link-down events on LAN88xx net: phy: microchip: Use genphy_soft_reset() to purge stale LPA bits ibmvnic: Fix hardcoded NUM_RX_STATS/NUM_TX_STATS with dynamic sizeof net: appletalk: Fix device refcount leak in atrtr_create() netfilter: flowtable: account for Ethernet header in nf_flow_pppoe_proto() wifi: mac80211: add the virtual monitor after reconfig complete wifi: mac80211: always initialize sdata::key_list ...
2 parents 5265593 + a215b57 commit c7979c3

File tree

57 files changed

+500
-277
lines changed

Some content is hidden

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

57 files changed

+500
-277
lines changed

drivers/net/can/m_can/m_can.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,7 @@ static int m_can_handle_lost_msg(struct net_device *dev)
665665
struct can_frame *frame;
666666
u32 timestamp = 0;
667667

668-
netdev_err(dev, "msg lost in rxf0\n");
668+
netdev_dbg(dev, "msg lost in rxf0\n");
669669

670670
stats->rx_errors++;
671671
stats->rx_over_errors++;

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

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -368,23 +368,27 @@ static u32 bnxt_get_ctx_coredump(struct bnxt *bp, void *buf, u32 offset,
368368
if (!ctxm->mem_valid || !seg_id)
369369
continue;
370370

371-
if (trace)
371+
if (trace) {
372372
extra_hlen = BNXT_SEG_RCD_LEN;
373+
if (buf) {
374+
u16 trace_type = bnxt_bstore_to_trace[type];
375+
376+
bnxt_fill_drv_seg_record(bp, &record, ctxm,
377+
trace_type);
378+
}
379+
}
380+
373381
if (buf)
374382
data = buf + BNXT_SEG_HDR_LEN + extra_hlen;
383+
375384
seg_len = bnxt_copy_ctx_mem(bp, ctxm, data, 0) + extra_hlen;
376385
if (buf) {
377386
bnxt_fill_coredump_seg_hdr(bp, &seg_hdr, NULL, seg_len,
378387
0, 0, 0, comp_id, seg_id);
379388
memcpy(buf, &seg_hdr, BNXT_SEG_HDR_LEN);
380389
buf += BNXT_SEG_HDR_LEN;
381-
if (trace) {
382-
u16 trace_type = bnxt_bstore_to_trace[type];
383-
384-
bnxt_fill_drv_seg_record(bp, &record, ctxm,
385-
trace_type);
390+
if (trace)
386391
memcpy(buf, &record, BNXT_SEG_RCD_LEN);
387-
}
388392
buf += seg_len;
389393
}
390394
len += BNXT_SEG_HDR_LEN + seg_len;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,9 @@ static int bnxt_ets_validate(struct bnxt *bp, struct ieee_ets *ets, u8 *tc)
487487

488488
if ((ets->tc_tx_bw[i] || ets->tc_tsa[i]) && i > bp->max_tc)
489489
return -EINVAL;
490+
}
490491

492+
for (i = 0; i < max_tc; i++) {
491493
switch (ets->tc_tsa[i]) {
492494
case IEEE_8021QAZ_TSA_STRICT:
493495
break;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ static void __bnxt_xmit_xdp_redirect(struct bnxt *bp,
115115
tx_buf->action = XDP_REDIRECT;
116116
tx_buf->xdpf = xdpf;
117117
dma_unmap_addr_set(tx_buf, mapping, mapping);
118-
dma_unmap_len_set(tx_buf, len, 0);
118+
dma_unmap_len_set(tx_buf, len, len);
119119
}
120120

121121
void bnxt_tx_int_xdp(struct bnxt *bp, struct bnxt_napi *bnapi, int budget)

drivers/net/ethernet/ibm/ibmvnic.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,21 +211,25 @@ struct ibmvnic_statistics {
211211
u8 reserved[72];
212212
} __packed __aligned(8);
213213

214-
#define NUM_TX_STATS 3
215214
struct ibmvnic_tx_queue_stats {
216215
u64 batched_packets;
217216
u64 direct_packets;
218217
u64 bytes;
219218
u64 dropped_packets;
220219
};
221220

222-
#define NUM_RX_STATS 3
221+
#define NUM_TX_STATS \
222+
(sizeof(struct ibmvnic_tx_queue_stats) / sizeof(u64))
223+
223224
struct ibmvnic_rx_queue_stats {
224225
u64 packets;
225226
u64 bytes;
226227
u64 interrupts;
227228
};
228229

230+
#define NUM_RX_STATS \
231+
(sizeof(struct ibmvnic_rx_queue_stats) / sizeof(u64))
232+
229233
struct ibmvnic_acl_buffer {
230234
__be32 len;
231235
__be32 version;

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ enum {
1818

1919
enum {
2020
MLX5E_TC_PRIO = 0,
21-
MLX5E_NIC_PRIO
21+
MLX5E_PROMISC_PRIO,
22+
MLX5E_NIC_PRIO,
2223
};
2324

2425
struct mlx5e_flow_table {
@@ -68,9 +69,13 @@ struct mlx5e_l2_table {
6869
MLX5_HASH_FIELD_SEL_DST_IP |\
6970
MLX5_HASH_FIELD_SEL_IPSEC_SPI)
7071

71-
/* NIC prio FTS */
72+
/* NIC promisc FT level */
7273
enum {
7374
MLX5E_PROMISC_FT_LEVEL,
75+
};
76+
77+
/* NIC prio FTS */
78+
enum {
7479
MLX5E_VLAN_FT_LEVEL,
7580
MLX5E_L2_FT_LEVEL,
7681
MLX5E_TTC_FT_LEVEL,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ int mlx5e_dim_rx_change(struct mlx5e_rq *rq, bool enable)
113113
__set_bit(MLX5E_RQ_STATE_DIM, &rq->state);
114114
} else {
115115
__clear_bit(MLX5E_RQ_STATE_DIM, &rq->state);
116-
116+
synchronize_net();
117117
mlx5e_dim_disable(rq->dim);
118118
rq->dim = NULL;
119119
}
@@ -140,7 +140,7 @@ int mlx5e_dim_tx_change(struct mlx5e_txqsq *sq, bool enable)
140140
__set_bit(MLX5E_SQ_STATE_DIM, &sq->state);
141141
} else {
142142
__clear_bit(MLX5E_SQ_STATE_DIM, &sq->state);
143-
143+
synchronize_net();
144144
mlx5e_dim_disable(sq->dim);
145145
sq->dim = NULL;
146146
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -780,7 +780,7 @@ static int mlx5e_create_promisc_table(struct mlx5e_flow_steering *fs)
780780
ft_attr.max_fte = MLX5E_PROMISC_TABLE_SIZE;
781781
ft_attr.autogroup.max_num_groups = 1;
782782
ft_attr.level = MLX5E_PROMISC_FT_LEVEL;
783-
ft_attr.prio = MLX5E_NIC_PRIO;
783+
ft_attr.prio = MLX5E_PROMISC_PRIO;
784784

785785
ft->t = mlx5_create_auto_grouped_flow_table(fs->ns, &ft_attr);
786786
if (IS_ERR(ft->t)) {

drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,6 +1076,7 @@ static int esw_qos_vports_node_update_parent(struct mlx5_esw_sched_node *node,
10761076
return err;
10771077
}
10781078
esw_qos_node_set_parent(node, parent);
1079+
node->bw_share = 0;
10791080

10801081
return 0;
10811082
}

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,16 @@
113113
#define ETHTOOL_PRIO_NUM_LEVELS 1
114114
#define ETHTOOL_NUM_PRIOS 11
115115
#define ETHTOOL_MIN_LEVEL (KERNEL_MIN_LEVEL + ETHTOOL_NUM_PRIOS)
116-
/* Promiscuous, Vlan, mac, ttc, inner ttc, {UDP/ANY/aRFS/accel/{esp, esp_err}}, IPsec policy,
116+
/* Vlan, mac, ttc, inner ttc, {UDP/ANY/aRFS/accel/{esp, esp_err}}, IPsec policy,
117117
* {IPsec RoCE MPV,Alias table},IPsec RoCE policy
118118
*/
119-
#define KERNEL_NIC_PRIO_NUM_LEVELS 11
119+
#define KERNEL_NIC_PRIO_NUM_LEVELS 10
120120
#define KERNEL_NIC_NUM_PRIOS 1
121-
/* One more level for tc */
122-
#define KERNEL_MIN_LEVEL (KERNEL_NIC_PRIO_NUM_LEVELS + 1)
121+
/* One more level for tc, and one more for promisc */
122+
#define KERNEL_MIN_LEVEL (KERNEL_NIC_PRIO_NUM_LEVELS + 2)
123+
124+
#define KERNEL_NIC_PROMISC_NUM_PRIOS 1
125+
#define KERNEL_NIC_PROMISC_NUM_LEVELS 1
123126

124127
#define KERNEL_NIC_TC_NUM_PRIOS 1
125128
#define KERNEL_NIC_TC_NUM_LEVELS 3
@@ -187,6 +190,8 @@ static struct init_tree_node {
187190
ADD_NS(MLX5_FLOW_TABLE_MISS_ACTION_DEF,
188191
ADD_MULTIPLE_PRIO(KERNEL_NIC_TC_NUM_PRIOS,
189192
KERNEL_NIC_TC_NUM_LEVELS),
193+
ADD_MULTIPLE_PRIO(KERNEL_NIC_PROMISC_NUM_PRIOS,
194+
KERNEL_NIC_PROMISC_NUM_LEVELS),
190195
ADD_MULTIPLE_PRIO(KERNEL_NIC_NUM_PRIOS,
191196
KERNEL_NIC_PRIO_NUM_LEVELS))),
192197
ADD_PRIO(0, BY_PASS_MIN_LEVEL, 0, FS_CHAINING_CAPS,

0 commit comments

Comments
 (0)