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

From: Greg Kroah-Hartman
Date: Wed Oct 13 2021 - 09:11:05 EST


On Wed, Oct 13, 2021 at 03:03:41PM +0200, Arnd Bergmann wrote:
> On Wed, Oct 13, 2021 at 2:51 PM Vegard Nossum <vegard.nossum@xxxxxxxxxx> wrote:
> > 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.
>
> Yes, this is the correct way to do it here. In general, using "depends on"
> is better than "select", especially when crossing subsystem boundaries,
> however mixing the two is what really hurts because of the circular
> dependencies you'd get.
>
> The only way we could use 'depends on' here would be to change all
> the other drivers to do the same.
>
> > 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?
>
> I don't think there is much point in trying to change the
> existing pattern for crypto. We might want to change some of those
> that use 'depends on' at the moment for consistency, though most of
> those look correct as well.

Ok, I'll take this as-is then.

thanks,

greg k-h