Skip to content

Commit dd72078

Browse files
author
Paolo Abeni
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Merge in late fixes to prepare for the 6.13 net-next PR. Conflicts: include/linux/phy.h 41ffcd9 net: phy: fix phylib's dual eee_enabled 721aa69 net: phy: convert eee_broken_modes to a linkmode bitmap https://lore.kernel.org/all/20241118135512.1039208b@canb.auug.org.au/ drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c 2160428 net: txgbe: fix null pointer to pcs 2160428 net: txgbe: remove GPIO interrupt controller Adjacent commits: include/linux/phy.h 41ffcd9 net: phy: fix phylib's dual eee_enabled 516a5f1 net: phy: respect cached advertising when re-enabling EEE Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2 parents 96ed62e + 6641844 commit dd72078

File tree

18 files changed

+102
-30
lines changed

18 files changed

+102
-30
lines changed

MAINTAINERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16091,7 +16091,9 @@ F: include/uapi/linux/net_shaper.h
1609116091
F: include/uapi/linux/netdev*
1609216092
F: tools/testing/selftests/drivers/net/
1609316093
X: Documentation/devicetree/bindings/net/bluetooth/
16094+
X: Documentation/devicetree/bindings/net/can/
1609416095
X: Documentation/devicetree/bindings/net/wireless/
16096+
X: drivers/net/can/
1609516097
X: drivers/net/wireless/
1609616098

1609716099
NETWORKING DRIVERS (WIRELESS)
@@ -16180,6 +16182,7 @@ X: include/net/mac80211.h
1618016182
X: include/net/wext.h
1618116183
X: net/9p/
1618216184
X: net/bluetooth/
16185+
X: net/can/
1618316186
X: net/mac80211/
1618416187
X: net/rfkill/
1618516188
X: net/wireless/

drivers/net/ethernet/google/gve/gve_adminq.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,10 +1248,10 @@ gve_adminq_configure_flow_rule(struct gve_priv *priv,
12481248
sizeof(struct gve_adminq_configure_flow_rule),
12491249
flow_rule_cmd);
12501250

1251-
if (err) {
1251+
if (err == -ETIME) {
12521252
dev_err(&priv->pdev->dev, "Timeout to configure the flow rule, trigger reset");
12531253
gve_reset(priv, true);
1254-
} else {
1254+
} else if (!err) {
12551255
priv->flow_rules_cache.rules_cache_synced = false;
12561256
}
12571257

drivers/net/ethernet/intel/i40e/i40e_ethtool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5299,7 +5299,7 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags)
52995299
}
53005300

53015301
flags_complete:
5302-
bitmap_xor(changed_flags, pf->flags, orig_flags, I40E_PF_FLAGS_NBITS);
5302+
bitmap_xor(changed_flags, new_flags, orig_flags, I40E_PF_FLAGS_NBITS);
53035303

53045304
if (test_bit(I40E_FLAG_FW_LLDP_DIS, changed_flags))
53055305
reset_needed = I40E_PF_RESET_AND_REBUILD_FLAG;

drivers/net/ethernet/meta/fbnic/fbnic_pci.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,6 @@ static int fbnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
334334
free_irqs:
335335
fbnic_free_irqs(fbd);
336336
free_fbd:
337-
pci_disable_device(pdev);
338337
fbnic_devlink_free(fbd);
339338

340339
return err;
@@ -367,7 +366,6 @@ static void fbnic_remove(struct pci_dev *pdev)
367366
fbnic_fw_disable_mbx(fbd);
368367
fbnic_free_irqs(fbd);
369368

370-
pci_disable_device(pdev);
371369
fbnic_devlink_free(fbd);
372370
}
373371

drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ static struct phylink_pcs *txgbe_phylink_mac_select(struct phylink_config *confi
162162
struct wx *wx = phylink_to_wx(config);
163163
struct txgbe *txgbe = wx->priv;
164164

165-
if (interface == PHY_INTERFACE_MODE_10GBASER)
165+
if (wx->media_type != sp_media_copper)
166166
return txgbe->pcs;
167167

168168
return NULL;

drivers/net/phy/dp83869.c

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,19 +153,32 @@ struct dp83869_private {
153153
int mode;
154154
};
155155

156+
static int dp83869_config_aneg(struct phy_device *phydev)
157+
{
158+
struct dp83869_private *dp83869 = phydev->priv;
159+
160+
if (dp83869->mode != DP83869_RGMII_1000_BASE)
161+
return genphy_config_aneg(phydev);
162+
163+
return genphy_c37_config_aneg(phydev);
164+
}
165+
156166
static int dp83869_read_status(struct phy_device *phydev)
157167
{
158168
struct dp83869_private *dp83869 = phydev->priv;
169+
bool changed;
159170
int ret;
160171

172+
if (dp83869->mode == DP83869_RGMII_1000_BASE)
173+
return genphy_c37_read_status(phydev, &changed);
174+
161175
ret = genphy_read_status(phydev);
162176
if (ret)
163177
return ret;
164178

165-
if (linkmode_test_bit(ETHTOOL_LINK_MODE_FIBRE_BIT, phydev->supported)) {
179+
if (dp83869->mode == DP83869_RGMII_100_BASE) {
166180
if (phydev->link) {
167-
if (dp83869->mode == DP83869_RGMII_100_BASE)
168-
phydev->speed = SPEED_100;
181+
phydev->speed = SPEED_100;
169182
} else {
170183
phydev->speed = SPEED_UNKNOWN;
171184
phydev->duplex = DUPLEX_UNKNOWN;
@@ -898,6 +911,7 @@ static int dp83869_phy_reset(struct phy_device *phydev)
898911
.soft_reset = dp83869_phy_reset, \
899912
.config_intr = dp83869_config_intr, \
900913
.handle_interrupt = dp83869_handle_interrupt, \
914+
.config_aneg = dp83869_config_aneg, \
901915
.read_status = dp83869_read_status, \
902916
.get_tunable = dp83869_get_tunable, \
903917
.set_tunable = dp83869_set_tunable, \

drivers/net/phy/phy-c45.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -941,7 +941,7 @@ EXPORT_SYMBOL_GPL(genphy_c45_read_eee_abilities);
941941
*/
942942
int genphy_c45_an_config_eee_aneg(struct phy_device *phydev)
943943
{
944-
if (!phydev->eee_enabled) {
944+
if (!phydev->eee_cfg.eee_enabled) {
945945
__ETHTOOL_DECLARE_LINK_MODE_MASK(adv) = {};
946946

947947
return genphy_c45_write_eee_adv(phydev, adv);
@@ -1571,8 +1571,6 @@ int genphy_c45_ethtool_set_eee(struct phy_device *phydev,
15711571
}
15721572
}
15731573

1574-
phydev->eee_enabled = data->eee_enabled;
1575-
15761574
ret = genphy_c45_an_config_eee_aneg(phydev);
15771575
if (ret > 0) {
15781576
ret = phy_restart_aneg(phydev);

drivers/net/phy/phy_device.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3589,12 +3589,12 @@ static int phy_probe(struct device *dev)
35893589
/* There is no "enabled" flag. If PHY is advertising, assume it is
35903590
* kind of enabled.
35913591
*/
3592-
phydev->eee_enabled = !linkmode_empty(phydev->advertising_eee);
3592+
phydev->eee_cfg.eee_enabled = !linkmode_empty(phydev->advertising_eee);
35933593

35943594
/* Some PHYs may advertise, by default, not support EEE modes. So,
35953595
* we need to clean them.
35963596
*/
3597-
if (phydev->eee_enabled)
3597+
if (phydev->eee_cfg.eee_enabled)
35983598
linkmode_and(phydev->advertising_eee, phydev->supported_eee,
35993599
phydev->advertising_eee);
36003600

include/linux/netpoll.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ static inline void *netpoll_poll_lock(struct napi_struct *napi)
7373
{
7474
struct net_device *dev = napi->dev;
7575

76-
if (dev && dev->npinfo) {
76+
if (dev && rcu_access_pointer(dev->npinfo)) {
7777
int owner = smp_processor_id();
7878

7979
while (cmpxchg(&napi->poll_owner, -1, owner) != -1)

include/linux/phy.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,6 @@ struct macsec_ops;
601601
* @adv_old: Saved advertised while power saving for WoL
602602
* @supported_eee: supported PHY EEE linkmodes
603603
* @advertising_eee: Currently advertised EEE linkmodes
604-
* @eee_enabled: Flag indicating whether the EEE feature is enabled
605604
* @enable_tx_lpi: When True, MAC should transmit LPI to PHY
606605
* @eee_cfg: User configuration of EEE
607606
* @lp_advertising: Current link partner advertised linkmodes
@@ -723,7 +722,6 @@ struct phy_device {
723722
__ETHTOOL_DECLARE_LINK_MODE_MASK(advertising_eee);
724723
/* Energy efficient ethernet modes which should be prohibited */
725724
__ETHTOOL_DECLARE_LINK_MODE_MASK(eee_broken_modes);
726-
bool eee_enabled;
727725
bool enable_tx_lpi;
728726
struct eee_config eee_cfg;
729727

0 commit comments

Comments
 (0)