Files
i2c-imc-skylake/VERSION
T
Simone 637717dad0 i2c-imc-skylake: guard branch - ECAM accessors close the CF8/CFC SMI window
A conf1 access is two I/O instructions (index on 0xCF8, data on 0xCFC)
serialised against the kernel but not against SMM: an SMI landing between
them, whose handler runs its own CF8/CFC dialogue without restoring the
index, redirects our data phase to whatever register the firmware
addressed last.  The CMD write is covered by the landing check, but the
DATA-register write has no readback, so its payload would land unnoticed
in a foreign config register.  Suspected (not proven) trigger of the ws1
poweroff hang: the wedge sits in the firmware's S5 path and the poison
channel must be invisible to the driver, which this one is.

Map the function's ECAM page from the ACPI MCFG table at probe and route
every register touch through a single MMIO access, which no SMI can
split.  use_ecam=0 (load-time) restores the config-cycle baseline for
A/B; MCFG lookup failure falls back automatically.
2026-08-09 09:48:04 +02:00

2 lines
13 B
Plaintext