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@

Reply via email to