[PATCH v3 0/3] RISC-V: Ensure Zicbom has a valid block size

Andrew Jones
2022-11-29T14:35:07Z

When a DT puts zicbom in the isa string, but does not provide a block
size, ALT_CMO_OP() will attempt to do cache operations on address
zero since the start address will be ANDed with zero. We can't simply
BUG() in riscv_init_cbom_blocksize() when we fail to find a block
size because the failure will happen before logging works, leaving
users to scratch their heads as to why the boot hung. Instead, ensure
Zicbom is disabled and output an error which will hopefully alert
people that the DT needs to be fixed. While at it, add a check that
the block size is a power-of-2 too.

The first patch of the series is a cleanup of code that crossed the
path of this work. The second patch prepares for isa ext. checking
and the third finally does what this cover letter says.

Thanks,
drew

v3:
- Mostly just a friendly ping, but also rebased and picked up r-b's

v2:
- Unconditionally complain when we detect a problem with DT's
cbom-block-size
- A couple r-b's from Conor

Andrew Jones (3):
RISC-V: Improve use of isa2hwcap[]
RISC-V: Introduce riscv_isa_extension_check
RISC-V: Ensure Zicbom has a valid block size

arch/riscv/kernel/cpufeature.c | 43 ++++++++++++++++++++++++++--------
1 file changed, 33 insertions(+), 10 deletions(-)

--
2.38.1