linux/drivers
Russell King (Oracle) e2668c34b7 net: phy: fix phy_ethtool_set_eee() incorrectly enabling LPI
When phy_ethtool_set_eee_noneg() detects a change in the LPI
parameters, it attempts to update phylib state and trigger the link
to cycle so the MAC sees the updated parameters.

However, in doing so, it sets phydev->enable_tx_lpi depending on
whether the EEE configuration allows the MAC to generate LPI without
taking into account the result of negotiation.

This can be demonstrated with a 1000base-T FD interface by:

 # ethtool --set-eee eno0 advertise 8   # cause EEE to be not negotiated
 # ethtool --set-eee eno0 tx-lpi off
 # ethtool --set-eee eno0 tx-lpi on

This results in being true, despite EEE not having been negotiated and:
 # ethtool --show-eee eno0
	EEE status: enabled - inactive
	Tx LPI: 250 (us)
	Supported EEE link modes:  100baseT/Full
	                           1000baseT/Full
	Advertised EEE link modes:  100baseT/Full
	                                         1000baseT/Full

Fix this by keeping track of whether EEE was negotiated via a new
eee_active member in struct phy_device, and include this state in
the decision whether phydev->enable_tx_lpi should be set.

Fixes: 3e43b903da ("net: phy: Immediately call adjust_link if only tx_lpi_enabled changes")
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1tErSe-005RhB-2R@rmk-PC.armlinux.org.uk
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-11-28 09:26:13 +01:00
..
accel accel/ivpu: Fix NOC firewall interrupt handling 2024-10-30 10:17:00 +01:00
accessibility
acpi ACPI updates for 6.13-rc1 2024-11-19 11:17:53 -08:00
amba ARM: 9416/1: amba: make amba_bustype constant 2024-09-04 15:01:17 +01:00
android binder: modify the comment for binder_proc_unlock 2024-09-11 16:02:45 +02:00
ata ata changes for 6.13 2024-11-18 16:45:28 -08:00
atm
auxdisplay auxdisplay for v6.13-1 2024-11-20 12:55:41 -08:00
base soc: driver updates for 6.12 2024-11-20 15:40:54 -08:00
bcma PCI: Rename CRS Completion Status to RRS 2024-09-10 19:52:30 -05:00
block block: don't reorder requests in blk_add_rq_to_plug 2024-11-13 12:04:58 -07:00
bluetooth Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
bus bus: Switch back to struct platform_driver::remove() 2024-11-12 15:53:37 +01:00
cache
cdrom cdrom: Avoid barrier_nospec() in cdrom_ioctl_media_changed() 2024-10-17 19:47:15 -06:00
cdx
char A set of updates for the interrupt subsystem: 2024-11-19 15:54:19 -08:00
clk A handful of Qualcomm clk driver fixes: 2024-11-10 14:16:28 -08:00
clocksource clocksource/drivers/arm_arch_timer: Use of_property_present() for non-boolean properties 2024-11-13 13:49:33 +01:00
comedi move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
connector
counter move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
cpufreq pmdomain core: 2024-11-20 12:44:59 -08:00
cpuidle cpuidle: Correct some typos in comments 2024-10-18 18:44:32 +02:00
crypto This update includes the following changes: 2024-11-19 10:28:41 -08:00
cxl cxl/port: Prevent out-of-order decoder allocation 2024-10-25 16:07:03 -05:00
dax device-dax: correct pgoff align in dax_set_mapping() 2024-10-09 12:47:19 -07:00
dca
devfreq PM / devfreq: imx-bus: Use of_property_present() 2024-09-05 01:23:56 +09:00
dio
dma dmaengine fixes for v6.12 2024-11-03 10:15:50 -10:00
dma-buf drm next for 6.12-rc1 2024-09-19 10:18:15 +02:00
dpll dpll: add clock quality level attribute and op 2024-11-03 08:39:07 -08:00
edac - Log and handle twp new AMD-specific MCA registers: SYND1 and SYND2 and 2024-11-19 12:04:51 -08:00
eisa
extcon Char/Misc and other driver changes for 6.12-rc1 2024-09-26 10:13:08 -07:00
firewire firewire: core: fix invalid port index for parent device 2024-10-27 11:14:35 +09:00
firmware soc: driver updates for 6.12 2024-11-20 15:40:54 -08:00
fpga move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
fsi move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
gnss [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
gpio gpio: tegra186: Allow to enable driver on Tegra234 2024-11-18 11:45:06 +01:00
gpu soc: driver updates for 6.12 2024-11-20 15:40:54 -08:00
greybus move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid Merge branch 'for-6.13/bpf' into for-linus 2024-11-18 22:02:17 +01:00
hsi HSI: omap-ssi: Remove unnecessary debugfs_create_dir() error check 2024-08-27 15:28:56 +02:00
hte
hv drm next for 6.12-rc1 2024-09-19 10:18:15 +02:00
hwmon hmon updates for v6.13-rc1 2024-11-19 11:23:52 -08:00
hwspinlock
hwtracing [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
i2c gpio updates for v6.13-rc1 2024-11-20 12:37:06 -08:00
i3c i3c: master: svc: Fix use after free vulnerability in svc_i3c_master Driver Due to Race Condition 2024-09-17 16:51:45 +02:00
idle intel_idle: add Granite Rapids Xeon D support 2024-11-11 15:48:50 +01:00
iio Locking changes for v6.13 are: 2024-11-19 12:43:11 -08:00
infiniband the bulk of struct fd memory safety stuff 2024-11-18 12:24:06 -08:00
input Input: gpio_keys_polled - avoid using GPIOF_ACTIVE_LOW 2024-11-09 14:55:33 +01:00
interconnect Merge branch 'icc-sm8350' into icc-next 2024-08-26 01:36:44 +03:00
iommu iommu/vt-d: Fix incorrect pci_for_each_dma_alias() for non-PCI devices 2024-10-15 10:17:54 +02:00
ipack
irqchip A set of updates for the interrupt subsystem: 2024-11-19 15:54:19 -08:00
isdn mISDN: Fix typos 2024-11-09 09:14:12 -08:00
leds leds: gpio: Avoid using GPIOF_ACTIVE_LOW 2024-11-09 14:55:33 +01:00
macintosh move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
mailbox mailbox: qcom-cpucp: Mark the irq with IRQF_NO_SUSPEND flag 2024-11-12 19:45:25 +01:00
mcb
md for-6.13/block-20241118 2024-11-18 16:50:08 -08:00
media media updates for v6.13-rc1 2024-11-20 14:05:34 -08:00
memory memory: pl353-smc: simplify with scoped for each OF child loop 2024-08-31 07:44:24 +02:00
memstick memstick: Constify struct memstick_device_id 2024-10-14 12:40:10 +02:00
message SCSI misc on 20240928 2024-09-29 09:22:34 -07:00
mfd Linux 6.12-rc3 2024-10-14 09:03:34 +02:00
misc soc: driver updates for 6.12 2024-11-20 15:40:54 -08:00
mmc MMC core: 2024-11-20 12:51:32 -08:00
most
mtd Random number generator updates for Linux 6.13-rc1. 2024-11-19 10:43:44 -08:00
mux
net net: phy: fix phy_ethtool_set_eee() incorrectly enabling LPI 2024-11-28 09:26:13 +01:00
nfc move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ntb ntb: Force physically contiguous allocation of rx ring buffers 2024-09-20 10:51:25 -04:00
nubus
nvdimm virtio: features, fixes, cleanups 2024-09-26 08:43:17 -07:00
nvme for-6.13/block-20241118 2024-11-18 16:50:08 -08:00
nvmem Char/Misc and other driver changes for 6.12-rc1 2024-09-26 10:13:08 -07:00
of Merge branch 'dt/linus' into dt/next 2024-11-15 14:03:59 -06:00
opp OPP: Drop redundant *_opp_attach|detach_genpd() 2024-10-10 14:24:30 +02:00
parisc parisc: pdc_stable: Constify struct kobj_type 2024-09-09 08:53:17 +02:00
parport parport: Proper fix for array out-of-bounds access 2024-10-13 18:17:35 +02:00
pci soc: driver updates for 6.12 2024-11-20 15:40:54 -08:00
pcmcia pcmcia: soc_common: Avoid using GPIOF_ACTIVE_LOW 2024-11-09 14:55:33 +01:00
peci move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
perf arm64 updates for 6.13: 2024-11-18 18:10:37 -08:00
phy phy: tegra: xusb: Add error pointer check in xusb.c 2024-10-21 23:34:42 +05:30
pinctrl pinctrl: ocelot: fix system hang on level based interrupts 2024-10-12 22:04:38 +02:00
platform soc: driver updates for 6.12 2024-11-20 15:40:54 -08:00
pmdomain pmdomain: qcom: rpmhpd: Add rpmhpd support for SM8750 2024-11-12 19:46:51 +01:00
pnp
power power sequencing updates for v6.13-rc1 2024-11-20 12:41:03 -08:00
powercap powercap: dtpm_devfreq: Fix error check against dev_pm_qos_add_request() 2024-10-21 13:23:06 +02:00
pps [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
ps3
ptp ptp: Remove 'default y' for VMCLOCK PTP device 2024-11-04 18:18:10 -08:00
pwm pwm: Assume a disabled PWM to emit a constant inactive output 2024-11-07 12:03:39 +01:00
rapidio
ras RAS/AMD/ATL: Add debug prints for DF register reads 2024-10-22 18:55:57 +02:00
regulator regulator: Updates for v6.13 2024-11-20 12:18:50 -08:00
remoteproc mhu-v3, omap2+ : fix kconfig dependencies 2024-09-29 09:53:04 -07:00
reset Reset controller updates for v6.13 2024-11-12 15:59:53 +01:00
rpmsg rpmsg: glink: Handle rejected intent request better 2024-10-24 13:03:37 -05:00
rtc move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
s390 s390 updates for 6.13 merge window 2024-11-18 17:45:41 -08:00
sbus [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
scsi A set of updates for the interrupt subsystem: 2024-11-19 15:54:19 -08:00
sh sh: intc: Switch to irq_get_nr_irqs() 2024-10-16 21:56:58 +02:00
siox
slimbus slimbus: qcom-ngd-ctrl: use 'time_left' variable with wait_for_completion_timeout() 2024-09-03 12:10:38 +02:00
soc Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
soundwire soundwire: intel_ace2x: Send PDI stream number during prepare 2024-10-17 12:11:19 +01:00
spi spi: Updates for v6.13 2024-11-20 12:23:06 -08:00
spmi
ssb
staging Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
target SCSI fixes on 20241019 2024-10-19 12:52:19 -07:00
tc TC: Fix the wrong format specifier 2024-11-12 15:48:08 +01:00
tee optee: Fix a NULL vs IS_ERR() check 2024-09-09 12:22:06 +02:00
thermal soc: driver updates for 6.12 2024-11-20 15:40:54 -08:00
thunderbolt thunderbolt: Fixes for v6.12-rc7 2024-11-07 16:11:57 +01:00
tty asm-generic updates for 6.13 2024-11-20 15:13:02 -08:00
ufs SCSI fixes on 20241108 2024-11-08 09:56:27 -10:00
uio uio: Constify struct kobj_type 2024-09-11 16:02:54 +02:00
usb gpio updates for v6.13-rc1 2024-11-20 12:37:06 -08:00
vdpa vdpa/mlx5: Fix PA offset with unaligned starting iotlb map 2024-11-12 18:05:04 -05:00
vfio assorted variants of irqfd setup: convert to CLASS(fd) 2024-11-03 01:28:07 -05:00
vhost mm: page_frag: avoid caller accessing 'page_frag_cache' directly 2024-11-11 10:56:27 -08:00
video Devicetree updates for v6.13: 2024-11-20 13:19:25 -08:00
virt - Do the proper memory conversion of guest memory in order to be able to kexec 2024-11-19 12:21:35 -08:00
virtio Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
w1 w1: ds2482: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-09-06 19:18:32 +02:00
watchdog asm-generic updates for 6.13 2024-11-20 15:13:02 -08:00
xen A set of updates for the interrupt subsystem: 2024-11-19 15:54:19 -08:00
zorro
Kconfig
Makefile leds: Init leds class earlier 2024-09-04 17:24:58 -05:00