[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Y2Env04RIXEpNstS@arm.com>
Date: Tue, 1 Nov 2022 14:05:51 +0000
From: Catalin Marinas <catalin.marinas@....com>
To: "Jason A. Donenfeld" <Jason@...c4.com>
Cc: linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
Will Deacon <will@...nel.org>,
Ard Biesheuvel <ardb@...nel.org>,
Jean-Philippe Brucker <jean-philippe@...aro.org>
Subject: Re: [PATCH v5] random: remove early archrandom abstraction
On Tue, Nov 01, 2022 at 01:25:28PM +0100, Jason A. Donenfeld wrote:
> The arch_get_random*_early() abstraction is not completely useful and
> adds complexity, because it's not a given that there will be no calls to
> arch_get_random*() between random_init_early(), which uses
> arch_get_random*_early(), and init_cpu_features(). During that gap,
> crng_reseed() might be called, which uses arch_get_random*(), since it's
> mostly not init code.
>
> Instead we can test whether we're in the early phase in
> arch_get_random*() itself, and in doing so avoid all ambiguity about
> where we are. Fortunately, the only architecture that currently
> implements arch_get_random*_early() also has an alternatives-based cpu
> feature system, one flag of which determines whether the other flags
> have been initialized. This makes it possible to do the early check with
> zero cost once the system is initialized.
>
> Cc: Catalin Marinas <catalin.marinas@....com>
> Cc: Will Deacon <will@...nel.org>
> Cc: Ard Biesheuvel <ardb@...nel.org>
> Cc: Jean-Philippe Brucker <jean-philippe@...aro.org>
> Signed-off-by: Jason A. Donenfeld <Jason@...c4.com>
Reviewed-by: Catalin Marinas <catalin.marinas@....com>
Powered by blists - more mailing lists