powerpc: Add static_key_feature_checks_initialized flag
authorNicholas Miehlbradt <nicholas@linux.ibm.com>
Mon, 8 Apr 2024 05:23:58 +0000 (05:23 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 15 Apr 2024 02:53:39 +0000 (12:53 +1000)
commit676b2f99b0f6cd11193eeae13c976565c3fc7545
treefd5692814cfee5729a7b9e6c13543aeee269643d
parent676abf7c39267080ab81597c6d4f372a10c0fc21
powerpc: Add static_key_feature_checks_initialized flag

JUMP_LABEL_FEATURE_CHECK_DEBUG used static_key_intialized to determine
whether {cpu,mmu}_has_feature() is used before static keys were
initialized. However, {cpu,mmu}_has_feature() should not be used before
setup_feature_keys() is called but static_key_initialized is set well
before this by the call to jump_label_init() in early_init_devtree().
This creates a window in which JUMP_LABEL_FEATURE_CHECK_DEBUG will not
detect misuse and report errors. Add a flag specifically to indicate
when {cpu,mmu}_has_feature() is safe to use.

Signed-off-by: Nicholas Miehlbradt <nicholas@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240408052358.5030-1-nicholas@linux.ibm.com
arch/powerpc/include/asm/cpu_has_feature.h
arch/powerpc/include/asm/feature-fixups.h
arch/powerpc/include/asm/mmu.h
arch/powerpc/lib/feature-fixups.c