dm crypt: fix kcryptd_async_done parameter
authorHuang Ying <ying.huang@intel.com>
Mon, 16 Mar 2009 17:44:33 +0000 (17:44 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 23 Mar 2009 21:59:59 +0000 (14:59 -0700)
commite2c0fa5344dff02dcb837114a8b7b79034d1b268
treea429258afb2d5045a86c44b0896b194c9d2e4994
parent8b0249b6978f5a7b4e4d345c9a9ef848e7d2823b
dm crypt: fix kcryptd_async_done parameter

commit b2174eebd1fadb76454dad09a1dacbc17081e6b0 upstream.

In the async encryption-complete function (kcryptd_async_done), the
crypto_async_request passed in may be different from the one passed to
crypto_ablkcipher_encrypt/decrypt.  Only crypto_async_request->data is
guaranteed to be same as the one passed in.  The current
kcryptd_async_done uses the passed-in crypto_async_request directly
which may cause the AES-NI-based AES algorithm implementation to panic.

This patch fixes this bug by only using crypto_async_request->data,
which points to dm_crypt_request, the crypto_async_request passed in.
The original data (convert_context) is gotten from dm_crypt_request.

[mbroz@redhat.com: reworked]
Signed-off-by: Huang Ying <ying.huang@intel.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/md/dm-crypt.c