aboutsummaryrefslogtreecommitdiff
path: root/arch/mips/pci/fixup-cobalt.c
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert+renesas@glider.be>2021-10-29 11:58:16 +0200
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>2021-11-02 10:53:52 +0100
commit18b8f5b6fc53d097cadb94a93d8d6566ba88e389 (patch)
treec2f63738a41f0a89a85979b9b0a38730f958f365 /arch/mips/pci/fixup-cobalt.c
parent95b8a5e0111a47e5ef780c04cb6293be33d6ee0d (diff)
mips: cm: Convert to bitfield API to fix out-of-bounds access
mips_cm_error_report() extracts the cause and other cause from the error register using shifts. This works fine for the former, as it is stored in the top bits, and the shift will thus remove all non-related bits. However, the latter is stored in the bottom bits, hence thus needs masking to get rid of non-related bits. Without such masking, using it as an index into the cm2_causes[] array will lead to an out-of-bounds access, probably causing a crash. Fix this by using FIELD_GET() instead. Bite the bullet and convert all MIPS CM handling to the bitfield API, to improve readability and safety. Fixes: 3885c2b463f6a236 ("MIPS: CM: Add support for reporting CM cache errors") Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Diffstat (limited to 'arch/mips/pci/fixup-cobalt.c')
0 files changed, 0 insertions, 0 deletions