summaryrefslogtreecommitdiff
path: root/tprintf.c
AgeCommit message (Expand)AuthorFilesLines
2013-07-13tprintf: Fix compiler warningsTobias Klauser1-5/+5
2013-06-04xutils: eliminate xutils, move rest to epoll2Daniel Borkmann1-1/+0
2013-05-21tprintf: Rename parameter to avoid shadowing global declarationTobias Klauser1-2/+2
2013-03-15all: import netsniff-ng 0.5.8-rc0 sourceDaniel Borkmann1-0/+169
noscript>
authorDavid Daney <david.daney@cavium.com>2015-12-22 13:44:51 -0800
committerBjorn Helgaas <bhelgaas@google.com>2016-02-04 14:26:27 -0600
commit7e8fbdc628760857369af05636ed4ddc4fc8569b (patch)
treeff25b6c3c10cad84a2b441c9532846756a4a7dc1 /Documentation/devicetree
parent3b0a6d1a1b3335fde9cbbc659568ed619b07d24a (diff)
PCI/AER: Restore pci_ops pointer while calling original pci_ops
The aer_inject module intercepts config space accesses by replacing the bus->ops pointer. If it forwards accesses to the original pci_ops, and those original ops use bus->ops, they see the aer_pci_ops instead of their own pci_ops, which can cause a crash. For example, pci_generic_config_read() uses the bus->ops->map_bus pointer. If bus->ops is set to aer_pci_ops, which doesn't supply .map_bus, pci_generic_config_read() will dereference an invalid pointer and cause a crash. Temporarily restore the original bus->ops pointer while calling ops->read() or ops->write(). Callers of these functions already hold pci_lock, which prevents other users of bus->ops until we're finished. [bhelgaas: changelog] Signed-off-by: David Daney <david.daney@cavium.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'Documentation/devicetree')