[cc += Mika] On Thu, Feb 02, 2017 at 08:11:48PM -0800, Yinghai Lu wrote: > 4.9 is working, [...] > sca05-0a81e0db:~ # echo 1 > /sys/bus/pci/slots/8/power > [ 175.771846] pciehp 0000:60:03.2:pcie004: Slot(8): Link Up > [ 175.777898] pciehp 0000:60:03.2:pcie004: Slot(8): Link Up event > ignored; already powering on > [ 175.956632] pci 0000:65:00.0: [15b3:1003] type 00 class 0x0c0600 [...] > sca05-0a81e0db:~ # echo 1 > /sys/bus/pci/slots/8/power > [ 221.041664] pciehp 0000:60:03.2:pcie004: Slot(8): Already enabled Could you check if the port above 0000:60:03.2 is runtime suspended when you're trying this, i.e. does its power/runtime_status entry in sysfs say "suspended"? Normally the hotplug slot should keep its parents awake so that config space accesses work. And the hotplug port's config space should be accessible in D3 per the spec. If you add pm_runtime_get_sync(&ctrl->pcie->port->dev) in drivers/pci/pciehp_ctrl.c:pciehp_enable_slot() before the call to pciehp_get_power_status(), and a corresponding pm_runtime_put() afterwards, does the issue go away? Thanks, Lukas