diff options
author | Suma Hegde <suma.hegde@amd.com> | 2024-01-06 02:25:30 +0000 |
---|---|---|
committer | Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> | 2024-01-31 10:31:07 +0200 |
commit | ef6e98177f8d331cdcbe18125a1e2da82f6ede34 (patch) | |
tree | 5577254902eeb3bb56590aebe26bbf09998cf06d /drivers/platform | |
parent | d2bf115115d556a5a50cec9dd63cb5f64f10de87 (diff) | |
download | linux-stable-ef6e98177f8d331cdcbe18125a1e2da82f6ede34.tar.gz linux-stable-ef6e98177f8d331cdcbe18125a1e2da82f6ede34.tar.bz2 linux-stable-ef6e98177f8d331cdcbe18125a1e2da82f6ede34.zip |
platform/x86/amd/hsmp: Check num_sockets against MAX_AMD_SOCKETS
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 <suma.hegde@amd.com>
Reviewed-by: Naveen Krishna Chatradhi <nchatrad@amd.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20240106022532.1746932-9-suma.hegde@amd.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Diffstat (limited to 'drivers/platform')
-rw-r--r-- | drivers/platform/x86/amd/hsmp.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c index aecc64a72d20..1b446d36221f 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); |