OpenCloudOS-Kernel/drivers
Hui Wang f0fc028b6f e1000e: move force SMBUS near the end of enable_ulp function
[ Upstream commit bfd546a552e140b0a4c8a21527c39d6d21addb28 ]

The commit 861e8086029e ("e1000e: move force SMBUS from enable ulp
function to avoid PHY loss issue") introduces a regression on
PCH_MTP_I219_LM18 (PCIID: 0x8086550A). Without the referred commit, the
ethernet works well after suspend and resume, but after applying the
commit, the ethernet couldn't work anymore after the resume and the
dmesg shows that the NIC link changes to 10Mbps (1000Mbps originally):

    [   43.305084] e1000e 0000:00:1f.6 enp0s31f6: NIC Link is Up 10 Mbps Full Duplex, Flow Control: Rx/Tx

Without the commit, the force SMBUS code will not be executed if
"return 0" or "goto out" is executed in the enable_ulp(), and in my
case, the "goto out" is executed since FWSM_FW_VALID is set. But after
applying the commit, the force SMBUS code will be ran unconditionally.

Here move the force SMBUS code back to enable_ulp() and put it
immediately ahead of hw->phy.ops.release(hw), this could allow the
longest settling time as possible for interface in this function and
doesn't change the original code logic.

The issue was found on a Lenovo laptop with the ethernet hw as below:
00:1f.6 Ethernet controller [0200]: Intel Corporation Device [8086:550a]
(rev 20).

And this patch is verified (cable plug and unplug, system suspend
and resume) on Lenovo laptops with ethernet hw: [8086:550a],
[8086:550b], [8086:15bb], [8086:15be], [8086:1a1f], [8086:1a1c] and
[8086:0dc7].

Fixes: 861e8086029e ("e1000e: move force SMBUS from enable ulp function to avoid PHY loss issue")
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Acked-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Tested-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://lore.kernel.org/r/20240528-net-2024-05-28-intel-net-fixes-v1-1-dc8593d2bbc6@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-10-17 15:24:12 +02:00
..
accel accel/ivpu: Add missing MODULE_FIRMWARE metadata 2024-10-10 11:57:41 +02:00
accessibility speakup: Fix sizeof() vs ARRAY_SIZE() bug 2024-06-12 11:11:18 +02:00
acpi ACPI: battery: Fix possible crash when unregistering a battery hook 2024-10-10 11:58:06 +02:00
amba
android binder: fix UAF caused by offsets overwrite 2024-09-12 11:11:41 +02:00
ata ata: ahci: Add mask_port_map module parameter 2024-10-17 15:24:11 +02:00
atm atm: idt77252: prevent use after free in dequeue_rx() 2024-08-29 17:33:18 +02:00
auxdisplay auxdisplay: ht16k33: Drop reference after LED registration 2024-08-03 08:54:39 +02:00
base firmware_loader: Block path traversal 2024-10-04 16:29:51 +02:00
bcma
block null_blk: Fix return value of nullb_device_power_store() 2024-10-10 11:58:09 +02:00
bluetooth Bluetooth: btrtl: Set msft ext address filter quirk for RTL8852B 2024-10-10 11:57:24 +02:00
bus bus: mhi: ep: Do not allocate memory for MHI objects from DMA zone 2024-10-17 15:24:10 +02:00
cache
cdrom cdrom: rearrange last_media_change check to avoid unintentional overflow 2024-07-11 12:49:10 +02:00
cdx
char hwrng: cctrng - Add missing clk_disable_unprepare in cctrng_resume 2024-10-04 16:29:55 +02:00
clk clk: qcom: gcc-sc8180x: Add GPLL9 support 2024-10-10 11:58:05 +02:00
clocksource clocksource/drivers/qcom: Add missing iounmap() on errors in msm_dt_timer_init() 2024-10-04 16:29:04 +02:00
comedi comedi: vmk80xx: fix incomplete endpoint checking 2024-04-27 17:11:39 +02:00
connector
counter counter: ti-eqep: enable clock at probe 2024-07-05 09:33:56 +02:00
cpufreq cpufreq: intel_pstate: Make hwp_notify_lock a raw spinlock 2024-10-10 11:58:01 +02:00
cpuidle cpuidle: riscv-sbi: Use scoped device node handling to fix missing of_node_put 2024-10-04 16:29:56 +02:00
crypto crypto: octeontx* - Select CRYPTO_AUTHENC 2024-10-10 11:58:09 +02:00
cxl cxl/pci: Fix to record only non-zero ranges 2024-10-04 16:29:40 +02:00
dax
dca
devfreq
dio
dma dmaengine: altera-msgdma: properly free descriptor in msgdma_free_descriptor 2024-09-08 07:54:46 +02:00
dma-buf dma-buf: heaps: Fix off-by-one in CMA heap fault handler 2024-09-18 19:24:09 +02:00
edac EDAC/igen6: Fix conversion of system address to physical memory address 2024-10-04 16:29:56 +02:00
eisa
extcon extcon: max8997: select IRQ_DOMAIN instead of depending on it 2024-06-12 11:12:27 +02:00
firewire firewire: core: correct range of block for case of switch statement 2024-10-04 16:29:28 +02:00
firmware efi/unaccepted: touch soft lockup during memory accept 2024-10-10 11:58:08 +02:00
fpga fpga: region: add owner module and take its refcount 2024-06-12 11:12:23 +02:00
fsi
gnss
gpio gpio: davinci: fix lazy disable 2024-10-10 11:57:58 +02:00
gpu drm/crtc: fix uninitialized variable use even harder 2024-10-17 15:24:09 +02:00
greybus greybus: Fix use-after-free bug in gb_interface_release due to race condition. 2024-06-21 14:38:48 +02:00
hid HID: multitouch: Add support for Thinkpad X12 Gen 2 Kbd Portfolio 2024-10-10 11:57:35 +02:00
hsi
hte
hv Drivers: hv: vmbus: Fix rescind handling in uio_hv_generic 2024-09-12 11:11:41 +02:00
hwmon hwmon: (nct6775) add G15CF to ASUS WMI monitoring list 2024-10-10 11:57:30 +02:00
hwspinlock hwspinlock: Introduce hwspin_lock_bust() 2024-09-08 07:54:43 +02:00
hwtracing coresight: tmc: sg: Do not leak sg_table 2024-10-04 16:29:40 +02:00
i2c i2c: synquacer: Deal with optional PCLK correctly 2024-10-10 11:58:02 +02:00
i3c i3c: master: svc: Fix use after free vulnerability in svc_i3c_master Driver Due to Race Condition 2024-10-10 11:57:53 +02:00
idle
iio iio: pressure: bmp280: Fix waiting time for BMP3xx configuration 2024-10-10 11:58:05 +02:00
infiniband RDMA/mana_ib: use the correct page table index based on hardware page size 2024-10-10 11:58:03 +02:00
input Input: adp5589-keys - fix adp5589_gpio_get_value() 2024-10-10 11:57:57 +02:00
interconnect interconnect: icc-clk: Add missed num_nodes initialization 2024-10-04 16:29:40 +02:00
iommu iommufd: Fix protection fault in iommufd_test_syz_conv_iova 2024-10-10 11:58:07 +02:00
ipack
irqchip irqchip/armada-370-xp: Do not allow mapping IRQ 0 and 1 2024-09-12 11:11:29 +02:00
isdn mISDN: fix MISDN_TIME_STAMP handling 2024-08-19 06:04:28 +02:00
leds leds: pca995x: Fix device child node usage in pca995x_probe() 2024-10-04 16:29:29 +02:00
macintosh macintosh/therm_windtunnel: fix module unload. 2024-08-03 08:54:02 +02:00
mailbox mailbox: bcm2835: Fix timeout during suspend mode 2024-10-10 11:57:14 +02:00
mcb
md Revert: "dm-verity: restart or panic on an I/O error" 2024-10-04 16:30:05 +02:00
media media: imx335: Fix reset-gpio handling 2024-10-10 11:58:04 +02:00
memory memory: tegra186-emc: drop unused to_tegra186_emc() 2024-10-10 11:57:44 +02:00
memstick
message
mfd mfd: omap-usb-tll: Use struct_size to allocate tll 2024-08-03 08:53:54 +02:00
misc eeprom: digsy_mtc: Fix 93xx46 driver probe failure 2024-09-18 19:24:07 +02:00
mmc mmc: cqhci: Fix checking of CQHCI_HALT state 2024-09-12 11:11:26 +02:00
most
mtd mtd: rawnand: mtk: Fix init error path 2024-10-04 16:29:07 +02:00
mux
net e1000e: move force SMBUS near the end of enable_ulp function 2024-10-17 15:24:12 +02:00
nfc nfc: pn533: Add poll mod list filling check 2024-09-04 13:28:28 +02:00
ntb ntb: Force physically contiguous allocation of rx ring buffers 2024-10-04 16:29:35 +02:00
nubus
nvdimm nvdimm: Fix devs leaks in scan_labels() 2024-10-04 16:29:30 +02:00
nvme nvme-multipath: system fails to create generic nvme device 2024-10-04 16:29:38 +02:00
nvmem nvmem: u-boot-env: error if NVMEM device is too small 2024-09-18 19:24:04 +02:00
of of/irq: Support #msi-cells=<0> in of_msi_get_domain 2024-10-10 11:57:50 +02:00
opp OPP: ti: Fix ti_opp_supply_probe wrong return values 2024-08-03 08:53:27 +02:00
parisc Revert "change alloc_pages name in dma_map_ops to avoid name conflicts" 2024-09-04 13:28:24 +02:00
parport dev/parport: fix the array out-of-bounds risk 2024-08-03 08:54:22 +02:00
pci bus: mhi: ep: Rename read_from_host() and write_to_host() APIs 2024-10-17 15:24:09 +02:00
pcmcia pcmcia: Use resource_size function on resource object 2024-09-12 11:11:31 +02:00
peci
perf drivers/perf: arm_spe: Use perf_allow_kernel() for permissions 2024-10-10 11:57:27 +02:00
phy phy: qualcomm: eusb2-repeater: Rework init to drop redundant zero-out loop 2024-10-17 15:24:08 +02:00
pinctrl pinctrl: mvebu: Fix devinit_dove_pinctrl_probe function 2024-10-04 16:29:32 +02:00
platform platform/x86: think-lmi: Fix password opcode ordering for workstations 2024-10-10 11:58:08 +02:00
pmdomain pmdomain: imx: wait SSAR when i.MX93 power domain on 2024-08-29 17:33:54 +02:00
pnp
power power: supply: hwmon: Fix missing temp1_max_alarm attribute 2024-10-10 11:57:45 +02:00
powercap powercap: intel_rapl: Fix off by one in get_rpi() 2024-10-04 16:28:51 +02:00
pps pps: add an error check in parport_attach 2024-10-04 16:29:58 +02:00
ps3
ptp ptp: fix integer overflow in max_vclocks_store 2024-06-27 13:49:07 +02:00
pwm pwm: atmel-tcb: Fix race condition and convert to guards 2024-08-03 08:53:23 +02:00
rapidio
ras
regulator regulator: Return actual error in of_regulator_bulk_get_all() 2024-10-04 16:29:02 +02:00
remoteproc remoteproc: k3-r5: Delay notification of wakeup event 2024-10-10 11:58:04 +02:00
reset reset: k210: fix OF node leak in probe() error path 2024-10-04 16:29:04 +02:00
rpmsg
rtc rtc: at91sam9: fix OF node leak in probe() error path 2024-10-10 11:57:57 +02:00
s390 Revert "s390/dasd: Establish DMA alignment" 2024-08-29 17:33:59 +02:00
sbus
scsi scsi: sd: Do not repeat the starting disk message 2024-10-17 15:24:11 +02:00
sh
siox
slimbus slimbus: qcom-ngd-ctrl: Add timeout for wait operation 2024-05-17 12:02:33 +02:00
soc soc: versatile: realview: fix soc_dev leak during device remove 2024-10-04 16:29:57 +02:00
soundwire soundwire: stream: Revert "soundwire: stream: fix programming slave ports for non-continous port maps" 2024-09-18 19:24:09 +02:00
spi spi: spi-fsl-lpspi: remove redundant spi_controller_put call 2024-10-17 15:24:11 +02:00
spmi spmi: hisi-spmi-controller: Do not override device identifier 2024-06-21 14:38:40 +02:00
ssb ssb: Fix division by zero issue in ssb_calc_clock_rate 2024-08-29 17:33:22 +02:00
staging minmax: reduce min/max macro expansion in atomisp driver 2024-09-18 19:24:07 +02:00
target scsi: target: Fix SELinux error when systemd-modules loads the target module 2024-05-17 12:02:15 +02:00
tc
tee tee: optee: ffa: Fix missing-field-initializers warning 2024-07-25 09:50:53 +02:00
thermal thermal: of: Fix OF node leak in of_thermal_zone_find() error paths 2024-09-04 13:28:22 +02:00
thunderbolt thunderbolt: Fix NULL pointer dereference in tb_port_update_credits() 2024-10-04 16:30:04 +02:00
tty serial: don't use uninitialized value in uart_poll_init() 2024-10-04 16:29:58 +02:00
ufs scsi: ufs: qcom: Update MODE_MAX cfg_bw value 2024-10-04 16:29:49 +02:00
uio Drivers: hv: vmbus: Fix rescind handling in uio_hv_generic 2024-09-12 11:11:41 +02:00
usb usb: yurex: Fix inconsistent locking bug in yurex_read() 2024-10-04 16:30:04 +02:00
vdpa vduse: Temporarily fail if control queue feature requested 2024-07-05 09:33:50 +02:00
vfio vfio/spapr: Always clear TCEs before unsetting the window 2024-09-12 11:11:31 +02:00
vhost vhost/scsi: null-ptr-dereference in vhost_scsi_get_req() 2024-10-10 11:58:08 +02:00
video fbdev: pxafb: Fix possible use after free in pxafb_task() 2024-10-10 11:57:31 +02:00
virt drivers/virt/acrn: fix PFNMAP PTE checks in acrn_vm_ram_map() 2024-06-12 11:12:09 +02:00
virtio virtio_ring: fix KMSAN error for premapped mode 2024-09-12 11:11:36 +02:00
vlynq
w1 nvmem: add explicit config option to read old syntax fixed OF cells 2024-05-17 12:01:55 +02:00
watchdog watchdog: imx_sc_wdt: Don't disable WDT in suspend 2024-10-04 16:29:33 +02:00
xen xen/swiotlb: fix allocated size 2024-10-04 16:29:14 +02:00
zorro
Kconfig
Makefile