Skip to content

Commit 27bbf45

Browse files
committed
Merge tag 'net-6.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Including fixes from netfilter and bpf. Current release - regressions: - bpf: adjust size_index according to the value of KMALLOC_MIN_SIZE - netfilter: fix entries val in rule reset audit log - eth: stmmac: fix incorrect rxq|txq_stats reference Previous releases - regressions: - ipv4: fix null-deref in ipv4_link_failure - netfilter: - fix several GC related issues - fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP - eth: team: fix null-ptr-deref when team device type is changed - eth: i40e: fix VF VLAN offloading when port VLAN is configured - eth: ionic: fix 16bit math issue when PAGE_SIZE >= 64KB Previous releases - always broken: - core: fix ETH_P_1588 flow dissector - mptcp: fix several connection hang-up conditions - bpf: - avoid deadlock when using queue and stack maps from NMI - add override check to kprobe multi link attach - hsr: properly parse HSRv1 supervisor frames. - eth: igc: fix infinite initialization loop with early XDP redirect - eth: octeon_ep: fix tx dma unmap len values in SG - eth: hns3: fix GRE checksum offload issue" * tag 'net-6.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (87 commits) sfc: handle error pointers returned by rhashtable_lookup_get_insert_fast() igc: Expose tx-usecs coalesce setting to user octeontx2-pf: Do xdp_do_flush() after redirects. bnxt_en: Flush XDP for bnxt_poll_nitroa0()'s NAPI net: ena: Flush XDP packets on error. net/handshake: Fix memory leak in __sock_create() and sock_alloc_file() net: hinic: Fix warning-hinic_set_vlan_fliter() warn: variable dereferenced before check 'hwdev' netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP netfilter: nf_tables: fix memleak when more than 255 elements expired netfilter: nf_tables: disable toggling dormant table state more than once vxlan: Add missing entries to vxlan_get_size() net: rds: Fix possible NULL-pointer dereference team: fix null-ptr-deref when team device type is changed net: bridge: use DEV_STATS_INC() net: hns3: add 5ms delay before clear firmware reset irq source net: hns3: fix fail to delete tc flower rules during reset issue net: hns3: only enable unicast promisc when mac table full net: hns3: fix GRE checksum offload issue net: hns3: add cmdq check for vf periodic service task net: stmmac: fix incorrect rxq|txq_stats reference ...
2 parents b5cbe7c + ecf4392 commit 27bbf45

File tree

93 files changed

+1489
-540
lines changed

Some content is hidden

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

93 files changed

+1489
-540
lines changed

Documentation/networking/ax25.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ AX.25
77
To use the amateur radio protocols within Linux you will need to get a
88
suitable copy of the AX.25 Utilities. More detailed information about
99
AX.25, NET/ROM and ROSE, associated programs and utilities can be
10-
found on http://www.linux-ax25.org.
10+
found on https://linux-ax25.in-berlin.de.
1111

12-
There is an active mailing list for discussing Linux amateur radio matters
12+
There is a mailing list for discussing Linux amateur radio matters
1313
called linux-hams@vger.kernel.org. To subscribe to it, send a message to
1414
majordomo@vger.kernel.org with the words "subscribe linux-hams" in the body
1515
of the message, the subject field is ignored. You don't need to be

MAINTAINERS

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3344,7 +3344,7 @@ AX.25 NETWORK LAYER
33443344
M: Ralf Baechle <ralf@linux-mips.org>
33453345
L: linux-hams@vger.kernel.org
33463346
S: Maintained
3347-
W: http://www.linux-ax25.org/
3347+
W: https://linux-ax25.in-berlin.de
33483348
F: include/net/ax25.h
33493349
F: include/uapi/linux/ax25.h
33503350
F: net/ax25/
@@ -14756,7 +14756,7 @@ NETROM NETWORK LAYER
1475614756
M: Ralf Baechle <ralf@linux-mips.org>
1475714757
L: linux-hams@vger.kernel.org
1475814758
S: Maintained
14759-
W: http://www.linux-ax25.org/
14759+
W: https://linux-ax25.in-berlin.de
1476014760
F: include/net/netrom.h
1476114761
F: include/uapi/linux/netrom.h
1476214762
F: net/netrom/
@@ -18607,7 +18607,7 @@ ROSE NETWORK LAYER
1860718607
M: Ralf Baechle <ralf@linux-mips.org>
1860818608
L: linux-hams@vger.kernel.org
1860918609
S: Maintained
18610-
W: http://www.linux-ax25.org/
18610+
W: https://linux-ax25.in-berlin.de
1861118611
F: include/net/rose.h
1861218612
F: include/uapi/linux/rose.h
1861318613
F: net/rose/

drivers/net/ethernet/amazon/ena/ena_netdev.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1833,6 +1833,9 @@ static int ena_clean_rx_irq(struct ena_ring *rx_ring, struct napi_struct *napi,
18331833
return work_done;
18341834

18351835
error:
1836+
if (xdp_flags & ENA_XDP_REDIRECT)
1837+
xdp_do_flush();
1838+
18361839
adapter = netdev_priv(rx_ring->netdev);
18371840

18381841
if (rc == -ENOSPC) {

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2614,6 +2614,7 @@ static int bnxt_poll_nitroa0(struct napi_struct *napi, int budget)
26142614
struct rx_cmp_ext *rxcmp1;
26152615
u32 cp_cons, tmp_raw_cons;
26162616
u32 raw_cons = cpr->cp_raw_cons;
2617+
bool flush_xdp = false;
26172618
u32 rx_pkts = 0;
26182619
u8 event = 0;
26192620

@@ -2648,6 +2649,8 @@ static int bnxt_poll_nitroa0(struct napi_struct *napi, int budget)
26482649
rx_pkts++;
26492650
else if (rc == -EBUSY) /* partial completion */
26502651
break;
2652+
if (event & BNXT_REDIRECT_EVENT)
2653+
flush_xdp = true;
26512654
} else if (unlikely(TX_CMP_TYPE(txcmp) ==
26522655
CMPL_BASE_TYPE_HWRM_DONE)) {
26532656
bnxt_hwrm_handler(bp, txcmp);
@@ -2667,6 +2670,8 @@ static int bnxt_poll_nitroa0(struct napi_struct *napi, int budget)
26672670

26682671
if (event & BNXT_AGG_EVENT)
26692672
bnxt_db_write(bp, &rxr->rx_agg_db, rxr->rx_agg_prod);
2673+
if (flush_xdp)
2674+
xdp_do_flush();
26702675

26712676
if (!bnxt_has_work(bp, cpr) && rx_pkts < budget) {
26722677
napi_complete_done(napi, rx_pkts);

drivers/net/ethernet/engleder/tsnep_ethtool.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -300,10 +300,8 @@ static void tsnep_ethtool_get_channels(struct net_device *netdev,
300300
{
301301
struct tsnep_adapter *adapter = netdev_priv(netdev);
302302

303-
ch->max_rx = adapter->num_rx_queues;
304-
ch->max_tx = adapter->num_tx_queues;
305-
ch->rx_count = adapter->num_rx_queues;
306-
ch->tx_count = adapter->num_tx_queues;
303+
ch->max_combined = adapter->num_queues;
304+
ch->combined_count = adapter->num_queues;
307305
}
308306

309307
static int tsnep_ethtool_get_ts_info(struct net_device *netdev,

drivers/net/ethernet/engleder/tsnep_main.c

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,11 @@ static irqreturn_t tsnep_irq(int irq, void *arg)
8787

8888
/* handle TX/RX queue 0 interrupt */
8989
if ((active & adapter->queue[0].irq_mask) != 0) {
90-
tsnep_disable_irq(adapter, adapter->queue[0].irq_mask);
91-
napi_schedule(&adapter->queue[0].napi);
90+
if (napi_schedule_prep(&adapter->queue[0].napi)) {
91+
tsnep_disable_irq(adapter, adapter->queue[0].irq_mask);
92+
/* schedule after masking to avoid races */
93+
__napi_schedule(&adapter->queue[0].napi);
94+
}
9295
}
9396

9497
return IRQ_HANDLED;
@@ -99,8 +102,11 @@ static irqreturn_t tsnep_irq_txrx(int irq, void *arg)
99102
struct tsnep_queue *queue = arg;
100103

101104
/* handle TX/RX queue interrupt */
102-
tsnep_disable_irq(queue->adapter, queue->irq_mask);
103-
napi_schedule(&queue->napi);
105+
if (napi_schedule_prep(&queue->napi)) {
106+
tsnep_disable_irq(queue->adapter, queue->irq_mask);
107+
/* schedule after masking to avoid races */
108+
__napi_schedule(&queue->napi);
109+
}
104110

105111
return IRQ_HANDLED;
106112
}
@@ -1728,6 +1734,10 @@ static int tsnep_poll(struct napi_struct *napi, int budget)
17281734
if (queue->tx)
17291735
complete = tsnep_tx_poll(queue->tx, budget);
17301736

1737+
/* handle case where we are called by netpoll with a budget of 0 */
1738+
if (unlikely(budget <= 0))
1739+
return budget;
1740+
17311741
if (queue->rx) {
17321742
done = queue->rx->xsk_pool ?
17331743
tsnep_rx_poll_zc(queue->rx, napi, budget) :

drivers/net/ethernet/hisilicon/hns3/hns3_enet.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3353,6 +3353,15 @@ static void hns3_set_default_feature(struct net_device *netdev)
33533353
NETIF_F_HW_TC);
33543354

33553355
netdev->hw_enc_features |= netdev->vlan_features | NETIF_F_TSO_MANGLEID;
3356+
3357+
/* The device_version V3 hardware can't offload the checksum for IP in
3358+
* GRE packets, but can do it for NvGRE. So default to disable the
3359+
* checksum and GSO offload for GRE.
3360+
*/
3361+
if (ae_dev->dev_version > HNAE3_DEVICE_VERSION_V2) {
3362+
netdev->features &= ~NETIF_F_GSO_GRE;
3363+
netdev->features &= ~NETIF_F_GSO_GRE_CSUM;
3364+
}
33563365
}
33573366

33583367
static int hns3_alloc_buffer(struct hns3_enet_ring *ring,

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3564,9 +3564,14 @@ static u32 hclge_check_event_cause(struct hclge_dev *hdev, u32 *clearval)
35643564
static void hclge_clear_event_cause(struct hclge_dev *hdev, u32 event_type,
35653565
u32 regclr)
35663566
{
3567+
#define HCLGE_IMP_RESET_DELAY 5
3568+
35673569
switch (event_type) {
35683570
case HCLGE_VECTOR0_EVENT_PTP:
35693571
case HCLGE_VECTOR0_EVENT_RST:
3572+
if (regclr == BIT(HCLGE_VECTOR0_IMPRESET_INT_B))
3573+
mdelay(HCLGE_IMP_RESET_DELAY);
3574+
35703575
hclge_write_dev(&hdev->hw, HCLGE_MISC_RESET_STS_REG, regclr);
35713576
break;
35723577
case HCLGE_VECTOR0_EVENT_MBX:
@@ -7348,6 +7353,12 @@ static int hclge_del_cls_flower(struct hnae3_handle *handle,
73487353
ret = hclge_fd_tcam_config(hdev, HCLGE_FD_STAGE_1, true, rule->location,
73497354
NULL, false);
73507355
if (ret) {
7356+
/* if tcam config fail, set rule state to TO_DEL,
7357+
* so the rule will be deleted when periodic
7358+
* task being scheduled.
7359+
*/
7360+
hclge_update_fd_list(hdev, HCLGE_FD_TO_DEL, rule->location, NULL);
7361+
set_bit(HCLGE_STATE_FD_TBL_CHANGED, &hdev->state);
73517362
spin_unlock_bh(&hdev->fd_rule_lock);
73527363
return ret;
73537364
}
@@ -8824,7 +8835,7 @@ static void hclge_update_overflow_flags(struct hclge_vport *vport,
88248835
if (mac_type == HCLGE_MAC_ADDR_UC) {
88258836
if (is_all_added)
88268837
vport->overflow_promisc_flags &= ~HNAE3_OVERFLOW_UPE;
8827-
else
8838+
else if (hclge_is_umv_space_full(vport, true))
88288839
vport->overflow_promisc_flags |= HNAE3_OVERFLOW_UPE;
88298840
} else {
88308841
if (is_all_added)

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1855,7 +1855,8 @@ static void hclgevf_periodic_service_task(struct hclgevf_dev *hdev)
18551855
unsigned long delta = round_jiffies_relative(HZ);
18561856
struct hnae3_handle *handle = &hdev->nic;
18571857

1858-
if (test_bit(HCLGEVF_STATE_RST_FAIL, &hdev->state))
1858+
if (test_bit(HCLGEVF_STATE_RST_FAIL, &hdev->state) ||
1859+
test_bit(HCLGE_COMM_STATE_CMD_DISABLE, &hdev->hw.hw.comm_state))
18591860
return;
18601861

18611862
if (time_is_after_jiffies(hdev->last_serv_processed + HZ)) {

drivers/net/ethernet/huawei/hinic/hinic_port.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -456,9 +456,6 @@ int hinic_set_vlan_fliter(struct hinic_dev *nic_dev, u32 en)
456456
u16 out_size = sizeof(vlan_filter);
457457
int err;
458458

459-
if (!hwdev)
460-
return -EINVAL;
461-
462459
vlan_filter.func_idx = HINIC_HWIF_FUNC_IDX(hwif);
463460
vlan_filter.enable = en;
464461

0 commit comments

Comments
 (0)