Skip to content

Commit 7c5e046

Browse files
committed
Merge tag 'net-6.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Including fixes from WiFi and bpf. Current release - regressions: - bpf: syzkaller found null ptr deref in unix_bpf proto add - eth: i40e: fix ST code value for clause 45 Previous releases - regressions: - core: return error from sk_stream_wait_connect() if sk_wait_event() fails - ipv6: revert remove expired routes with a separated list of routes - wifi rfkill: - set GPIO direction - fix crash with WED rx support enabled - bluetooth: - fix deadlock in vhci_send_frame - fix use-after-free in bt_sock_recvmsg - eth: mlx5e: fix a race in command alloc flow - eth: ice: fix PF with enabled XDP going no-carrier after reset - eth: bnxt_en: do not map packet buffers twice Previous releases - always broken: - core: - check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev() - check dev->gso_max_size in gso_features_check() - mptcp: fix inconsistent state on fastopen race - phy: skip LED triggers on PHYs on SFP modules - eth: mlx5e: - fix double free of encap_header - fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list()" * tag 'net-6.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (69 commits) net: check dev->gso_max_size in gso_features_check() kselftest: rtnetlink.sh: use grep_fail when expecting the cmd fail net/ipv6: Revert remove expired routes with a separated list of routes net: avoid build bug in skb extension length calculation net: ethernet: mtk_wed: fix possible NULL pointer dereference in mtk_wed_wo_queue_tx_clean() net: stmmac: fix incorrect flag check in timestamp interrupt selftests: add vlan hw filter tests net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev() net: hns3: add new maintainer for the HNS3 ethernet driver net: mana: select PAGE_POOL net: ks8851: Fix TX stall caused by TX buffer overrun ice: Fix PF with enabled XDP going no-carrier after reset ice: alter feature support check for SRIOV and LAG ice: stop trashing VF VSI aggregator node ID information mailmap: add entries for Geliang Tang mptcp: fill in missing MODULE_DESCRIPTION() mptcp: fix inconsistent state on fastopen race selftests: mptcp: join: fix subflow_send_ack lookup net: phy: skip LED triggers on PHYs on SFP modules bpf: Add missing BPF_LINK_TYPE invocations ...
2 parents a4aebe9 + 74769d8 commit 7c5e046

Some content is hidden

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

74 files changed

+561
-369
lines changed

.mailmap

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,10 @@ Gao Xiang <[email protected]> <[email protected]>
191191
192192
193193
194+
195+
196+
197+
194198
195199
196200

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9524,6 +9524,7 @@ F: drivers/bus/hisi_lpc.c
95249524
HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3)
95259525
M: Yisen Zhuang <[email protected]>
95269526
M: Salil Mehta <[email protected]>
9527+
M: Jijie Shao <[email protected]>
95279528
95289529
S: Maintained
95299530
W: http://www.hisilicon.com

drivers/bluetooth/hci_vhci.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <linux/module.h>
1212
#include <asm/unaligned.h>
1313

14+
#include <linux/atomic.h>
1415
#include <linux/kernel.h>
1516
#include <linux/init.h>
1617
#include <linux/slab.h>
@@ -44,6 +45,7 @@ struct vhci_data {
4445
bool wakeup;
4546
__u16 msft_opcode;
4647
bool aosp_capable;
48+
atomic_t initialized;
4749
};
4850

4951
static int vhci_open_dev(struct hci_dev *hdev)
@@ -75,11 +77,10 @@ static int vhci_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
7577

7678
memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
7779

78-
mutex_lock(&data->open_mutex);
7980
skb_queue_tail(&data->readq, skb);
80-
mutex_unlock(&data->open_mutex);
8181

82-
wake_up_interruptible(&data->read_wait);
82+
if (atomic_read(&data->initialized))
83+
wake_up_interruptible(&data->read_wait);
8384
return 0;
8485
}
8586

@@ -464,7 +465,8 @@ static int __vhci_create_device(struct vhci_data *data, __u8 opcode)
464465
skb_put_u8(skb, 0xff);
465466
skb_put_u8(skb, opcode);
466467
put_unaligned_le16(hdev->id, skb_put(skb, 2));
467-
skb_queue_tail(&data->readq, skb);
468+
skb_queue_head(&data->readq, skb);
469+
atomic_inc(&data->initialized);
468470

469471
wake_up_interruptible(&data->read_wait);
470472
return 0;

drivers/net/ethernet/atheros/atl1e/atl1e_main.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -866,10 +866,13 @@ static int atl1e_setup_ring_resources(struct atl1e_adapter *adapter)
866866
netdev_err(adapter->netdev, "offset(%d) > ring size(%d) !!\n",
867867
offset, adapter->ring_size);
868868
err = -1;
869-
goto failed;
869+
goto free_buffer;
870870
}
871871

872872
return 0;
873+
free_buffer:
874+
kfree(tx_ring->tx_buffer);
875+
tx_ring->tx_buffer = NULL;
873876
failed:
874877
if (adapter->ring_vir_addr != NULL) {
875878
dma_free_coherent(&pdev->dev, adapter->ring_size,

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

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ struct bnxt_sw_tx_bd *bnxt_xmit_bd(struct bnxt *bp,
5959
for (i = 0; i < num_frags ; i++) {
6060
skb_frag_t *frag = &sinfo->frags[i];
6161
struct bnxt_sw_tx_bd *frag_tx_buf;
62-
struct pci_dev *pdev = bp->pdev;
6362
dma_addr_t frag_mapping;
6463
int frag_len;
6564

@@ -73,16 +72,10 @@ struct bnxt_sw_tx_bd *bnxt_xmit_bd(struct bnxt *bp,
7372
txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)];
7473

7574
frag_len = skb_frag_size(frag);
76-
frag_mapping = skb_frag_dma_map(&pdev->dev, frag, 0,
77-
frag_len, DMA_TO_DEVICE);
78-
79-
if (unlikely(dma_mapping_error(&pdev->dev, frag_mapping)))
80-
return NULL;
81-
82-
dma_unmap_addr_set(frag_tx_buf, mapping, frag_mapping);
83-
8475
flags = frag_len << TX_BD_LEN_SHIFT;
8576
txbd->tx_bd_len_flags_type = cpu_to_le32(flags);
77+
frag_mapping = page_pool_get_dma_addr(skb_frag_page(frag)) +
78+
skb_frag_off(frag);
8679
txbd->tx_bd_haddr = cpu_to_le64(frag_mapping);
8780

8881
len = frag_len;

drivers/net/ethernet/intel/i40e/i40e_register.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@
207207
#define I40E_GLGEN_MSCA_OPCODE_SHIFT 26
208208
#define I40E_GLGEN_MSCA_OPCODE_MASK(_i) I40E_MASK(_i, I40E_GLGEN_MSCA_OPCODE_SHIFT)
209209
#define I40E_GLGEN_MSCA_STCODE_SHIFT 28
210-
#define I40E_GLGEN_MSCA_STCODE_MASK I40E_MASK(0x1, I40E_GLGEN_MSCA_STCODE_SHIFT)
210+
#define I40E_GLGEN_MSCA_STCODE_MASK(_i) I40E_MASK(_i, I40E_GLGEN_MSCA_STCODE_SHIFT)
211211
#define I40E_GLGEN_MSCA_MDICMD_SHIFT 30
212212
#define I40E_GLGEN_MSCA_MDICMD_MASK I40E_MASK(0x1, I40E_GLGEN_MSCA_MDICMD_SHIFT)
213213
#define I40E_GLGEN_MSCA_MDIINPROGEN_SHIFT 31

drivers/net/ethernet/intel/i40e/i40e_type.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ typedef void (*I40E_ADMINQ_CALLBACK)(struct i40e_hw *, struct i40e_aq_desc *);
3737
#define I40E_QTX_CTL_VM_QUEUE 0x1
3838
#define I40E_QTX_CTL_PF_QUEUE 0x2
3939

40-
#define I40E_MDIO_CLAUSE22_STCODE_MASK I40E_GLGEN_MSCA_STCODE_MASK
40+
#define I40E_MDIO_CLAUSE22_STCODE_MASK I40E_GLGEN_MSCA_STCODE_MASK(1)
4141
#define I40E_MDIO_CLAUSE22_OPCODE_WRITE_MASK I40E_GLGEN_MSCA_OPCODE_MASK(1)
4242
#define I40E_MDIO_CLAUSE22_OPCODE_READ_MASK I40E_GLGEN_MSCA_OPCODE_MASK(2)
4343

44-
#define I40E_MDIO_CLAUSE45_STCODE_MASK I40E_GLGEN_MSCA_STCODE_MASK
44+
#define I40E_MDIO_CLAUSE45_STCODE_MASK I40E_GLGEN_MSCA_STCODE_MASK(0)
4545
#define I40E_MDIO_CLAUSE45_OPCODE_ADDRESS_MASK I40E_GLGEN_MSCA_OPCODE_MASK(0)
4646
#define I40E_MDIO_CLAUSE45_OPCODE_WRITE_MASK I40E_GLGEN_MSCA_OPCODE_MASK(1)
4747
#define I40E_MDIO_CLAUSE45_OPCODE_READ_MASK I40E_GLGEN_MSCA_OPCODE_MASK(3)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1850,14 +1850,14 @@ ice_phy_type_to_ethtool(struct net_device *netdev,
18501850
linkmode_zero(ks->link_modes.supported);
18511851
linkmode_zero(ks->link_modes.advertising);
18521852

1853-
for (i = 0; i < BITS_PER_TYPE(u64); i++) {
1853+
for (i = 0; i < ARRAY_SIZE(phy_type_low_lkup); i++) {
18541854
if (phy_types_low & BIT_ULL(i))
18551855
ice_linkmode_set_bit(&phy_type_low_lkup[i], ks,
18561856
req_speeds, advert_phy_type_lo,
18571857
i);
18581858
}
18591859

1860-
for (i = 0; i < BITS_PER_TYPE(u64); i++) {
1860+
for (i = 0; i < ARRAY_SIZE(phy_type_high_lkup); i++) {
18611861
if (phy_types_high & BIT_ULL(i))
18621862
ice_linkmode_set_bit(&phy_type_high_lkup[i], ks,
18631863
req_speeds, advert_phy_type_hi,

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1981,6 +1981,8 @@ int ice_init_lag(struct ice_pf *pf)
19811981
int n, err;
19821982

19831983
ice_lag_init_feature_support_flag(pf);
1984+
if (!ice_is_feature_supported(pf, ICE_F_SRIOV_LAG))
1985+
return 0;
19841986

19851987
pf->lag = kzalloc(sizeof(*lag), GFP_KERNEL);
19861988
if (!pf->lag)

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2371,6 +2371,9 @@ static int ice_vsi_cfg_tc_lan(struct ice_pf *pf, struct ice_vsi *vsi)
23712371
} else {
23722372
max_txqs[i] = vsi->alloc_txq;
23732373
}
2374+
2375+
if (vsi->type == ICE_VSI_PF)
2376+
max_txqs[i] += vsi->num_xdp_txq;
23742377
}
23752378

23762379
dev_dbg(dev, "vsi->tc_cfg.ena_tc = %d\n", vsi->tc_cfg.ena_tc);
@@ -2620,10 +2623,6 @@ void ice_vsi_decfg(struct ice_vsi *vsi)
26202623
if (vsi->type == ICE_VSI_VF &&
26212624
vsi->agg_node && vsi->agg_node->valid)
26222625
vsi->agg_node->num_vsis--;
2623-
if (vsi->agg_node) {
2624-
vsi->agg_node->valid = false;
2625-
vsi->agg_node->agg_id = 0;
2626-
}
26272626
}
26282627

26292628
/**

0 commit comments

Comments
 (0)