arm64: cpufeature: treat unknown fields as RES0
authorMark Rutland <mark.rutland@arm.com>
Mon, 9 Jan 2017 17:28:24 +0000 (17:28 +0000)
committerWill Deacon <will.deacon@arm.com>
Tue, 10 Jan 2017 17:11:23 +0000 (17:11 +0000)
commitb389d7997acb9c95331322c54ebf45a3bb97ff7b
treea46d22c8003373fd2a1f1ad535938d108a82bc4a
parentf31deaadff0d81a4963b5d816c1ae4a67296aa0c
arm64: cpufeature: treat unknown fields as RES0

Any fields not defined in an arm64_ftr_bits entry are propagated to the
system-wide register value in init_cpu_ftr_reg(), and while we require
that these strictly match for the sanity checks, we don't update them in
update_cpu_ftr_reg().

Generally, the lack of an arm64_ftr_bits entry indicates that the bits
are currently RES0 (as is the case for the upper 32 bits of all
supposedly 32-bit registers).

A better default would be to use zero for the system-wide value of
unallocated bits, making all register checking consistent, and allowing
for subsequent simplifications to the arm64_ftr_bits arrays.

This patch updates init_cpu_ftr_reg() to treat unallocated bits as RES0
for the purpose of the system-wide safe value. These bits will still be
sanity checked with strict match requirements, as is currently the case.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/cpufeature.c