Page MenuHomeFreeBSD

D20499.id58184.diff
No OneTemporary

D20499.id58184.diff

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");

File Metadata

Mime Type
text/plain
Expires
Sun, Jul 19, 4:41 AM (3 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35220927
Default Alt Text
D20499.id58184.diff (781 B)

Event Timeline