CVSROOT: /cvs Module name: src Changes by: o...@cvs.openbsd.org 2011/07/05 13:02:47
Modified files: sys/dev : softraid_crypto.c softraidvar.h Log message: ENOMEM causing EIO errors is bad juju. Softraid crypto did this. Instead of allocating a crypto op and the optional dma buffer on each and every io, preallocate a list of softraid crypto wus that contain a buffer of the max size we will use (MAXPHYS). since we know the number of openings we have in advance this means that on each io we just pick one, shorten the list of crypto descs, init any values then do the io. ok jsing (who provided many useful comments. he also provided a smarter way of handling the cryptop lists which is not in this diff but will be implemented soonish), marco@. dlg@ pointed out that this should probably use iopools but letting disciplines allocate their own iopool involves more softraid rejigging that will have to be done first. For now this is sufficient.