CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2015/09/18 14:50:02
Modified files: sys/arch/sgi/hpc: hpc.c hpcvar.h if_sq.c if_sqvar.h Log message: Go back to the previous approach when managing individual HPC DMA descriptors: provide again an optional storage for a copy of the descriptor in the `sync' (fetch) function, and use the returned address afterwards. On IP22 systems (in the broader sense of the term, thus IP20/IP22/IP24), descriptors will remain in uncached memory and no local copies need to be made. On IP28 systems, descriptors will remain in cached memory (so as to avoid switching to `slow mode'), but a local copy will be performed with the necessary cache eviction work, so that speculative code execution on R10000 will not touch the real descriptor. With this in place, all the explicit descriptor cache operations in if_sq, some of them being redundant or operating on the wrong number of descriptors, can be removed, with the HPC DMA wrappers taking care of doing the right thing. Tested on IP22 and IP28. IP26 still unhappy but no worse than before.