Thread (10 messages) flat view 10 messages, 4 authors, 2016-09-13

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help