On Mon, Oct 31, 2005 at 04:22:30PM +0200, Denis Vlasenko wrote: > > > This is what I ended up integrating. > > Nice, I like this more than my version.
I'm afraid that I've overlooked an important issue: alignment. In places we've changed code that reads/writes byte-by-byte into 64-bit loads/stores. This can only work on all architectures if the data is suitably aligned. In fact, the existing code also assumes alignment to albeit they only require 32-bit alignment at most. Fortunately we do have infrasture to handle this in the form of cra_alignmask. However, even with that we don't want to require 64-bit alignment unless absolutely necessary because it will mean that we have to copy things around if they aren't aligned. For users such as IPsec 64-bit alignment is often not satisfied for IPv4 input. So we need to do the following things: 1) Make sure all crypto users only pass arguments to setkey that are 32-bit aligned. 2) For all crypto drivers, break up any 64-bit loads of input/key or 64-bit stores of output into two 32-bit operations. 3) Set cra_alignmask to 3 for all crypto drivers using 32-bit loads/stores. I'd appreciate it if one of you guys could take care of one or more of these steps for me. Thanks, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt - To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
