On Thu, Sep 6, 2012 at 11:30 AM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > On Thu, Sep 6, 2012 at 7:34 AM, Prarit Bhargava <prarit@xxxxxxxxxx> wrote: >> Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> >> Cc: Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx> >> Cc: stable@xxxxxxxxxxxxxxx >> >>>diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c >>>index 13b2eaf..7cee8db 100644 >>>--- a/drivers/pci/hotplug/pciehp_hpc.c >>>+++ b/drivers/pci/hotplug/pciehp_hpc.c >>>@@ -631,6 +631,8 @@ int pciehp_power_off_slot(struct slot * slot) >>> slot_cmd = POWER_OFF; >>> cmd_mask = PCI_EXP_SLTCTL_PCC; >>> retval = pcie_write_cmd(ctrl, slot_cmd, cmd_mask); >>>+ /* need to enable link again for present bit report */ >>>+ pciehp_link_enable(ctrl); >> >> You're not checking the return value of pciehp_link_enable(). I wonder if >> enabling the link is the only way to get the present bit to report correctly... > > that is silicon problem. and no one noticed that before. > >> >> Also, should the pciehp_link_enable() be called in pciehp_power_on_slot() if >> we already reenable it on the power off? > > we call that in pciehp_power_on_slot for another case: > BIOS could have link disable on pcie slot if there is no card plugged > in that slot. So now we have two situations that should be the same, but they're not: 1) Slot is empty at boot, and BIOS leaves link disabled. Link remains disabled until pciehp_power_on_slot() enables it. 2) We hot-remove a card, so the slot is now empty, but pciehp_power_off_slot() leaves the link enabled. Link stays *enabled* until another disable/enable sequence in pciehp_power_off_slot(). Why should these be different? In both cases the slot is empty, but in case 1 the link is disabled, while in case 2 it is enabled. If we can detect a hot-add in case 1, why can't we detect it after a hot-remove even if the link is disabled? Or maybe case 1 is broken on this box, and hot-add to that slot doesn't work correctly either? -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html