[CRYPTO] hifn795x: Disallow built-in hifn795x when HW_RANDOM is m
Currently it is possible to select HW_RANDOM as a module and have hifn795x built-in. This causes a build problem because hifn795x will then call hwrng_register which isn't built-in. This patch introduces a new config option to control the hifn795x RNG which lets us avoid this problem. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
2d94dfc8c3
commit
946fef4e14
|
@ -88,10 +88,16 @@ config CRYPTO_DEV_HIFN_795X
|
|||
select CRYPTO_DES
|
||||
select CRYPTO_ALGAPI
|
||||
select CRYPTO_BLKCIPHER
|
||||
select HW_RANDOM if CRYPTO_DEV_HIFN_795X_RNG
|
||||
depends on PCI
|
||||
help
|
||||
This option allows you to have support for HIFN 795x crypto adapters.
|
||||
|
||||
|
||||
config CRYPTO_DEV_HIFN_795X_RNG
|
||||
bool "HIFN 795x random number generator"
|
||||
depends on CRYPTO_DEV_HIFN_795X
|
||||
help
|
||||
Select this option if you want to enable the random number generator
|
||||
on the HIFN 795x crypto adapters.
|
||||
|
||||
endif # CRYPTO_HW
|
||||
|
|
|
@ -463,7 +463,7 @@ struct hifn_device
|
|||
|
||||
unsigned int pk_clk_freq;
|
||||
|
||||
#if defined(CONFIG_HW_RANDOM) || defined(CONFIG_HW_RANDOM_MODULE)
|
||||
#ifdef CRYPTO_DEV_HIFN_795X_RNG
|
||||
unsigned int rng_wait_time;
|
||||
ktime_t rngtime;
|
||||
struct hwrng rng;
|
||||
|
@ -795,7 +795,7 @@ static struct pci2id {
|
|||
}
|
||||
};
|
||||
|
||||
#if defined(CONFIG_HW_RANDOM) || defined(CONFIG_HW_RANDOM_MODULE)
|
||||
#ifdef CRYPTO_DEV_HIFN_795X_RNG
|
||||
static int hifn_rng_data_present(struct hwrng *rng, int wait)
|
||||
{
|
||||
struct hifn_device *dev = (struct hifn_device *)rng->priv;
|
||||
|
@ -880,7 +880,7 @@ static int hifn_init_pubrng(struct hifn_device *dev)
|
|||
dprintk("Chip %s: RNG engine has been successfully initialised.\n",
|
||||
dev->name);
|
||||
|
||||
#if defined(CONFIG_HW_RANDOM) || defined(CONFIG_HW_RANDOM_MODULE)
|
||||
#ifdef CRYPTO_DEV_HIFN_795X_RNG
|
||||
/* First value must be discarded */
|
||||
hifn_read_1(dev, HIFN_1_RNG_DATA);
|
||||
dev->rngtime = ktime_get();
|
||||
|
|
Loading…
Reference in New Issue