mirror of
https://github.com/opnsense/src.git
synced 2026-02-21 00:40:33 -05:00
This update contains a rewrite of the VPD parser based on the definition of the structure of the VPD data (ident, R/O resource data, optional R/W data, end tag). The parser it replaces was based on a state machine, with the tags and the parsed data controlling the state changes. The flexibility of this parser is actually not required, and it has caused kernel panics when operating on malformed data. Analysis of the VPD code to make it more robust lead me to believe that it was easier to write a "strict" parser than to restrict the flexible state machine to detect and reject non-well-formed data. A number of restrictions had already been added, but they make the state machine ever more complex and harder to understand. This updated parser has been verified to return identical parsed data as the current implementation for the example VPD data given in the PCI standard and in some actual PCIe VPD data. It is strict in the sense that it detects and rejects any deviation from a well-formed VPD structure. PR: 272018 Approved by: kib MFC after: 4 weeks Differential Revision: https://reviews.freebsd.org/D34268 |
||
|---|---|---|
| .. | ||
| controller | ||
| fixup_pci.c | ||
| hostb_pci.c | ||
| ignore_pci.c | ||
| isa_pci.c | ||
| pci.c | ||
| pci_dw.c | ||
| pci_dw.h | ||
| pci_dw_if.m | ||
| pci_dw_mv.c | ||
| pci_host_generic.c | ||
| pci_host_generic.h | ||
| pci_host_generic_acpi.c | ||
| pci_host_generic_acpi.h | ||
| pci_host_generic_den0115.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 | ||