staging: ccree: add CRYPTO dependency

Message ID 20170519080409.1042426-1-arnd@arndb.de
State New
Headers show

Commit Message

Arnd Bergmann May 19, 2017, 8:04 a.m.
A rare randconfig build error shows up when we have CONFIG_CRYPTO=m
in combination with a built-in CCREE driver:

crypto/hmac.o: In function `hmac_update':
hmac.c:(.text.hmac_update+0x28): undefined reference to `crypto_shash_update'
crypto/hmac.o: In function `hmac_setkey':
hmac.c:(.text.hmac_setkey+0x90): undefined reference to `crypto_shash_digest'
hmac.c:(.text.hmac_setkey+0x154): undefined reference to `crypto_shash_update'
drivers/staging/ccree/ssi_cipher.o: In function `ssi_blkcipher_setkey':
ssi_cipher.c:(.text.ssi_blkcipher_setkey+0x350): undefined reference to `crypto_shash_digest'
drivers/staging/ccree/ssi_cipher.o: In function `ssi_blkcipher_exit':
ssi_cipher.c:(.text.ssi_blkcipher_exit+0xd4): undefined reference to `crypto_destroy_tfm'
drivers/staging/ccree/ssi_cipher.o: In function `ssi_blkcipher_init':
ssi_cipher.c:(.text.ssi_blkcipher_init+0x1b0): undefined reference to `crypto_alloc_shash'
drivers/staging/ccree/ssi_cipher.o: In function `ssi_ablkcipher_free':
ssi_cipher.c:(.text.ssi_ablkcipher_free+0x48): undefined reference to `crypto_unregister_alg'
drivers/staging/ccree/ssi_cipher.o: In function `ssi_ablkcipher_alloc':
ssi_cipher.c:(.text.ssi_ablkcipher_alloc+0x138): undefined reference to `crypto_register_alg'
ssi_cipher.c:(.text.ssi_ablkcipher_alloc+0x274): undefined reference to `crypto_blkcipher_type'

We actually need to depend on both CRYPTO and CRYPTO_HW here to avoid the
problem, since CRYPTO_HW is a bool symbol and by itself that does not
force CCREE to be a loadable module when the core cryto support is modular.

Fixes: 50cfbbb7e627 ("staging: ccree: add ahash support")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/staging/ccree/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.9.0

Comments

Gilad Ben-Yossef May 21, 2017, 12:26 p.m. | #1
On Fri, May 19, 2017 at 11:04 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> A rare randconfig build error shows up when we have CONFIG_CRYPTO=m

> in combination with a built-in CCREE driver:

>

> crypto/hmac.o: In function `hmac_update':

> hmac.c:(.text.hmac_update+0x28): undefined reference to `crypto_shash_update'

> crypto/hmac.o: In function `hmac_setkey':

> hmac.c:(.text.hmac_setkey+0x90): undefined reference to `crypto_shash_digest'

> hmac.c:(.text.hmac_setkey+0x154): undefined reference to `crypto_shash_update'

> drivers/staging/ccree/ssi_cipher.o: In function `ssi_blkcipher_setkey':

> ssi_cipher.c:(.text.ssi_blkcipher_setkey+0x350): undefined reference to `crypto_shash_digest'

> drivers/staging/ccree/ssi_cipher.o: In function `ssi_blkcipher_exit':

> ssi_cipher.c:(.text.ssi_blkcipher_exit+0xd4): undefined reference to `crypto_destroy_tfm'

> drivers/staging/ccree/ssi_cipher.o: In function `ssi_blkcipher_init':

> ssi_cipher.c:(.text.ssi_blkcipher_init+0x1b0): undefined reference to `crypto_alloc_shash'

> drivers/staging/ccree/ssi_cipher.o: In function `ssi_ablkcipher_free':

> ssi_cipher.c:(.text.ssi_ablkcipher_free+0x48): undefined reference to `crypto_unregister_alg'

> drivers/staging/ccree/ssi_cipher.o: In function `ssi_ablkcipher_alloc':

> ssi_cipher.c:(.text.ssi_ablkcipher_alloc+0x138): undefined reference to `crypto_register_alg'

> ssi_cipher.c:(.text.ssi_ablkcipher_alloc+0x274): undefined reference to `crypto_blkcipher_type'

>

> We actually need to depend on both CRYPTO and CRYPTO_HW here to avoid the

> problem, since CRYPTO_HW is a bool symbol and by itself that does not

> force CCREE to be a loadable module when the core cryto support is modular.

>

> Fixes: 50cfbbb7e627 ("staging: ccree: add ahash support")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

>  drivers/staging/ccree/Kconfig | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

>

> diff --git a/drivers/staging/ccree/Kconfig b/drivers/staging/ccree/Kconfig

> index ae627049c499..4be87f503e3b 100644

> --- a/drivers/staging/ccree/Kconfig

> +++ b/drivers/staging/ccree/Kconfig

> @@ -1,6 +1,6 @@

>  config CRYPTO_DEV_CCREE

>         tristate "Support for ARM TrustZone CryptoCell C7XX family of Crypto accelerators"

> -       depends on CRYPTO_HW && OF && HAS_DMA

> +       depends on CRYPTO && CRYPTO_HW && OF && HAS_DMA

>         default n

>         select CRYPTO_HASH

>         select CRYPTO_BLKCIPHER

> --

> 2.9.0

>


Thank you and

Acked-By: Gilad Ben-Yossef <gilad@benyossef.com>



-- 
Gilad Ben-Yossef
Chief Coffee Drinker

"If you take a class in large-scale robotics, can you end up in a
situation where the homework eats your dog?"
 -- Jean-Baptiste Queru

Patch hide | download patch | download mbox

diff --git a/drivers/staging/ccree/Kconfig b/drivers/staging/ccree/Kconfig
index ae627049c499..4be87f503e3b 100644
--- a/drivers/staging/ccree/Kconfig
+++ b/drivers/staging/ccree/Kconfig
@@ -1,6 +1,6 @@ 
 config CRYPTO_DEV_CCREE
 	tristate "Support for ARM TrustZone CryptoCell C7XX family of Crypto accelerators"
-	depends on CRYPTO_HW && OF && HAS_DMA
+	depends on CRYPTO && CRYPTO_HW && OF && HAS_DMA
 	default n
 	select CRYPTO_HASH
 	select CRYPTO_BLKCIPHER