Skip to content

Commit 3cf0a98

Browse files
committed
Merge tag 'net-6.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Interestingly the recent kmemleak improvements allowed our CI to catch a couple of percpu leaks addressed here. We (mostly Jakub, to be accurate) are working to increase review coverage over the net code-base tweaking the MAINTAINER entries. Current release - regressions: - core: harmonize tstats and dstats - ipv6: fix dst refleaks in rpl, seg6 and ioam6 lwtunnels - eth: tun: revert fix group permission check - eth: stmmac: revert "specify hardware capability value when FIFO size isn't specified" Previous releases - regressions: - udp: gso: do not drop small packets when PMTU reduces - rxrpc: fix race in call state changing vs recvmsg() - eth: ice: fix Rx data path for heavy 9k MTU traffic - eth: vmxnet3: fix tx queue race condition with XDP Previous releases - always broken: - sched: pfifo_tail_enqueue: drop new packet when sch->limit == 0 - ethtool: ntuple: fix rss + ring_cookie check - rxrpc: fix the rxrpc_connection attend queue handling Misc: - recognize Kuniyuki Iwashima as a maintainer" * tag 'net-6.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (34 commits) Revert "net: stmmac: Specify hardware capability value when FIFO size isn't specified" MAINTAINERS: add a sample ethtool section entry MAINTAINERS: add entry for ethtool rxrpc: Fix race in call state changing vs recvmsg() rxrpc: Fix call state set to not include the SERVER_SECURING state net: sched: Fix truncation of offloaded action statistics tun: revert fix group permission check selftests/tc-testing: Add a test case for qdisc_tree_reduce_backlog() netem: Update sch->q.qlen before qdisc_tree_reduce_backlog() selftests/tc-testing: Add a test case for pfifo_head_drop qdisc when limit==0 pfifo_tail_enqueue: Drop new packet when sch->limit == 0 selftests: mptcp: connect: -f: no reconnect net: rose: lock the socket in rose_bind() net: atlantic: fix warning during hot unplug rxrpc: Fix the rxrpc_connection attend queue handling net: harmonize tstats and dstats selftests: drv-net: rss_ctx: don't fail reconfigure test if queue offset not supported selftests: drv-net: rss_ctx: add missing cleanup in queue reconfigure ethtool: ntuple: fix rss + ring_cookie check ethtool: rss: fix hiding unsupported fields in dumps ...
2 parents 92514ef + 2a64c96 commit 3cf0a98

File tree

36 files changed

+446
-178
lines changed

36 files changed

+446
-178
lines changed

MAINTAINERS

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16462,6 +16462,22 @@ F: include/net/dsa.h
1646216462
F: net/dsa/
1646316463
F: tools/testing/selftests/drivers/net/dsa/
1646416464

16465+
NETWORKING [ETHTOOL]
16466+
M: Andrew Lunn <andrew@lunn.ch>
16467+
M: Jakub Kicinski <kuba@kernel.org>
16468+
F: Documentation/netlink/specs/ethtool.yaml
16469+
F: Documentation/networking/ethtool-netlink.rst
16470+
F: include/linux/ethtool*
16471+
F: include/uapi/linux/ethtool*
16472+
F: net/ethtool/
16473+
F: tools/testing/selftests/drivers/net/*/ethtool*
16474+
16475+
NETWORKING [ETHTOOL CABLE TEST]
16476+
M: Andrew Lunn <andrew@lunn.ch>
16477+
F: net/ethtool/cabletest.c
16478+
F: tools/testing/selftests/drivers/net/*/ethtool*
16479+
K: cable_test
16480+
1646516481
NETWORKING [GENERAL]
1646616482
M: "David S. Miller" <davem@davemloft.net>
1646716483
M: Eric Dumazet <edumazet@google.com>
@@ -16621,6 +16637,7 @@ F: tools/testing/selftests/net/mptcp/
1662116637
NETWORKING [TCP]
1662216638
M: Eric Dumazet <edumazet@google.com>
1662316639
M: Neal Cardwell <ncardwell@google.com>
16640+
R: Kuniyuki Iwashima <kuniyu@amazon.com>
1662416641
L: netdev@vger.kernel.org
1662516642
S: Maintained
1662616643
F: Documentation/networking/net_cachelines/tcp_sock.rst
@@ -16648,6 +16665,31 @@ F: include/net/tls.h
1664816665
F: include/uapi/linux/tls.h
1664916666
F: net/tls/*
1665016667

16668+
NETWORKING [SOCKETS]
16669+
M: Eric Dumazet <edumazet@google.com>
16670+
M: Kuniyuki Iwashima <kuniyu@amazon.com>
16671+
M: Paolo Abeni <pabeni@redhat.com>
16672+
M: Willem de Bruijn <willemb@google.com>
16673+
S: Maintained
16674+
F: include/linux/sock_diag.h
16675+
F: include/linux/socket.h
16676+
F: include/linux/sockptr.h
16677+
F: include/net/sock.h
16678+
F: include/net/sock_reuseport.h
16679+
F: include/uapi/linux/socket.h
16680+
F: net/core/*sock*
16681+
F: net/core/scm.c
16682+
F: net/socket.c
16683+
16684+
NETWORKING [UNIX SOCKETS]
16685+
M: Kuniyuki Iwashima <kuniyu@amazon.com>
16686+
S: Maintained
16687+
F: include/net/af_unix.h
16688+
F: include/net/netns/unix.h
16689+
F: include/uapi/linux/unix_diag.h
16690+
F: net/unix/
16691+
F: tools/testing/selftests/net/af_unix/
16692+
1665116693
NETXEN (1/10) GbE SUPPORT
1665216694
M: Manish Chopra <manishc@marvell.com>
1665316695
M: Rahul Verma <rahulv@marvell.com>
@@ -17713,6 +17755,7 @@ L: netdev@vger.kernel.org
1771317755
L: dev@openvswitch.org
1771417756
S: Maintained
1771517757
W: http://openvswitch.org
17758+
F: Documentation/networking/openvswitch.rst
1771617759
F: include/uapi/linux/openvswitch.h
1771717760
F: net/openvswitch/
1771817761
F: tools/testing/selftests/net/openvswitch/

drivers/net/ethernet/aquantia/atlantic/aq_nic.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1441,7 +1441,9 @@ void aq_nic_deinit(struct aq_nic_s *self, bool link_down)
14411441
aq_ptp_ring_free(self);
14421442
aq_ptp_free(self);
14431443

1444-
if (likely(self->aq_fw_ops->deinit) && link_down) {
1444+
/* May be invoked during hot unplug. */
1445+
if (pci_device_is_present(self->pdev) &&
1446+
likely(self->aq_fw_ops->deinit) && link_down) {
14451447
mutex_lock(&self->fwreq_mutex);
14461448
self->aq_fw_ops->deinit(self->aq_hw);
14471449
mutex_unlock(&self->fwreq_mutex);

drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,27 @@ void bcmgenet_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
4141
{
4242
struct bcmgenet_priv *priv = netdev_priv(dev);
4343
struct device *kdev = &priv->pdev->dev;
44+
u32 phy_wolopts = 0;
4445

45-
if (dev->phydev)
46+
if (dev->phydev) {
4647
phy_ethtool_get_wol(dev->phydev, wol);
48+
phy_wolopts = wol->wolopts;
49+
}
4750

4851
/* MAC is not wake-up capable, return what the PHY does */
4952
if (!device_can_wakeup(kdev))
5053
return;
5154

5255
/* Overlay MAC capabilities with that of the PHY queried before */
5356
wol->supported |= WAKE_MAGIC | WAKE_MAGICSECURE | WAKE_FILTER;
54-
wol->wolopts = priv->wolopts;
55-
memset(wol->sopass, 0, sizeof(wol->sopass));
57+
wol->wolopts |= priv->wolopts;
5658

59+
/* Return the PHY configured magic password */
60+
if (phy_wolopts & WAKE_MAGICSECURE)
61+
return;
62+
63+
/* Otherwise the MAC one */
64+
memset(wol->sopass, 0, sizeof(wol->sopass));
5765
if (wol->wolopts & WAKE_MAGICSECURE)
5866
memcpy(wol->sopass, priv->sopass, sizeof(priv->sopass));
5967
}
@@ -70,7 +78,7 @@ int bcmgenet_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
7078
/* Try Wake-on-LAN from the PHY first */
7179
if (dev->phydev) {
7280
ret = phy_ethtool_set_wol(dev->phydev, wol);
73-
if (ret != -EOPNOTSUPP)
81+
if (ret != -EOPNOTSUPP && wol->wolopts)
7482
return ret;
7583
}
7684

drivers/net/ethernet/broadcom/tg3.c

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
#include <linux/hwmon.h>
5656
#include <linux/hwmon-sysfs.h>
5757
#include <linux/crc32poly.h>
58+
#include <linux/dmi.h>
5859

5960
#include <net/checksum.h>
6061
#include <net/gso.h>
@@ -18212,6 +18213,50 @@ static int tg3_resume(struct device *device)
1821218213

1821318214
static SIMPLE_DEV_PM_OPS(tg3_pm_ops, tg3_suspend, tg3_resume);
1821418215

18216+
/* Systems where ACPI _PTS (Prepare To Sleep) S5 will result in a fatal
18217+
* PCIe AER event on the tg3 device if the tg3 device is not, or cannot
18218+
* be, powered down.
18219+
*/
18220+
static const struct dmi_system_id tg3_restart_aer_quirk_table[] = {
18221+
{
18222+
.matches = {
18223+
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
18224+
DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R440"),
18225+
},
18226+
},
18227+
{
18228+
.matches = {
18229+
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
18230+
DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R540"),
18231+
},
18232+
},
18233+
{
18234+
.matches = {
18235+
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
18236+
DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R640"),
18237+
},
18238+
},
18239+
{
18240+
.matches = {
18241+
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
18242+
DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R650"),
18243+
},
18244+
},
18245+
{
18246+
.matches = {
18247+
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
18248+
DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R740"),
18249+
},
18250+
},
18251+
{
18252+
.matches = {
18253+
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
18254+
DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R750"),
18255+
},
18256+
},
18257+
{}
18258+
};
18259+
1821518260
static void tg3_shutdown(struct pci_dev *pdev)
1821618261
{
1821718262
struct net_device *dev = pci_get_drvdata(pdev);
@@ -18228,6 +18273,19 @@ static void tg3_shutdown(struct pci_dev *pdev)
1822818273

1822918274
if (system_state == SYSTEM_POWER_OFF)
1823018275
tg3_power_down(tp);
18276+
else if (system_state == SYSTEM_RESTART &&
18277+
dmi_first_match(tg3_restart_aer_quirk_table) &&
18278+
pdev->current_state != PCI_D3cold &&
18279+
pdev->current_state != PCI_UNKNOWN) {
18280+
/* Disable PCIe AER on the tg3 to avoid a fatal
18281+
* error during this system restart.
18282+
*/
18283+
pcie_capability_clear_word(pdev, PCI_EXP_DEVCTL,
18284+
PCI_EXP_DEVCTL_CERE |
18285+
PCI_EXP_DEVCTL_NFERE |
18286+
PCI_EXP_DEVCTL_FERE |
18287+
PCI_EXP_DEVCTL_URRE);
18288+
}
1823118289

1823218290
rtnl_unlock();
1823318291

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,9 @@ static int ice_devlink_rate_node_new(struct devlink_rate *rate_node, void **priv
981981

982982
/* preallocate memory for ice_sched_node */
983983
node = devm_kzalloc(ice_hw_to_dev(pi->hw), sizeof(*node), GFP_KERNEL);
984+
if (!node)
985+
return -ENOMEM;
986+
984987
*priv = node;
985988

986989
return 0;

0 commit comments

Comments
 (0)