mirror of
https://github.com/opnsense/src.git
synced 2026-02-19 02:30:08 -05:00
Prior to this commit, if PCIEM_SLOT_STA_ABP and PCIEM_SLOT_STA_PDC are asserted simultaneously, FreeBSD sets a 5 second "hardware going away" timer and then processes the "presence detect" change. In the (physically challenging) case that someone presses the "attention button" and inserts a new PCIe device at exactly the same moment, this results in FreeBSD recognizing that the device is present, attaching it, and then detaching it 5 seconds later. On EC2 "bare metal" hardware this is the precise sequence of events which takes place when a new EBS volume is attached; virtual machines have no difficulty effecting physically implausible simultaneity. This patch changes the handling of PCIEM_SLOT_STA_ABP to only detach a device if the presence of a device was detected *before* the interrupt which reports the Attention Button push. Reported by: Matt Wilson Reviewed by: jhb MFC after: 1 week Sponsored by: https://www.patreon.com/cperciva Differential Revision: https://reviews.freebsd.org/D20499 |
||
|---|---|---|
| .. | ||
| fixup_pci.c | ||
| hostb_pci.c | ||
| ignore_pci.c | ||
| isa_pci.c | ||
| pci.c | ||
| pci_host_generic.c | ||
| pci_host_generic.h | ||
| pci_host_generic_acpi.c | ||
| pci_host_generic_fdt.c | ||
| pci_host_generic_fdt.h | ||
| pci_if.m | ||
| pci_iov.c | ||
| pci_iov.h | ||
| pci_iov_if.m | ||
| pci_iov_private.h | ||
| pci_iov_schema.c | ||
| pci_pci.c | ||
| pci_private.h | ||
| pci_subr.c | ||
| pci_user.c | ||
| pcib_if.m | ||
| pcib_private.h | ||
| pcib_support.c | ||
| pcireg.h | ||
| pcivar.h | ||
| schema_private.h | ||
| vga_pci.c | ||