Index: sys/dev/pci/pci_pci.c =================================================================== --- sys/dev/pci/pci_pci.c +++ sys/dev/pci/pci_pci.c @@ -1170,9 +1170,11 @@ { struct pcib_softc *sc; device_t dev; + uint16_t old_slot_sta; sc = arg; dev = sc->dev; + old_slot_sta = sc->pcie_slot_sta; sc->pcie_slot_sta = pcie_read_config(dev, PCIER_SLOT_STA, 2); /* Clear the events just reported. */ @@ -1182,7 +1184,8 @@ device_printf(dev, "HotPlug interrupt: %#x\n", sc->pcie_slot_sta); - if (sc->pcie_slot_sta & PCIEM_SLOT_STA_ABP) { + if ((sc->pcie_slot_sta & PCIEM_SLOT_STA_ABP) && + (old_slot_sta & PCIEM_SLOT_STA_PDS)) { if (sc->flags & PCIB_DETACH_PENDING) { device_printf(dev, "Attention Button Pressed: Detach Cancelled\n");