2018-07-23 02:41:33

by Jia-Ju Bai

[permalink] [raw]
Subject: [REPORT] Possible unnecessary usages of GFP_ATOMIC in crypto/ablkcipher.c

My tool DCNS reports three unnecessary usages of GFP_ATOMIC in
crypto/ablkcipher.c:
crypto/ablkcipher.c, 162: kmalloc(GFP_ATOMIC) in ablkcipher_next_slow
crypto/ablkcipher.c, 199: kmalloc(GFP_ATOMIC) in ablkcipher_copy_iv
crypto/ablkcipher.c, 315: kmalloc(GFP_ATOMIC) in setkey_unaligned

I meant to manually check the code, but I find that there are many
functions calling ablkcipher_next_slow(),
ablkcipher_copy_iv() and setkey_unaligned(), so I am not sure whether
the above three reports are true.

Could someone help me to validate these reports?
Thanks a lot in advance :)


Best wishes,
Jia-Ju Bai



2018-07-23 06:22:45

by Herbert Xu

[permalink] [raw]
Subject: Re: [REPORT] Possible unnecessary usages of GFP_ATOMIC in crypto/ablkcipher.c

On Mon, Jul 23, 2018 at 10:39:40AM +0800, Jia-Ju Bai wrote:
> My tool DCNS reports three unnecessary usages of GFP_ATOMIC in
> crypto/ablkcipher.c:
> crypto/ablkcipher.c, 162: kmalloc(GFP_ATOMIC) in ablkcipher_next_slow
> crypto/ablkcipher.c, 199: kmalloc(GFP_ATOMIC) in ablkcipher_copy_iv
> crypto/ablkcipher.c, 315: kmalloc(GFP_ATOMIC) in setkey_unaligned
>
> I meant to manually check the code, but I find that there are many functions
> calling ablkcipher_next_slow(),
> ablkcipher_copy_iv() and setkey_unaligned(), so I am not sure whether the
> above three reports are true.
>
> Could someone help me to validate these reports?
> Thanks a lot in advance :)

They must use GFP_ATOMIC because they can be called from softirq
context, e.g., IPsec.

Cheers,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2018-07-23 07:21:00

by Jia-Ju Bai

[permalink] [raw]
Subject: Re: [REPORT] Possible unnecessary usages of GFP_ATOMIC in crypto/ablkcipher.c



On 2018/7/23 14:21, Herbert Xu wrote:
> On Mon, Jul 23, 2018 at 10:39:40AM +0800, Jia-Ju Bai wrote:
>> My tool DCNS reports three unnecessary usages of GFP_ATOMIC in
>> crypto/ablkcipher.c:
>> crypto/ablkcipher.c, 162: kmalloc(GFP_ATOMIC) in ablkcipher_next_slow
>> crypto/ablkcipher.c, 199: kmalloc(GFP_ATOMIC) in ablkcipher_copy_iv
>> crypto/ablkcipher.c, 315: kmalloc(GFP_ATOMIC) in setkey_unaligned
>>
>> I meant to manually check the code, but I find that there are many functions
>> calling ablkcipher_next_slow(),
>> ablkcipher_copy_iv() and setkey_unaligned(), so I am not sure whether the
>> above three reports are true.
>>
>> Could someone help me to validate these reports?
>> Thanks a lot in advance :)
> They must use GFP_ATOMIC because they can be called from softirq
> context, e.g., IPsec.

Okay, thanks for the reply.


Best wishes,
Jia-Ju Bai