Re: [PATCH] staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC

From: Vegard Nossum
Date: Wed Oct 13 2021 - 08:56:58 EST



On 10/13/21 2:26 PM, Greg Kroah-Hartman wrote:
> On Mon, Oct 11, 2021 at 05:29:41PM +0200, Vegard Nossum wrote:
>> Fix the following build/link errors:
>>
>> ld: drivers/staging/ks7010/ks_hostif.o: in function `michael_mic.constprop.0':
>> ks_hostif.c:(.text+0x95b): undefined reference to `crypto_alloc_shash'
>> ld: ks_hostif.c:(.text+0x97a): undefined reference to `crypto_shash_setkey'
>> ld: ks_hostif.c:(.text+0xa13): undefined reference to `crypto_shash_update'
>> ld: ks_hostif.c:(.text+0xa28): undefined reference to `crypto_shash_update'
>> ld: ks_hostif.c:(.text+0xa48): undefined reference to `crypto_shash_finup'
>> ld: ks_hostif.c:(.text+0xa6d): undefined reference to `crypto_destroy_tfm'
>>
>> Signed-off-by: Vegard Nossum <vegard.nossum@xxxxxxxxxx>
>> ---
>> drivers/staging/ks7010/Kconfig | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/staging/ks7010/Kconfig b/drivers/staging/ks7010/Kconfig
>> index 0987fdc2f70db..8ea6c09286798 100644
>> --- a/drivers/staging/ks7010/Kconfig
>> +++ b/drivers/staging/ks7010/Kconfig
>> @@ -5,6 +5,9 @@ config KS7010
>> select WIRELESS_EXT
>> select WEXT_PRIV
>> select FW_LOADER
>> + select CRYPTO
>> + select CRYPTO_HASH
>> + select CRYPTO_MICHAEL_MIC
>
> Let's try to rely on 'depend' and not 'select' please.

I used 'select' because it seemed to be the established pattern for
these options. Compare:

$ find -name '*Kconfig*' | xargs git grep 'depends on CRYPTO$' | wc --lines
1

$ find -name '*Kconfig*' | xargs git grep 'select CRYPTO$' | wc --lines
66

$ find -name '*Kconfig*' | xargs git grep 'depends on CRYPTO' | wc --lines
87

$ find -name '*Kconfig*' | xargs git grep 'select CRYPTO' | wc --lines
1005

That said, I have found several other cases where CRYPTO_* algorithms
are getting 'select'-ed without also selecting CRYPTO/CRYPTO_HASH, so I
definitely see the problem you're trying to address.

I've added some more people on Cc to see if there is a consensus on the
best way to do this for the CRYPTO* options going forwards. Thoughts,
anybody?


Vegard