Skip to content

Commit d759ee2

Browse files
committed
Merge tag 'net-6.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from can, bluetooth and wireless. No known regressions at this point. Another calm week, but chances are that has more to do with vacation season than the quality of our work. Current release - new code bugs: - smc: prevent NULL pointer dereference in txopt_get - eth: ti: am65-cpsw: number of XDP-related fixes Previous releases - regressions: - Revert "Bluetooth: MGMT/SMP: Fix address type when using SMP over BREDR/LE", it breaks existing user space - Bluetooth: qca: if memdump doesn't work, re-enable IBS to avoid later problems with suspend - can: mcp251x: fix deadlock if an interrupt occurs during mcp251x_open - eth: r8152: fix the firmware communication error due to use of bulk write - ptp: ocp: fix serial port information export - eth: igb: fix not clearing TimeSync interrupts for 82580 - Revert "wifi: ath11k: support hibernation", fix suspend on Lenovo Previous releases - always broken: - eth: intel: fix crashes and bugs when reconfiguration and resets happening in parallel - wifi: ath11k: fix NULL dereference in ath11k_mac_get_eirp_power() Misc: - docs: netdev: document guidance on cleanup.h" * tag 'net-6.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (61 commits) ila: call nf_unregister_net_hooks() sooner tools/net/ynl: fix cli.py --subscribe feature MAINTAINERS: fix ptp ocp driver maintainers address selftests: net: enable bind tests net: dsa: vsc73xx: fix possible subblocks range of CAPT block sched: sch_cake: fix bulk flow accounting logic for host fairness docs: netdev: document guidance on cleanup.h net: xilinx: axienet: Fix race in axienet_stop net: bridge: br_fdb_external_learn_add(): always set EXT_LEARN r8152: fix the firmware doesn't work fou: Fix null-ptr-deref in GRO. bareudp: Fix device stats updates. net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup bpf, net: Fix a potential race in do_sock_getsockopt() net: dqs: Do not use extern for unused dql_group sch/netem: fix use after free in netem_dequeue usbnet: modern method to get random MAC MAINTAINERS: wifi: cw1200: add net-cw1200.h ice: do not bring the VSI up, if it was down before the XDP setup ice: remove ICE_CFG_BUSY locking from AF_XDP code ...
2 parents f953599 + 031ae72 commit d759ee2

Some content is hidden

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

62 files changed

+853
-667
lines changed

Documentation/ABI/testing/sysfs-timecard

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -258,24 +258,29 @@ Description: (RW) When retrieving the PHC with the PTP SYS_OFFSET_EXTENDED
258258
the estimated point where the FPGA latches the PHC time. This
259259
value may be changed by writing an unsigned integer.
260260

261-
What: /sys/class/timecard/ocpN/ttyGNSS
262-
What: /sys/class/timecard/ocpN/ttyGNSS2
263-
Date: September 2021
261+
What: /sys/class/timecard/ocpN/tty
262+
Date: August 2024
263+
Contact: Vadim Fedorenko <[email protected]>
264+
Description: (RO) Directory containing the sysfs nodes for TTY attributes
265+
266+
What: /sys/class/timecard/ocpN/tty/ttyGNSS
267+
What: /sys/class/timecard/ocpN/tty/ttyGNSS2
268+
Date: August 2024
264269
Contact: Jonathan Lemon <[email protected]>
265-
Description: These optional attributes link to the TTY serial ports
266-
associated with the GNSS devices.
270+
Description: (RO) These optional attributes contain names of the TTY serial
271+
ports associated with the GNSS devices.
267272

268-
What: /sys/class/timecard/ocpN/ttyMAC
269-
Date: September 2021
273+
What: /sys/class/timecard/ocpN/tty/ttyMAC
274+
Date: August 2024
270275
Contact: Jonathan Lemon <[email protected]>
271-
Description: This optional attribute links to the TTY serial port
272-
associated with the Miniature Atomic Clock.
276+
Description: (RO) This optional attribute contains name of the TTY serial
277+
port associated with the Miniature Atomic Clock.
273278

274-
What: /sys/class/timecard/ocpN/ttyNMEA
275-
Date: September 2021
279+
What: /sys/class/timecard/ocpN/tty/ttyNMEA
280+
Date: August 2024
276281
Contact: Jonathan Lemon <[email protected]>
277-
Description: This optional attribute links to the TTY serial port
278-
which outputs the PHC time in NMEA ZDA format.
282+
Description: (RO) This optional attribute contains name of the TTY serial
283+
port which outputs the PHC time in NMEA ZDA format.
279284

280285
What: /sys/class/timecard/ocpN/utc_tai_offset
281286
Date: September 2021

Documentation/process/maintainer-netdev.rst

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,22 @@ When working in existing code which uses nonstandard formatting make
375375
your code follow the most recent guidelines, so that eventually all code
376376
in the domain of netdev is in the preferred format.
377377

378+
Using device-managed and cleanup.h constructs
379+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
380+
381+
Netdev remains skeptical about promises of all "auto-cleanup" APIs,
382+
including even ``devm_`` helpers, historically. They are not the preferred
383+
style of implementation, merely an acceptable one.
384+
385+
Use of ``guard()`` is discouraged within any function longer than 20 lines,
386+
``scoped_guard()`` is considered more readable. Using normal lock/unlock is
387+
still (weakly) preferred.
388+
389+
Low level cleanup constructs (such as ``__free()``) can be used when building
390+
APIs and helpers, especially scoped iterators. However, direct use of
391+
``__free()`` within networking core and drivers is discouraged.
392+
Similar guidance applies to declaring variables mid-function.
393+
378394
Resending after review
379395
~~~~~~~~~~~~~~~~~~~~~~
380396

MAINTAINERS

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5956,6 +5956,7 @@ F: Documentation/process/cve.rst
59565956
CW1200 WLAN driver
59575957
S: Orphan
59585958
F: drivers/net/wireless/st/cw1200/
5959+
F: include/linux/platform_data/net-cw1200.h
59595960

59605961
CX18 VIDEO4LINUX DRIVER
59615962
M: Andy Walls <[email protected]>
@@ -15905,6 +15906,8 @@ F: include/uapi/linux/ethtool_netlink.h
1590515906
F: include/uapi/linux/if_*
1590615907
F: include/uapi/linux/netdev*
1590715908
F: tools/testing/selftests/drivers/net/
15909+
X: Documentation/devicetree/bindings/net/bluetooth/
15910+
X: Documentation/devicetree/bindings/net/wireless/
1590815911
X: drivers/net/wireless/
1590915912

1591015913
NETWORKING DRIVERS (WIRELESS)
@@ -17130,7 +17133,7 @@ F: include/dt-bindings/
1713017133

1713117134
OPENCOMPUTE PTP CLOCK DRIVER
1713217135
M: Jonathan Lemon <[email protected]>
17133-
M: Vadim Fedorenko <vadfed@linux.dev>
17136+
M: Vadim Fedorenko <vadim.fedorenko@linux.dev>
1713417137
1713517138
S: Maintained
1713617139
F: drivers/ptp/ptp_ocp.c

drivers/bluetooth/hci_qca.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,6 +1091,7 @@ static void qca_controller_memdump(struct work_struct *work)
10911091
qca->memdump_state = QCA_MEMDUMP_COLLECTED;
10921092
cancel_delayed_work(&qca->ctrl_memdump_timeout);
10931093
clear_bit(QCA_MEMDUMP_COLLECTION, &qca->flags);
1094+
clear_bit(QCA_IBS_DISABLED, &qca->flags);
10941095
mutex_unlock(&qca->hci_memdump_lock);
10951096
return;
10961097
}

drivers/net/bareudp.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
8383

8484
if (skb_copy_bits(skb, BAREUDP_BASE_HLEN, &ipversion,
8585
sizeof(ipversion))) {
86-
bareudp->dev->stats.rx_dropped++;
86+
DEV_STATS_INC(bareudp->dev, rx_dropped);
8787
goto drop;
8888
}
8989
ipversion >>= 4;
@@ -93,7 +93,7 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
9393
} else if (ipversion == 6 && bareudp->multi_proto_mode) {
9494
proto = htons(ETH_P_IPV6);
9595
} else {
96-
bareudp->dev->stats.rx_dropped++;
96+
DEV_STATS_INC(bareudp->dev, rx_dropped);
9797
goto drop;
9898
}
9999
} else if (bareudp->ethertype == htons(ETH_P_MPLS_UC)) {
@@ -107,7 +107,7 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
107107
ipv4_is_multicast(tunnel_hdr->daddr)) {
108108
proto = htons(ETH_P_MPLS_MC);
109109
} else {
110-
bareudp->dev->stats.rx_dropped++;
110+
DEV_STATS_INC(bareudp->dev, rx_dropped);
111111
goto drop;
112112
}
113113
} else {
@@ -123,7 +123,7 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
123123
(addr_type & IPV6_ADDR_MULTICAST)) {
124124
proto = htons(ETH_P_MPLS_MC);
125125
} else {
126-
bareudp->dev->stats.rx_dropped++;
126+
DEV_STATS_INC(bareudp->dev, rx_dropped);
127127
goto drop;
128128
}
129129
}
@@ -135,15 +135,15 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
135135
proto,
136136
!net_eq(bareudp->net,
137137
dev_net(bareudp->dev)))) {
138-
bareudp->dev->stats.rx_dropped++;
138+
DEV_STATS_INC(bareudp->dev, rx_dropped);
139139
goto drop;
140140
}
141141

142142
__set_bit(IP_TUNNEL_KEY_BIT, key);
143143

144144
tun_dst = udp_tun_rx_dst(skb, family, key, 0, 0);
145145
if (!tun_dst) {
146-
bareudp->dev->stats.rx_dropped++;
146+
DEV_STATS_INC(bareudp->dev, rx_dropped);
147147
goto drop;
148148
}
149149
skb_dst_set(skb, &tun_dst->dst);
@@ -169,8 +169,8 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
169169
&((struct ipv6hdr *)oiph)->saddr);
170170
}
171171
if (err > 1) {
172-
++bareudp->dev->stats.rx_frame_errors;
173-
++bareudp->dev->stats.rx_errors;
172+
DEV_STATS_INC(bareudp->dev, rx_frame_errors);
173+
DEV_STATS_INC(bareudp->dev, rx_errors);
174174
goto drop;
175175
}
176176
}
@@ -467,11 +467,11 @@ static netdev_tx_t bareudp_xmit(struct sk_buff *skb, struct net_device *dev)
467467
dev_kfree_skb(skb);
468468

469469
if (err == -ELOOP)
470-
dev->stats.collisions++;
470+
DEV_STATS_INC(dev, collisions);
471471
else if (err == -ENETUNREACH)
472-
dev->stats.tx_carrier_errors++;
472+
DEV_STATS_INC(dev, tx_carrier_errors);
473473

474-
dev->stats.tx_errors++;
474+
DEV_STATS_INC(dev, tx_errors);
475475
return NETDEV_TX_OK;
476476
}
477477

drivers/net/can/kvaser_pciefd.c

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1686,6 +1686,7 @@ static irqreturn_t kvaser_pciefd_irq_handler(int irq, void *dev)
16861686
const struct kvaser_pciefd_irq_mask *irq_mask = pcie->driver_data->irq_mask;
16871687
u32 pci_irq = ioread32(KVASER_PCIEFD_PCI_IRQ_ADDR(pcie));
16881688
u32 srb_irq = 0;
1689+
u32 srb_release = 0;
16891690
int i;
16901691

16911692
if (!(pci_irq & irq_mask->all))
@@ -1699,17 +1700,14 @@ static irqreturn_t kvaser_pciefd_irq_handler(int irq, void *dev)
16991700
kvaser_pciefd_transmit_irq(pcie->can[i]);
17001701
}
17011702

1702-
if (srb_irq & KVASER_PCIEFD_SRB_IRQ_DPD0) {
1703-
/* Reset DMA buffer 0, may trigger new interrupt */
1704-
iowrite32(KVASER_PCIEFD_SRB_CMD_RDB0,
1705-
KVASER_PCIEFD_SRB_ADDR(pcie) + KVASER_PCIEFD_SRB_CMD_REG);
1706-
}
1703+
if (srb_irq & KVASER_PCIEFD_SRB_IRQ_DPD0)
1704+
srb_release |= KVASER_PCIEFD_SRB_CMD_RDB0;
17071705

1708-
if (srb_irq & KVASER_PCIEFD_SRB_IRQ_DPD1) {
1709-
/* Reset DMA buffer 1, may trigger new interrupt */
1710-
iowrite32(KVASER_PCIEFD_SRB_CMD_RDB1,
1711-
KVASER_PCIEFD_SRB_ADDR(pcie) + KVASER_PCIEFD_SRB_CMD_REG);
1712-
}
1706+
if (srb_irq & KVASER_PCIEFD_SRB_IRQ_DPD1)
1707+
srb_release |= KVASER_PCIEFD_SRB_CMD_RDB1;
1708+
1709+
if (srb_release)
1710+
iowrite32(srb_release, KVASER_PCIEFD_SRB_ADDR(pcie) + KVASER_PCIEFD_SRB_CMD_REG);
17131711

17141712
return IRQ_HANDLED;
17151713
}

0 commit comments

Comments
 (0)