CVSROOT:        /cvs
Module name:    src
Changes by:     kette...@cvs.openbsd.org        2016/05/04 12:26:12

Modified files:
        sys/arch/sparc64/dev: iommu.c iommuvar.h viommu.c 
        sys/arch/sparc64/include: bus.h 

Log message:
Some hardware (such as the onboard dc(4) of the Netra X1) has a broken DMA
engine that might attempt to read beyond the end of the buffer that was
programmed.  The IOMMU catches this "DMA overrun" and throws an unrecoverable
error at us, at which point we have no choice but to panic.  To avoid this
implement a BUS_DMA_OVERRUN flag that maps an additional scratch page at the
end of the vdma address range.  DMA requests will spill over into this page,
which just returns zeroes.

Thanks to matthieu@ for giving me access to a machine with the problem.

ok deraadt@, beck@

Reply via email to