From ef6e98177f8d331cdcbe18125a1e2da82f6ede34 Mon Sep 17 00:00:00 2001 From: Suma Hegde Date: Sat, 6 Jan 2024 02:25:30 +0000 Subject: [PATCH] platform/x86/amd/hsmp: Check num_sockets against MAX_AMD_SOCKETS MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit AMD supports connecting up to 8 AMD EPYCs in a system. Hence, verify the num_sockets returned from amd_nb_num(). Also remove the WARN_ON() since the num_sockets is already verified. Signed-off-by: Suma Hegde Reviewed-by: Naveen Krishna Chatradhi Reviewed-by: Ilpo Järvinen Link: https://lore.kernel.org/r/20240106022532.1746932-9-suma.hegde@amd.com Signed-off-by: Ilpo Järvinen --- drivers/platform/x86/amd/hsmp.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c index aecc64a72d20a..1b446d36221fd 100644 --- a/drivers/platform/x86/amd/hsmp.c +++ b/drivers/platform/x86/amd/hsmp.c @@ -62,6 +62,8 @@ #define MSG_ARGOFF_STR "MsgArgOffset" #define MSG_RESPOFF_STR "MsgRspOffset" +#define MAX_AMD_SOCKETS 8 + struct hsmp_mbaddr_info { u32 base_addr; u32 msg_id_off; @@ -669,10 +671,6 @@ static int hsmp_create_non_acpi_sysfs_if(struct device *dev) struct attribute_group *attr_grp; u16 i; - /* String formatting is currently limited to u8 sockets */ - if (WARN_ON(plat_dev.num_sockets > U8_MAX)) - return -ERANGE; - hsmp_attr_grps = devm_kzalloc(dev, sizeof(struct attribute_group *) * (plat_dev.num_sockets + 1), GFP_KERNEL); if (!hsmp_attr_grps) @@ -922,7 +920,7 @@ static int __init hsmp_plt_init(void) * if we have N SMN/DF interfaces that ideally means N sockets */ plat_dev.num_sockets = amd_nb_num(); - if (plat_dev.num_sockets == 0) + if (plat_dev.num_sockets == 0 || plat_dev.num_sockets > MAX_AMD_SOCKETS) return ret; ret = platform_driver_register(&amd_hsmp_driver); -- 2.30.2