Skip to content

Commit f2a3b12

Browse files
committed
Merge tag 'net-6.19-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from netfilter and wireless. Current release - fix to a fix: - net: do not write to msg_get_inq in callee - arp: do not assume dev_hard_header() does not change skb->head Current release - regressions: - wifi: mac80211: don't iterate not running interfaces - eth: mlx5: fix NULL pointer dereference in ioctl module EEPROM Current release - new code bugs: - eth: bnge: add AUXILIARY_BUS to Kconfig dependencies Previous releases - regressions: - eth: mlx5: dealloc forgotten PSP RX modify header Previous releases - always broken: - ping: fix ICMP out SNMP stats double-counting with ICMP sockets - bonding: preserve NETIF_F_ALL_FOR_ALL across TSO updates - bridge: fix C-VLAN preservation in 802.1ad vlan_tunnel egress - eth: bnxt: fix potential data corruption with HW GRO/LRO" * tag 'net-6.19-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (70 commits) arp: do not assume dev_hard_header() does not change skb->head net: enetc: fix build warning when PAGE_SIZE is greater than 128K atm: Fix dma_free_coherent() size tools: ynl: don't install tests net: do not write to msg_get_inq in callee bnxt_en: Fix NULL pointer crash in bnxt_ptp_enable during error cleanup net: usb: pegasus: fix memory leak in update_eth_regs_async() net: 3com: 3c59x: fix possible null dereference in vortex_probe1() net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate in qfq_reset wifi: mac80211: collect station statistics earlier when disconnect wifi: mac80211: restore non-chanctx injection behaviour wifi: mac80211_hwsim: disable BHs for hwsim_radio_lock wifi: mac80211: don't iterate not running interfaces wifi: mac80211_hwsim: fix typo in frequency notification wifi: avoid kernel-infoleak from struct iw_point net: airoha: Fix schedule while atomic in airoha_ppe_deinit() selftests: netdevsim: add carrier state consistency test net: netdevsim: fix inconsistent carrier state after link/unlink selftests: drv-net: Bring back tool() to driver __init__s net/sched: act_api: avoid dereferencing ERR_PTR in tcf_idrinfo_destroy ...
2 parents 79b95d7 + c92510f commit f2a3b12

74 files changed

Lines changed: 637 additions & 372 deletions

File tree

Some content is hidden

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

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,7 @@ Juha Yrjola <at solidboot.com>
416416
Juha Yrjola <[email protected]>
417417
Juha Yrjola <[email protected]>
418418
419+
419420
420421
421422

Documentation/netlink/specs/netdev.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ attribute-sets:
142142
name: ifindex
143143
doc: |
144144
ifindex of the netdev to which the pool belongs.
145-
May be reported as 0 if the page pool was allocated for a netdev
145+
May not be reported if the page pool was allocated for a netdev
146146
which got destroyed already (page pools may outlast their netdevs
147147
because they wait for all memory to be returned).
148148
type: u32
@@ -601,7 +601,9 @@ operations:
601601
name: page-pool-get
602602
doc: |
603603
Get / dump information about Page Pools.
604-
(Only Page Pools associated with a net_device can be listed.)
604+
Only Page Pools associated by the driver with a net_device
605+
can be listed. ifindex will not be reported if the net_device
606+
no longer exists.
605607
attribute-set: page-pool
606608
do:
607609
request:

MAINTAINERS

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1283,6 +1283,7 @@ F: include/uapi/drm/amdxdna_accel.h
12831283

12841284
AMD XGBE DRIVER
12851285
M: "Shyam Sundar S K" <[email protected]>
1286+
M: Raju Rangoju <[email protected]>
12861287
12871288
S: Maintained
12881289
F: arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
@@ -18283,7 +18284,7 @@ X: net/wireless/
1828318284
X: tools/testing/selftests/net/can/
1828418285

1828518286
NETWORKING [IOAM]
18286-
M: Justin Iurman <justin.iurman@uliege.be>
18287+
M: Justin Iurman <justin.iurman@gmail.com>
1828718288
S: Maintained
1828818289
F: Documentation/networking/ioam6*
1828918290
F: include/linux/ioam6*

drivers/atm/he.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1587,7 +1587,8 @@ he_stop(struct he_dev *he_dev)
15871587
he_dev->tbrq_base, he_dev->tbrq_phys);
15881588

15891589
if (he_dev->tpdrq_base)
1590-
dma_free_coherent(&he_dev->pci_dev->dev, CONFIG_TBRQ_SIZE * sizeof(struct he_tbrq),
1590+
dma_free_coherent(&he_dev->pci_dev->dev,
1591+
CONFIG_TPDRQ_SIZE * sizeof(struct he_tpdrq),
15911592
he_dev->tpdrq_base, he_dev->tpdrq_phys);
15921593

15931594
dma_pool_destroy(he_dev->tpd_pool);

drivers/net/dsa/mv88e6xxx/chip.c

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3364,13 +3364,10 @@ static int mv88e6xxx_setup_upstream_port(struct mv88e6xxx_chip *chip, int port)
33643364

33653365
static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port)
33663366
{
3367-
struct device_node *phy_handle = NULL;
33683367
struct fwnode_handle *ports_fwnode;
33693368
struct fwnode_handle *port_fwnode;
33703369
struct dsa_switch *ds = chip->ds;
33713370
struct mv88e6xxx_port *p;
3372-
struct dsa_port *dp;
3373-
int tx_amp;
33743371
int err;
33753372
u16 reg;
33763373
u32 val;
@@ -3582,23 +3579,6 @@ static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port)
35823579
return err;
35833580
}
35843581

3585-
if (chip->info->ops->serdes_set_tx_amplitude) {
3586-
dp = dsa_to_port(ds, port);
3587-
if (dp)
3588-
phy_handle = of_parse_phandle(dp->dn, "phy-handle", 0);
3589-
3590-
if (phy_handle && !of_property_read_u32(phy_handle,
3591-
"tx-p2p-microvolt",
3592-
&tx_amp))
3593-
err = chip->info->ops->serdes_set_tx_amplitude(chip,
3594-
port, tx_amp);
3595-
if (phy_handle) {
3596-
of_node_put(phy_handle);
3597-
if (err)
3598-
return err;
3599-
}
3600-
}
3601-
36023582
/* Port based VLAN map: give each port the same default address
36033583
* database, and allow bidirectional communication between the
36043584
* CPU and DSA port(s), and the other ports.
@@ -4768,7 +4748,6 @@ static const struct mv88e6xxx_ops mv88e6176_ops = {
47684748
.serdes_irq_mapping = mv88e6352_serdes_irq_mapping,
47694749
.serdes_get_regs_len = mv88e6352_serdes_get_regs_len,
47704750
.serdes_get_regs = mv88e6352_serdes_get_regs,
4771-
.serdes_set_tx_amplitude = mv88e6352_serdes_set_tx_amplitude,
47724751
.gpio_ops = &mv88e6352_gpio_ops,
47734752
.phylink_get_caps = mv88e6352_phylink_get_caps,
47744753
.pcs_ops = &mv88e6352_pcs_ops,
@@ -5044,7 +5023,6 @@ static const struct mv88e6xxx_ops mv88e6240_ops = {
50445023
.serdes_irq_mapping = mv88e6352_serdes_irq_mapping,
50455024
.serdes_get_regs_len = mv88e6352_serdes_get_regs_len,
50465025
.serdes_get_regs = mv88e6352_serdes_get_regs,
5047-
.serdes_set_tx_amplitude = mv88e6352_serdes_set_tx_amplitude,
50485026
.gpio_ops = &mv88e6352_gpio_ops,
50495027
.avb_ops = &mv88e6352_avb_ops,
50505028
.ptp_ops = &mv88e6352_ptp_ops,
@@ -5481,7 +5459,6 @@ static const struct mv88e6xxx_ops mv88e6352_ops = {
54815459
.serdes_get_stats = mv88e6352_serdes_get_stats,
54825460
.serdes_get_regs_len = mv88e6352_serdes_get_regs_len,
54835461
.serdes_get_regs = mv88e6352_serdes_get_regs,
5484-
.serdes_set_tx_amplitude = mv88e6352_serdes_set_tx_amplitude,
54855462
.phylink_get_caps = mv88e6352_phylink_get_caps,
54865463
.pcs_ops = &mv88e6352_pcs_ops,
54875464
};

drivers/net/dsa/mv88e6xxx/chip.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -642,10 +642,6 @@ struct mv88e6xxx_ops {
642642
void (*serdes_get_regs)(struct mv88e6xxx_chip *chip, int port,
643643
void *_p);
644644

645-
/* SERDES SGMII/Fiber Output Amplitude */
646-
int (*serdes_set_tx_amplitude)(struct mv88e6xxx_chip *chip, int port,
647-
int val);
648-
649645
/* Address Translation Unit operations */
650646
int (*atu_get_hash)(struct mv88e6xxx_chip *chip, u8 *hash);
651647
int (*atu_set_hash)(struct mv88e6xxx_chip *chip, u8 hash);

drivers/net/dsa/mv88e6xxx/serdes.c

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,6 @@ static int mv88e6352_serdes_read(struct mv88e6xxx_chip *chip, int reg,
2525
reg, val);
2626
}
2727

28-
static int mv88e6352_serdes_write(struct mv88e6xxx_chip *chip, int reg,
29-
u16 val)
30-
{
31-
return mv88e6xxx_phy_page_write(chip, MV88E6352_ADDR_SERDES,
32-
MV88E6352_SERDES_PAGE_FIBER,
33-
reg, val);
34-
}
35-
3628
static int mv88e6390_serdes_read(struct mv88e6xxx_chip *chip,
3729
int lane, int device, int reg, u16 *val)
3830
{
@@ -506,41 +498,3 @@ void mv88e6390_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p)
506498
p[i] = reg;
507499
}
508500
}
509-
510-
static const int mv88e6352_serdes_p2p_to_reg[] = {
511-
/* Index of value in microvolts corresponds to the register value */
512-
14000, 112000, 210000, 308000, 406000, 504000, 602000, 700000,
513-
};
514-
515-
int mv88e6352_serdes_set_tx_amplitude(struct mv88e6xxx_chip *chip, int port,
516-
int val)
517-
{
518-
bool found = false;
519-
u16 ctrl, reg;
520-
int err;
521-
int i;
522-
523-
err = mv88e6352_g2_scratch_port_has_serdes(chip, port);
524-
if (err <= 0)
525-
return err;
526-
527-
for (i = 0; i < ARRAY_SIZE(mv88e6352_serdes_p2p_to_reg); ++i) {
528-
if (mv88e6352_serdes_p2p_to_reg[i] == val) {
529-
reg = i;
530-
found = true;
531-
break;
532-
}
533-
}
534-
535-
if (!found)
536-
return -EINVAL;
537-
538-
err = mv88e6352_serdes_read(chip, MV88E6352_SERDES_SPEC_CTRL2, &ctrl);
539-
if (err)
540-
return err;
541-
542-
ctrl &= ~MV88E6352_SERDES_OUT_AMP_MASK;
543-
ctrl |= reg;
544-
545-
return mv88e6352_serdes_write(chip, MV88E6352_SERDES_SPEC_CTRL2, ctrl);
546-
}

drivers/net/dsa/mv88e6xxx/serdes.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ struct phylink_link_state;
2929
#define MV88E6352_SERDES_INT_FIBRE_ENERGY BIT(4)
3030
#define MV88E6352_SERDES_INT_STATUS 0x13
3131

32-
#define MV88E6352_SERDES_SPEC_CTRL2 0x1a
33-
#define MV88E6352_SERDES_OUT_AMP_MASK 0x0007
3432

3533
#define MV88E6341_PORT5_LANE 0x15
3634

@@ -140,9 +138,6 @@ void mv88e6352_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p);
140138
int mv88e6390_serdes_get_regs_len(struct mv88e6xxx_chip *chip, int port);
141139
void mv88e6390_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p);
142140

143-
int mv88e6352_serdes_set_tx_amplitude(struct mv88e6xxx_chip *chip, int port,
144-
int val);
145-
146141
/* Return the (first) SERDES lane address a port is using, -errno otherwise. */
147142
static inline int mv88e6xxx_serdes_get_lane(struct mv88e6xxx_chip *chip,
148143
int port)

drivers/net/ethernet/3com/3c59x.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1473,7 +1473,7 @@ static int vortex_probe1(struct device *gendev, void __iomem *ioaddr, int irq,
14731473
return 0;
14741474

14751475
free_ring:
1476-
dma_free_coherent(&pdev->dev,
1476+
dma_free_coherent(gendev,
14771477
sizeof(struct boom_rx_desc) * RX_RING_SIZE +
14781478
sizeof(struct boom_tx_desc) * TX_RING_SIZE,
14791479
vp->rx_ring, vp->rx_ring_dma);

drivers/net/ethernet/airoha/airoha_ppe.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1547,13 +1547,16 @@ void airoha_ppe_deinit(struct airoha_eth *eth)
15471547
{
15481548
struct airoha_npu *npu;
15491549

1550-
rcu_read_lock();
1551-
npu = rcu_dereference(eth->npu);
1550+
mutex_lock(&flow_offload_mutex);
1551+
1552+
npu = rcu_replace_pointer(eth->npu, NULL,
1553+
lockdep_is_held(&flow_offload_mutex));
15521554
if (npu) {
15531555
npu->ops.ppe_deinit(npu);
15541556
airoha_npu_put(npu);
15551557
}
1556-
rcu_read_unlock();
1558+
1559+
mutex_unlock(&flow_offload_mutex);
15571560

15581561
rhashtable_destroy(&eth->ppe->l2_flows);
15591562
rhashtable_destroy(&eth->flow_table);

0 commit comments

Comments
 (0)