Skip to content

Commit 5abfdfd

Browse files
committed
Merge tag 'net-6.11-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Including fixes from netfilter. There is a recently notified BT regression with no fix yet. I do not think a fix will land in the next week. Current release - regressions: - core: tighten bad gso csum offset check in virtio_net_hdr - netfilter: move nf flowtable bpf initialization in nf_flow_table_module_init() - eth: ice: stop calling pci_disable_device() as we use pcim - eth: fou: fix null-ptr-deref in GRO. Current release - new code bugs: - hsr: prevent NULL pointer dereference in hsr_proxy_announce() Previous releases - regressions: - hsr: remove seqnr_lock - netfilter: nft_socket: fix sk refcount leaks - mptcp: pm: fix uaf in __timer_delete_sync - phy: dp83822: fix NULL pointer dereference on DP83825 devices - eth: revert "virtio_net: rx enable premapped mode by default" - eth: octeontx2-af: Modify SMQ flush sequence to drop packets Previous releases - always broken: - eth: mlx5: fix bridge mode operations when there are no VFs - eth: igb: Always call igb_xdp_ring_update_tail() under Tx lock" * tag 'net-6.11-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (36 commits) net: netfilter: move nf flowtable bpf initialization in nf_flow_table_module_init() net: tighten bad gso csum offset check in virtio_net_hdr netlink: specs: mptcp: fix port endianness net: dpaa: Pad packets to ETH_ZLEN mptcp: pm: Fix uaf in __timer_delete_sync net: libwx: fix number of Rx and Tx descriptors net: dsa: felix: ignore pending status of TAS module when it's disabled net: hsr: prevent NULL pointer dereference in hsr_proxy_announce() selftests: mptcp: include net_helper.sh file selftests: mptcp: include lib.sh file selftests: mptcp: join: restrict fullmesh endp on 1st sf netfilter: nft_socket: make cgroupsv2 matching work with namespaces netfilter: nft_socket: fix sk refcount leaks MAINTAINERS: Add ethtool pse-pd to PSE NETWORK DRIVER dt-bindings: net: tja11xx: fix the broken binding selftests: net: csum: Fix checksums for packets with non-zero padding net: phy: dp83822: Fix NULL pointer dereference on DP83825 devices virtio_net: disable premapped mode by default Revert "virtio_net: big mode skip the unmap check" Revert "virtio_net: rx remove premapped failover code" ...
2 parents 42c5b51 + 3e70525 commit 5abfdfd

File tree

34 files changed

+364
-190
lines changed

34 files changed

+364
-190
lines changed

Documentation/devicetree/bindings/net/nxp,tja11xx.yaml

Lines changed: 46 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,53 @@ maintainers:
1414
description:
1515
Bindings for NXP TJA11xx automotive PHYs
1616

17+
properties:
18+
compatible:
19+
enum:
20+
- ethernet-phy-id0180.dc40
21+
- ethernet-phy-id0180.dc41
22+
- ethernet-phy-id0180.dc48
23+
- ethernet-phy-id0180.dd00
24+
- ethernet-phy-id0180.dd01
25+
- ethernet-phy-id0180.dd02
26+
- ethernet-phy-id0180.dc80
27+
- ethernet-phy-id0180.dc82
28+
- ethernet-phy-id001b.b010
29+
- ethernet-phy-id001b.b013
30+
- ethernet-phy-id001b.b030
31+
- ethernet-phy-id001b.b031
32+
1733
allOf:
1834
- $ref: ethernet-phy.yaml#
35+
- if:
36+
properties:
37+
compatible:
38+
contains:
39+
enum:
40+
- ethernet-phy-id0180.dc40
41+
- ethernet-phy-id0180.dc41
42+
- ethernet-phy-id0180.dc48
43+
- ethernet-phy-id0180.dd00
44+
- ethernet-phy-id0180.dd01
45+
- ethernet-phy-id0180.dd02
46+
47+
then:
48+
properties:
49+
nxp,rmii-refclk-in:
50+
type: boolean
51+
description: |
52+
The REF_CLK is provided for both transmitted and received data
53+
in RMII mode. This clock signal is provided by the PHY and is
54+
typically derived from an external 25MHz crystal. Alternatively,
55+
a 50MHz clock signal generated by an external oscillator can be
56+
connected to pin REF_CLK. A third option is to connect a 25MHz
57+
clock to pin CLK_IN_OUT. So, the REF_CLK should be configured
58+
as input or output according to the actual circuit connection.
59+
If present, indicates that the REF_CLK will be configured as
60+
interface reference clock input when RMII mode enabled.
61+
If not present, the REF_CLK will be configured as interface
62+
reference clock output when RMII mode enabled.
63+
Only supported on TJA1100 and TJA1101.
1964
2065
patternProperties:
2166
"^ethernet-phy@[0-9a-f]+$":
@@ -32,22 +77,6 @@ patternProperties:
3277
description:
3378
The ID number for the child PHY. Should be +1 of parent PHY.
3479

35-
nxp,rmii-refclk-in:
36-
type: boolean
37-
description: |
38-
The REF_CLK is provided for both transmitted and received data
39-
in RMII mode. This clock signal is provided by the PHY and is
40-
typically derived from an external 25MHz crystal. Alternatively,
41-
a 50MHz clock signal generated by an external oscillator can be
42-
connected to pin REF_CLK. A third option is to connect a 25MHz
43-
clock to pin CLK_IN_OUT. So, the REF_CLK should be configured
44-
as input or output according to the actual circuit connection.
45-
If present, indicates that the REF_CLK will be configured as
46-
interface reference clock input when RMII mode enabled.
47-
If not present, the REF_CLK will be configured as interface
48-
reference clock output when RMII mode enabled.
49-
Only supported on TJA1100 and TJA1101.
50-
5180
required:
5281
- reg
5382

@@ -60,6 +89,7 @@ examples:
6089
#size-cells = <0>;
6190
6291
tja1101_phy0: ethernet-phy@4 {
92+
compatible = "ethernet-phy-id0180.dc40";
6393
reg = <0x4>;
6494
nxp,rmii-refclk-in;
6595
};

Documentation/netlink/specs/mptcp_pm.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ attribute-sets:
109109
-
110110
name: port
111111
type: u16
112-
byte-order: big-endian
113112
-
114113
name: flags
115114
type: u32

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18407,6 +18407,7 @@ L: netdev@vger.kernel.org
1840718407
S: Maintained
1840818408
F: Documentation/devicetree/bindings/net/pse-pd/
1840918409
F: drivers/net/pse-pd/
18410+
F: net/ethtool/pse-pd.c
1841018411

1841118412
PSTORE FILESYSTEM
1841218413
M: Kees Cook <kees@kernel.org>

drivers/net/dsa/ocelot/felix_vsc9959.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1474,10 +1474,13 @@ static int vsc9959_qos_port_tas_set(struct ocelot *ocelot, int port,
14741474
/* Hardware errata - Admin config could not be overwritten if
14751475
* config is pending, need reset the TAS module
14761476
*/
1477-
val = ocelot_read(ocelot, QSYS_PARAM_STATUS_REG_8);
1478-
if (val & QSYS_PARAM_STATUS_REG_8_CONFIG_PENDING) {
1479-
ret = -EBUSY;
1480-
goto err_reset_tc;
1477+
val = ocelot_read_rix(ocelot, QSYS_TAG_CONFIG, port);
1478+
if (val & QSYS_TAG_CONFIG_ENABLE) {
1479+
val = ocelot_read(ocelot, QSYS_PARAM_STATUS_REG_8);
1480+
if (val & QSYS_PARAM_STATUS_REG_8_CONFIG_PENDING) {
1481+
ret = -EBUSY;
1482+
goto err_reset_tc;
1483+
}
14811484
}
14821485

14831486
ocelot_rmw_rix(ocelot,

drivers/net/ethernet/faraday/ftgmac100.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
FTGMAC100_INT_RPKT_BUF)
8585

8686
/* All the interrupts we care about */
87-
#define FTGMAC100_INT_ALL (FTGMAC100_INT_RPKT_BUF | \
87+
#define FTGMAC100_INT_ALL (FTGMAC100_INT_RXTX | \
8888
FTGMAC100_INT_BAD)
8989

9090
/*

drivers/net/ethernet/freescale/dpaa/dpaa_eth.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2272,12 +2272,12 @@ static netdev_tx_t
22722272
dpaa_start_xmit(struct sk_buff *skb, struct net_device *net_dev)
22732273
{
22742274
const int queue_mapping = skb_get_queue_mapping(skb);
2275-
bool nonlinear = skb_is_nonlinear(skb);
22762275
struct rtnl_link_stats64 *percpu_stats;
22772276
struct dpaa_percpu_priv *percpu_priv;
22782277
struct netdev_queue *txq;
22792278
struct dpaa_priv *priv;
22802279
struct qm_fd fd;
2280+
bool nonlinear;
22812281
int offset = 0;
22822282
int err = 0;
22832283

@@ -2287,6 +2287,13 @@ dpaa_start_xmit(struct sk_buff *skb, struct net_device *net_dev)
22872287

22882288
qm_fd_clear_fd(&fd);
22892289

2290+
/* Packet data is always read as 32-bit words, so zero out any part of
2291+
* the skb which might be sent if we have to pad the packet
2292+
*/
2293+
if (__skb_put_padto(skb, ETH_ZLEN, false))
2294+
goto enomem;
2295+
2296+
nonlinear = skb_is_nonlinear(skb);
22902297
if (!nonlinear) {
22912298
/* We're going to store the skb backpointer at the beginning
22922299
* of the data buffer, so we need a privately owned skb

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

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2413,13 +2413,6 @@ void ice_vsi_decfg(struct ice_vsi *vsi)
24132413
struct ice_pf *pf = vsi->back;
24142414
int err;
24152415

2416-
/* The Rx rule will only exist to remove if the LLDP FW
2417-
* engine is currently stopped
2418-
*/
2419-
if (!ice_is_safe_mode(pf) && vsi->type == ICE_VSI_PF &&
2420-
!test_bit(ICE_FLAG_FW_LLDP_AGENT, pf->flags))
2421-
ice_cfg_sw_lldp(vsi, false, false);
2422-
24232416
ice_rm_vsi_lan_cfg(vsi->port_info, vsi->idx);
24242417
err = ice_rm_vsi_rdma_cfg(vsi->port_info, vsi->idx);
24252418
if (err)
@@ -2764,6 +2757,14 @@ int ice_vsi_release(struct ice_vsi *vsi)
27642757
ice_rss_clean(vsi);
27652758

27662759
ice_vsi_close(vsi);
2760+
2761+
/* The Rx rule will only exist to remove if the LLDP FW
2762+
* engine is currently stopped
2763+
*/
2764+
if (!ice_is_safe_mode(pf) && vsi->type == ICE_VSI_PF &&
2765+
!test_bit(ICE_FLAG_FW_LLDP_AGENT, pf->flags))
2766+
ice_cfg_sw_lldp(vsi, false, false);
2767+
27672768
ice_vsi_decfg(vsi);
27682769

27692770
/* retain SW VSI data structure since it is needed to unregister and

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5363,7 +5363,6 @@ ice_probe(struct pci_dev *pdev, const struct pci_device_id __always_unused *ent)
53635363
ice_deinit(pf);
53645364
err_init:
53655365
ice_adapter_put(pdev);
5366-
pci_disable_device(pdev);
53675366
return err;
53685367
}
53695368

@@ -5470,7 +5469,6 @@ static void ice_remove(struct pci_dev *pdev)
54705469
ice_set_wake(pf);
54715470

54725471
ice_adapter_put(pdev);
5473-
pci_disable_device(pdev);
54745472
}
54755473

54765474
/**

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3194,7 +3194,7 @@ ice_add_update_vsi_list(struct ice_hw *hw,
31943194

31953195
/* A rule already exists with the new VSI being added */
31963196
if (test_bit(vsi_handle, m_entry->vsi_list_info->vsi_map))
3197-
return 0;
3197+
return -EEXIST;
31983198

31993199
/* Update the previously created VSI list set with
32003200
* the new VSI ID passed in
@@ -3264,7 +3264,7 @@ ice_find_vsi_list_entry(struct ice_hw *hw, u8 recp_id, u16 vsi_handle,
32643264

32653265
list_head = &sw->recp_list[recp_id].filt_rules;
32663266
list_for_each_entry(list_itr, list_head, list_entry) {
3267-
if (list_itr->vsi_list_info) {
3267+
if (list_itr->vsi_count == 1 && list_itr->vsi_list_info) {
32683268
map_info = list_itr->vsi_list_info;
32693269
if (test_bit(vsi_handle, map_info->vsi_map)) {
32703270
*vsi_list_id = map_info->vsi_list_id;

drivers/net/ethernet/intel/igb/igb_main.c

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <linux/bpf_trace.h>
3434
#include <linux/pm_runtime.h>
3535
#include <linux/etherdevice.h>
36+
#include <linux/lockdep.h>
3637
#ifdef CONFIG_IGB_DCA
3738
#include <linux/dca.h>
3839
#endif
@@ -2914,8 +2915,11 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
29142915
}
29152916
}
29162917

2918+
/* This function assumes __netif_tx_lock is held by the caller. */
29172919
static void igb_xdp_ring_update_tail(struct igb_ring *ring)
29182920
{
2921+
lockdep_assert_held(&txring_txq(ring)->_xmit_lock);
2922+
29192923
/* Force memory writes to complete before letting h/w know there
29202924
* are new descriptors to fetch.
29212925
*/
@@ -3000,11 +3004,11 @@ static int igb_xdp_xmit(struct net_device *dev, int n,
30003004
nxmit++;
30013005
}
30023006

3003-
__netif_tx_unlock(nq);
3004-
30053007
if (unlikely(flags & XDP_XMIT_FLUSH))
30063008
igb_xdp_ring_update_tail(tx_ring);
30073009

3010+
__netif_tx_unlock(nq);
3011+
30083012
return nxmit;
30093013
}
30103014

@@ -8864,12 +8868,14 @@ static void igb_put_rx_buffer(struct igb_ring *rx_ring,
88648868

88658869
static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
88668870
{
8871+
unsigned int total_bytes = 0, total_packets = 0;
88678872
struct igb_adapter *adapter = q_vector->adapter;
88688873
struct igb_ring *rx_ring = q_vector->rx.ring;
8869-
struct sk_buff *skb = rx_ring->skb;
8870-
unsigned int total_bytes = 0, total_packets = 0;
88718874
u16 cleaned_count = igb_desc_unused(rx_ring);
8875+
struct sk_buff *skb = rx_ring->skb;
8876+
int cpu = smp_processor_id();
88728877
unsigned int xdp_xmit = 0;
8878+
struct netdev_queue *nq;
88738879
struct xdp_buff xdp;
88748880
u32 frame_sz = 0;
88758881
int rx_buf_pgcnt;
@@ -8997,7 +9003,10 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
89979003
if (xdp_xmit & IGB_XDP_TX) {
89989004
struct igb_ring *tx_ring = igb_xdp_tx_queue_mapping(adapter);
89999005

9006+
nq = txring_txq(tx_ring);
9007+
__netif_tx_lock(nq, cpu);
90009008
igb_xdp_ring_update_tail(tx_ring);
9009+
__netif_tx_unlock(nq);
90019010
}
90029011

90039012
u64_stats_update_begin(&rx_ring->rx_syncp);

0 commit comments

Comments
 (0)