RE: Fw: Arm CryptoCell driver -- default Y, even on machines where it is obviously useless

From: Hadar Gat
Date: Sun Apr 26 2020 - 09:07:02 EST



> > > -----Original Message-----
> > > From: Ard Biesheuvel <ardb@xxxxxxxxxx>
> > > Sent: Sunday, 19 April 2020 11:55
> > >
> > > Both the default y and and the help text are indeed incorrect. This
> > > should be fixed. We don't enable device drivers by default, and
> > > definitely not as as builtins. A conditional default m could be
> > > acceptable if the condition is sufficiently narrow.
> >
> > On one hand I totally agree with that and think the default should be N.
> > On the other hand, most of the HW_RANDOM drivers set the default to
> > HW_RANDOM and it doesn't make sense to me to do something different
> than almost every other HW RANDOM device.
> > Do I miss something here?
> >
>
> Yes. First of all, using 'default HW_RANDOM' everywhere makes no sense at
> all, but that is not your fault.
>
> If you look at drivers/char/hw_random/Kconfig, you will see that most
> drivers have additional depends lines, which means that 'default m'
> (or 'default y' in case CONFIG_HW_RANDOM=y) will only take affect if the
> dependency is fulfilled.
>
> It makes no sense to enable this driver on *every* single Linux system, right?
> Especially given that many architectures do not even support device tree,
> which is a prerequisite to be able to even probe.
>

Thanks you Ard for clearing it up for me.
I'll fix that shortly.

Hadar

>
>
>
> drivers/char/hw_random/Kconfig-config HW_RANDOM_INTEL
> drivers/char/hw_random/Kconfig- depends on (X86 || IA64) && PCI
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_AMD
> drivers/char/hw_random/Kconfig- depends on (X86 || PPC_MAPLE) && PCI
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_ATMEL
> drivers/char/hw_random/Kconfig- depends on ARCH_AT91 && HAVE_CLK
> && OF
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_BCM2835
> drivers/char/hw_random/Kconfig- depends on ARCH_BCM2835 ||
> ARCH_BCM_NSP || ARCH_BCM_5301X || \
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_IPROC_RNG200
> drivers/char/hw_random/Kconfig- depends on ARCH_BCM_IPROC ||
> ARCH_BCM2835 || ARCH_BRCMSTB
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_GEODE
> drivers/char/hw_random/Kconfig- depends on X86_32 && PCI
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_N2RNG
> drivers/char/hw_random/Kconfig- depends on SPARC64
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_VIA
> drivers/char/hw_random/Kconfig- depends on X86
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_IXP4XX
> drivers/char/hw_random/Kconfig- depends on ARCH_IXP4XX
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_OMAP
> drivers/char/hw_random/Kconfig- depends on ARCH_OMAP16XX ||
> ARCH_OMAP2PLUS || ARCH_MVEBU
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_OMAP3_ROM
> drivers/char/hw_random/Kconfig- depends on ARCH_OMAP3
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_OCTEON
> drivers/char/hw_random/Kconfig- depends on CAVIUM_OCTEON_SOC
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_PASEMI
> drivers/char/hw_random/Kconfig- depends on PPC_PASEMI
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_VIRTIO
> drivers/char/hw_random/Kconfig- depends on VIRTIO
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_TX4939
> drivers/char/hw_random/Kconfig- depends on SOC_TX4939
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_MXC_RNGA
> drivers/char/hw_random/Kconfig- depends on SOC_IMX31
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_IMX_RNGC
> drivers/char/hw_random/Kconfig- depends on HAS_IOMEM && HAVE_CLK
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_NOMADIK
> drivers/char/hw_random/Kconfig- depends on ARCH_NOMADIK
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_PSERIES
> drivers/char/hw_random/Kconfig- depends on PPC64 && IBMVIO
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_POWERNV
> drivers/char/hw_random/Kconfig- depends on PPC_POWERNV
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_HISI
> drivers/char/hw_random/Kconfig- depends on HW_RANDOM &&
> ARCH_HISI
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_HISI_V2
> drivers/char/hw_random/Kconfig- depends on HW_RANDOM && ARM64
> && ACPI
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_ST
> drivers/char/hw_random/Kconfig- depends on HW_RANDOM && ARCH_STI
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_XGENE
> drivers/char/hw_random/Kconfig- depends on HW_RANDOM &&
> ARCH_XGENE
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_STM32
> drivers/char/hw_random/Kconfig- depends on HW_RANDOM &&
> (ARCH_STM32 ||
> COMPILE_TEST)
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_PIC32
> drivers/char/hw_random/Kconfig- depends on HW_RANDOM &&
> MACH_PIC32
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_MESON
> drivers/char/hw_random/Kconfig- depends on HW_RANDOM
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_CAVIUM
> drivers/char/hw_random/Kconfig- depends on HW_RANDOM && PCI &&
> (ARM64
> || (COMPILE_TEST && 64BIT))
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_MTK
> drivers/char/hw_random/Kconfig- depends on HW_RANDOM
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_S390
> drivers/char/hw_random/Kconfig- depends on S390
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_EXYNOS
> drivers/char/hw_random/Kconfig- depends on ARCH_EXYNOS ||
> COMPILE_TEST
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_OPTEE
> drivers/char/hw_random/Kconfig- depends on OPTEE
> --
> drivers/char/hw_random/Kconfig-config HW_RANDOM_NPCM
> drivers/char/hw_random/Kconfig- depends on ARCH_NPCM ||
> COMPILE_TEST