CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2010/09/06 06:30:35
Modified files:
sys/dev/pci : pci_map.c
Log message:
Some stupid hardware marks PCI BARs as prefetchable that aren't side-effect
free. Mapping those with BUS_SPACE_MAP_PREFETCHABLE can have disastrous
effects, like the NMIs observed by jsg@ with certain Intel 10Gb Ethernet
devices. So stop trusting the devices and instead require drivers to
explicitly pass the BUS_SPACE_MAP_PREFECTHABLE flag to pci_mapreg_map().
The pci_mapreg_info() call will continue to return BUS_SPACE_MAP_PREFECTHABLE
flags for prefetchable BARs as an easy way to figure out whether a BAR is
prefetchable. Since the vga_pci.c code uses this interface, all consumers
of VGA BARs will still use the BUS_SPACE_MAP_PREFETCHABLE flag when
appropriate.
ok oga@, jsg@