Page MenuHomeFreeBSD

D20499.diff
No OneTemporary

D20499.diff

Index: head/sys/dev/pci/pci_pci.c
===================================================================
--- head/sys/dev/pci/pci_pci.c
+++ head/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. */
@@ -1188,7 +1190,8 @@
"Attention Button Pressed: Detach Cancelled\n");
sc->flags &= ~PCIB_DETACH_PENDING;
callout_stop(&sc->pcie_ab_timer);
- } else {
+ } else if (old_slot_sta & PCIEM_SLOT_STA_PDS) {
+ /* Only initiate detach sequence if device present. */
device_printf(dev,
"Attention Button Pressed: Detaching in 5 seconds\n");
sc->flags |= PCIB_DETACH_PENDING;

File Metadata

Mime Type
text/plain
Expires
Sat, Jan 25, 6:30 PM (18 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16159063
Default Alt Text
D20499.diff (830 B)

Event Timeline