]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: mte: initialize RGSR_EL1.SEED in __cpu_setup
authorPeter Collingbourne <pcc@google.com>
Fri, 7 May 2021 18:59:05 +0000 (11:59 -0700)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 10 May 2021 17:56:25 +0000 (18:56 +0100)
commit7e9d9976d1782a56608f2b4f6a136375a7f98ed7
treedd261c684b25c33c1ee9c748ed16c0d83367c8ea
parent374e572bfa99da54eea32797f131ffb5ff7b3e10
arm64: mte: initialize RGSR_EL1.SEED in __cpu_setup

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.

Signed-off-by: Peter Collingbourne <pcc@google.com>
Fixes: c9d5d3bbc984 ("arm64: mte: CPU feature detection and initial sysreg configuration")
Cc: <stable@vger.kernel.org> # 5.10
Link: https://linux-review.googlesource.com/id/I2b089b6c7d6f17ee37e2f0db7df5ad5bcc04526c
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20210507185905.1745402-1-pcc@google.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/mm/proc.S