Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1859869ybz; Sun, 26 Apr 2020 05:57:31 -0700 (PDT) X-Google-Smtp-Source: APiQypJfSDPBW+VTb+YaubYRpqTNz2WNAJras3bWLJez15J9xbdWVvFItzTpzJCFY81xNo0QuE13 X-Received: by 2002:a05:6402:286:: with SMTP id l6mr15004725edv.134.1587905851653; Sun, 26 Apr 2020 05:57:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587905851; cv=none; d=google.com; s=arc-20160816; b=iGrLTgdGBL2FSffznQ6g6SQITuFdEm47XSafjPiwtQrX4tbWigSYhilA24z+/LXCUw R9GlyK/OYCosKdeRDe8/Ws48SLE2oXGHiqx5njnLMcI1oseUyoijC1cP76a3gfHC4emB DxR+8zOleYK0UO3AHrjzB7e6zl4Jm7xLRYU0e4Xvpi1ZpDFX/g5It67w+4PQQYFvEEfB tYZz2EjS88DHDNX/vGM9FKHvNrAZpbXF7TJ8oixH4VLYZx3Rkk/pVavvW33mMH5lPE8L yXss9RMaLXJTQSNDGKppiQiKqZDdKM5c/WD2FBJxtgZd5sVn7617FLclQqHR9gKMCymO hcyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=5ABxmCph/AEBhxrGHnnsoaYgeGTDosiEQu9/OEZ3qlk=; b=FdRS44qbbhzZzP/qBJBGtx9toJzTHO0a2KMT4q9+Z4f+Rq7uwyfOhb4UhIGHZ3WjrK TE4xJWdQJQhL4zVn7AFZSwuzlylhHsSwZBRjeSX9P9JJOUvtEQqq3/SoOXxV+UA1qyPJ hL/tFG5+CUAJma6+1J7YlhXhI/Yogm5ayirKZtTq1cyMB4y3pWz9eRn2rYPwxxREGS8+ 0vOOulcmUIJkXxF5xkcdouWWw3Lg0jA+q1SYnlUgNIQWxPZOrCMtVfiy1CU/7crx4V3S dGcot5oZ4gmkuBugxAzs/ei56wN2uT+YP2J5WqHBIZAIel84cgy2VW1TxQRjyNDmJPJB 8SdQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=QlfVQk7W; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dh23si6054847edb.223.2020.04.26.05.57.06; Sun, 26 Apr 2020 05:57:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=QlfVQk7W; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726143AbgDZM5E (ORCPT + 99 others); Sun, 26 Apr 2020 08:57:04 -0400 Received: from mail.kernel.org ([198.145.29.99]:34206 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726139AbgDZM5D (ORCPT ); Sun, 26 Apr 2020 08:57:03 -0400 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 424932078E; Sun, 26 Apr 2020 12:57:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587905823; bh=5ABxmCph/AEBhxrGHnnsoaYgeGTDosiEQu9/OEZ3qlk=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=QlfVQk7WG2r4dyEklMbcAMy0GMpDWSj0TEk+tRDbBehvpH18/tpJPxkkZWfOIU0Yf CeM+VhrqduwkKrSgvDQOP8lAg+8RnYBV5KlQyhP5g/OpdOy0fpMYrcu6vohSDLPQ6n LMe9yknOIUSB9bahxDh26QG/tauNRDkNp+7+Enjg= Received: by mail-io1-f51.google.com with SMTP id i3so15833954ioo.13; Sun, 26 Apr 2020 05:57:03 -0700 (PDT) X-Gm-Message-State: AGi0PuYU58i0aaRtrf+hh2KTnL7LbW5qrb0f0L7+B0aUN8KPyy5cMlkY dxRPrOxj0iL7FeJTS8tqz0C1EwaOU/tZhWlzOjA= X-Received: by 2002:a6b:ef03:: with SMTP id k3mr16843666ioh.203.1587905822657; Sun, 26 Apr 2020 05:57:02 -0700 (PDT) MIME-Version: 1.0 References: <20200418104343.GA5132@amd> In-Reply-To: From: Ard Biesheuvel Date: Sun, 26 Apr 2020 14:56:51 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Fw: Arm CryptoCell driver -- default Y, even on machines where it is obviously useless To: Hadar Gat Cc: Gilad Ben-Yossef , Herbert Xu , kernel list , Linux Crypto Mailing List , nd Content-Type: text/plain; charset="UTF-8" Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On Sun, 26 Apr 2020 at 14:50, Hadar Gat wrote: > > Hi Ard, > > > -----Original Message----- > > From: Ard Biesheuvel > > Sent: Sunday, 19 April 2020 11:55 > > > > > > > -----Original Message----- > > > > > From: Pavel Machek > > > > > Sent: Saturday, 18 April 2020 13:44 > > > > > > > > > > Hi! > > > > > > > > > > I'm configuring kernel for x86, and I get offered > > HW_RANDOM_CCTRNG > > > > > with default=Y, and help text suggesting I should enable it. > > > > > > > > > > That's... two wrong suggestions, right? > > > > > > > > > > Best regards, > > > > > Pavel > > > ... > > > > ________________________________________ > > > > From: Hadar Gat > > > > Sent: Saturday, April 18, 2020 11:31 PM > > > > > > > > Hi Pavel, > > > > I think you got it right.. > > > > Indeed, Arm CryptoCell CCTRNG driver couldn't be used and obviously > > useless if the Arm CryptoCell HW does not exist in the system. > > > > > > There's a delicate point here though - CryptoCell is an independent > > > hardware block, it is not tied to a particular CPU architecture. > > > There are SoCs with none-Arm architecture CPU using it. > > > > > > So I would say whatever the answer is, it should be the same for any > > > generic embedded style HW block. > > > > > > And the help text is not architecture specific anyway, is it not..? > > > > > > > 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. 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