Re: Kernel panic - encryption/decryption failed when open file on Arm64
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2016-09-08 12:47:48
Also in:
lkml
On Thu, Sep 08, 2016 at 08:38:43PM +0800, xiakaixu wrote:
Hi,
I am using the encryption/decryption feature on arm64 board and a kernel
panic occurs just when open a file. As the memory size of the board
is limited
and there are some page allocation failures before the panic.
Seems it is a kernel bug from the call trace log.
...
- fscrypt_get_encryption_info
- get_crypt_info.part.1
- validate_user_key.isra.0
- derive_aes_gcm_key
- crypto_gcm_decrypt
- ablk_decrypt
- ctr_encrypt
- blkcipher_walk_done
- blkcipher_walk_next
- __get_free_pages
----------------------------------> page allocation failure
...
- aes_ctr_encrypt
-----------------------------------------> the input parameter is
NULL pointer as the page allocation failure
The input parameter of function aes_ctr_encrypt() comes from the
/struct blkcipher_walk//
//walk/, and this variable /walk /is allocated by the function
__get_free_pages(). So if this
page allocate failed, the input parameter of function
aes_ctr_encrypt() will be NULL. The
panic will occurs if we don't check the input parameter.
Not sure about this and wish to get your opinions!If the page allocation fails in blkcipher_walk_next it'll simply switch over to processing it block by block. so I don't think the warning is related to the crash. Cheers, -- Email: Herbert Xu [off-list ref] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt