On Fri, 7 May 2021 11:59:05 -0700, Peter Collingbourne wrote:
A valid implementation choice for the ChooseRandomNonExcludedTag() pseudocode function used by IRG is to behave in the same way as with GCR_EL1.RRND=0. This would mean that RGSR_EL1.SEED is used as an LFSR which must have a non-zero value in order for IRG to properly produce pseudorandom numbers. However, RGSR_EL1 is reset to an UNKNOWN value on soft reset and thus may reset to 0. Therefore we must initialize RGSR_EL1.SEED to a non-zero value in order to ensure that IRG behaves as expected.
Applied to arm64 (for-next/fixes), thanks!
[1/1] arm64: mte: initialize RGSR_EL1.SEED in __cpu_setup https://git.kernel.org/arm64/c/37a8024d2655