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

Reply via email to