[PATCH] RAS/AMD/ATL: Fix array overflow in get_logical_coh_st_fabric_id_mi300()

From: Dan Carpenter
Date: Wed Jan 31 2024 - 03:24:43 EST


Check against ARRAY_SIZE() which is the number of elements instead of
sizeof() which is the number of bytes. Otherwise we potentially read
beyond the end of the phy_to_log_coh_st_map_mi300[] array.

Fixes: 453f0ae79732 ("RAS/AMD/ATL: Add MI300 support")
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
---
drivers/ras/amd/atl/denormalize.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/ras/amd/atl/denormalize.c b/drivers/ras/amd/atl/denormalize.c
index d5d0e1fda159..49a900e066f1 100644
--- a/drivers/ras/amd/atl/denormalize.c
+++ b/drivers/ras/amd/atl/denormalize.c
@@ -405,7 +405,7 @@ static const u16 phy_to_log_coh_st_map_mi300[] = {

static u16 get_logical_coh_st_fabric_id_mi300(struct addr_ctx *ctx)
{
- if (ctx->inst_id >= sizeof(phy_to_log_coh_st_map_mi300)) {
+ if (ctx->inst_id >= ARRAY_SIZE(phy_to_log_coh_st_map_mi300)) {
atl_debug(ctx, "Instance ID out of range");
return ~0;
}
--
2.43.0