Skip to content

Commit a1d9d8e

Browse files
committed
Merge tag 'net-7.0-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from wireless, Bluetooth and netfilter. Nothing too exciting here, mostly fixes for corner cases. Current release - fix to a fix: - bonding: prevent potential infinite loop in bond_header_parse() Current release - new code bugs: - wifi: mac80211: check tdls flag in ieee80211_tdls_oper Previous releases - regressions: - af_unix: give up GC if MSG_PEEK intervened - netfilter: conntrack: add missing netlink policy validations - NFC: nxp-nci: allow GPIOs to sleep" * tag 'net-7.0-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (78 commits) MPTCP: fix lock class name family in pm_nl_create_listen_socket icmp: fix NULL pointer dereference in icmp_tag_validation() net: dsa: bcm_sf2: fix missing clk_disable_unprepare() in error paths net: shaper: protect from late creation of hierarchy net: shaper: protect late read accesses to the hierarchy net: mvpp2: guard flow control update with global_tx_fc in buffer switching nfnetlink_osf: validate individual option lengths in fingerprints netfilter: nf_tables: release flowtable after rcu grace period on error netfilter: bpf: defer hook memory release until rcu readers are done net: bonding: fix NULL deref in bond_debug_rlb_hash_show udp_tunnel: fix NULL deref caused by udp_sock_create6 when CONFIG_IPV6=n net/mlx5e: Fix race condition during IPSec ESN update net/mlx5e: Prevent concurrent access to IPSec ASO context net/mlx5: qos: Restrict RTNL area to avoid a lock cycle ipv6: add NULL checks for idev in SRv6 paths NFC: nxp-nci: allow GPIOs to sleep net: macb: fix uninitialized rx_fs_lock net: macb: fix use-after-free access to PTP clock netdevsim: drop PSP ext ref on forward failure wifi: mac80211: always free skb on ieee80211_tx_prepare_skb() failure ...
2 parents e9825d1 + 7ab4a7c commit a1d9d8e

93 files changed

Lines changed: 734 additions & 459 deletions

Some content is hidden

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

Documentation/netlink/specs/net_shaper.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,8 @@ operations:
247247
flags: [admin-perm]
248248

249249
do:
250-
pre: net-shaper-nl-pre-doit
251-
post: net-shaper-nl-post-doit
250+
pre: net-shaper-nl-pre-doit-write
251+
post: net-shaper-nl-post-doit-write
252252
request:
253253
attributes:
254254
- ifindex
@@ -278,8 +278,8 @@ operations:
278278
flags: [admin-perm]
279279

280280
do:
281-
pre: net-shaper-nl-pre-doit
282-
post: net-shaper-nl-post-doit
281+
pre: net-shaper-nl-pre-doit-write
282+
post: net-shaper-nl-post-doit-write
283283
request:
284284
attributes: *ns-binding
285285

@@ -309,8 +309,8 @@ operations:
309309
flags: [admin-perm]
310310

311311
do:
312-
pre: net-shaper-nl-pre-doit
313-
post: net-shaper-nl-post-doit
312+
pre: net-shaper-nl-pre-doit-write
313+
post: net-shaper-nl-post-doit-write
314314
request:
315315
attributes:
316316
- ifindex

drivers/bluetooth/btqca.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -787,6 +787,8 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
787787
*/
788788
if (soc_type == QCA_WCN3988)
789789
rom_ver = ((soc_ver & 0x00000f00) >> 0x05) | (soc_ver & 0x0000000f);
790+
else if (soc_type == QCA_WCN3998)
791+
rom_ver = ((soc_ver & 0x0000f000) >> 0x07) | (soc_ver & 0x0000000f);
790792
else
791793
rom_ver = ((soc_ver & 0x00000f00) >> 0x04) | (soc_ver & 0x0000000f);
792794

drivers/firewire/net.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,9 +257,10 @@ static void fwnet_header_cache_update(struct hh_cache *hh,
257257
memcpy((u8 *)hh->hh_data + HH_DATA_OFF(FWNET_HLEN), haddr, net->addr_len);
258258
}
259259

260-
static int fwnet_header_parse(const struct sk_buff *skb, unsigned char *haddr)
260+
static int fwnet_header_parse(const struct sk_buff *skb, const struct net_device *dev,
261+
unsigned char *haddr)
261262
{
262-
memcpy(haddr, skb->dev->dev_addr, FWNET_ALEN);
263+
memcpy(haddr, dev->dev_addr, FWNET_ALEN);
263264

264265
return FWNET_ALEN;
265266
}

drivers/net/bonding/bond_debugfs.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,17 @@ static int bond_debug_rlb_hash_show(struct seq_file *m, void *v)
3434
for (; hash_index != RLB_NULL_INDEX;
3535
hash_index = client_info->used_next) {
3636
client_info = &(bond_info->rx_hashtbl[hash_index]);
37-
seq_printf(m, "%-15pI4 %-15pI4 %-17pM %s\n",
38-
&client_info->ip_src,
39-
&client_info->ip_dst,
40-
&client_info->mac_dst,
41-
client_info->slave->dev->name);
37+
if (client_info->slave)
38+
seq_printf(m, "%-15pI4 %-15pI4 %-17pM %s\n",
39+
&client_info->ip_src,
40+
&client_info->ip_dst,
41+
&client_info->mac_dst,
42+
client_info->slave->dev->name);
43+
else
44+
seq_printf(m, "%-15pI4 %-15pI4 %-17pM (none)\n",
45+
&client_info->ip_src,
46+
&client_info->ip_dst,
47+
&client_info->mac_dst);
4248
}
4349

4450
spin_unlock_bh(&bond->mode_lock);

drivers/net/bonding/bond_main.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1530,9 +1530,11 @@ static int bond_header_create(struct sk_buff *skb, struct net_device *bond_dev,
15301530
return ret;
15311531
}
15321532

1533-
static int bond_header_parse(const struct sk_buff *skb, unsigned char *haddr)
1533+
static int bond_header_parse(const struct sk_buff *skb,
1534+
const struct net_device *dev,
1535+
unsigned char *haddr)
15341536
{
1535-
struct bonding *bond = netdev_priv(skb->dev);
1537+
struct bonding *bond = netdev_priv(dev);
15361538
const struct header_ops *slave_ops;
15371539
struct slave *slave;
15381540
int ret = 0;
@@ -1542,7 +1544,7 @@ static int bond_header_parse(const struct sk_buff *skb, unsigned char *haddr)
15421544
if (slave) {
15431545
slave_ops = READ_ONCE(slave->dev->header_ops);
15441546
if (slave_ops && slave_ops->parse)
1545-
ret = slave_ops->parse(skb, haddr);
1547+
ret = slave_ops->parse(skb, slave->dev, haddr);
15461548
}
15471549
rcu_read_unlock();
15481550
return ret;

drivers/net/dsa/bcm_sf2.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -980,15 +980,19 @@ static int bcm_sf2_sw_resume(struct dsa_switch *ds)
980980
ret = bcm_sf2_sw_rst(priv);
981981
if (ret) {
982982
pr_err("%s: failed to software reset switch\n", __func__);
983+
if (!priv->wol_ports_mask)
984+
clk_disable_unprepare(priv->clk);
983985
return ret;
984986
}
985987

986988
bcm_sf2_crossbar_setup(priv);
987989

988990
ret = bcm_sf2_cfp_resume(ds);
989-
if (ret)
991+
if (ret) {
992+
if (!priv->wol_ports_mask)
993+
clk_disable_unprepare(priv->clk);
990994
return ret;
991-
995+
}
992996
if (priv->hw_params.num_gphy == 1)
993997
bcm_sf2_gphy_enable_set(ds, true);
994998

drivers/net/ethernet/airoha/airoha_eth.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3083,7 +3083,6 @@ static void airoha_remove(struct platform_device *pdev)
30833083
if (!port)
30843084
continue;
30853085

3086-
airoha_dev_stop(port->dev);
30873086
unregister_netdev(port->dev);
30883087
airoha_metadata_dst_free(port);
30893088
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2929,6 +2929,8 @@ static int bnxt_async_event_process(struct bnxt *bp,
29292929
u16 type = (u16)BNXT_EVENT_BUF_PRODUCER_TYPE(data1);
29302930
u32 offset = BNXT_EVENT_BUF_PRODUCER_OFFSET(data2);
29312931

2932+
if (type >= ARRAY_SIZE(bp->bs_trace))
2933+
goto async_event_process_exit;
29322934
bnxt_bs_trace_check_wrap(&bp->bs_trace[type], offset);
29332935
goto async_event_process_exit;
29342936
}

drivers/net/ethernet/broadcom/bnxt/bnxt.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2146,7 +2146,7 @@ enum board_idx {
21462146
};
21472147

21482148
#define BNXT_TRACE_BUF_MAGIC_BYTE ((u8)0xbc)
2149-
#define BNXT_TRACE_MAX 11
2149+
#define BNXT_TRACE_MAX (DBG_LOG_BUFFER_FLUSH_REQ_TYPE_ERR_QPC_TRACE + 1)
21502150

21512151
struct bnxt_bs_trace_info {
21522152
u8 *magic_byte;

drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ static int bcmgenet_poll_wol_status(struct bcmgenet_priv *priv)
123123
while (!(bcmgenet_rbuf_readl(priv, RBUF_STATUS)
124124
& RBUF_STATUS_WOL)) {
125125
retries++;
126-
if (retries > 5) {
126+
if (retries > 50) {
127127
netdev_crit(dev, "polling wol mode timeout\n");
128128
return -ETIMEDOUT;
129129
}

0 commit comments

Comments
 (0)