Re: [v5 11/11] platform/x86/amd/hsmp: Fix potential spectre issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 23 Aug 2024, Suma Hegde wrote:

> Fix below warning caused by smatch by using array_index_nospec()
> to clamp the index within the range.
> "warn: potential spectre issue 'plat_dev.sock' [r] (local cap)"

While the warning have always been bogus for these code paths because
those are not user controllable values, I suspect the warning might no 
longer trigger at all. I suspect the warning is tied to kstr*() which is 
no longer used.

Also, it should be hsmp_pdev but please retest if this patch can be 
dropped from this series (no need to resend the entire series because of 
that, just mention if this patch can be left out).

-- 
 i.


> 
> Signed-off-by: Suma Hegde <suma.hegde@xxxxxxx>
> Reviewed-by: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@xxxxxxx>
> ---
> Changes since v4:
> None
> 
> Changes since v3:
> None
> 
> Changes since v2:
> None
> 
> Changes since v1:
> Change plat_dev to hsmp_pdev
> 
>  drivers/platform/x86/amd/hsmp/acpi.c | 3 +++
>  drivers/platform/x86/amd/hsmp/plat.c | 3 +++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/drivers/platform/x86/amd/hsmp/acpi.c b/drivers/platform/x86/amd/hsmp/acpi.c
> index f2bfc5981590..16a82b8bce28 100644
> --- a/drivers/platform/x86/amd/hsmp/acpi.c
> +++ b/drivers/platform/x86/amd/hsmp/acpi.c
> @@ -18,6 +18,7 @@
>  #include <linux/ioport.h>
>  #include <linux/kstrtox.h>
>  #include <linux/module.h>
> +#include <linux/nospec.h>
>  #include <linux/platform_device.h>
>  #include <linux/sysfs.h>
>  #include <linux/uuid.h>
> @@ -272,6 +273,8 @@ static int init_acpi(struct device *dev)
>  	if (sock_ind >= hsmp_pdev.num_sockets)
>  		return -EINVAL;
>  
> +	sock_ind = array_index_nospec(sock_ind, hsmp_pdev.num_sockets);
> +
>  	ret = hsmp_parse_acpi_table(dev, sock_ind);
>  	if (ret) {
>  		dev_err(dev, "Failed to parse ACPI table\n");
> diff --git a/drivers/platform/x86/amd/hsmp/plat.c b/drivers/platform/x86/amd/hsmp/plat.c
> index d55c984a9a5a..8fb395e91806 100644
> --- a/drivers/platform/x86/amd/hsmp/plat.c
> +++ b/drivers/platform/x86/amd/hsmp/plat.c
> @@ -15,6 +15,7 @@
>  #include <linux/device.h>
>  #include <linux/module.h>
>  #include <linux/pci.h>
> +#include <linux/nospec.h>
>  #include <linux/platform_device.h>
>  #include <linux/sysfs.h>
>  
> @@ -79,6 +80,8 @@ static ssize_t hsmp_metric_tbl_read(struct file *filp, struct kobject *kobj,
>  	if (sock_ind >= hsmp_pdev.num_sockets)
>  		return -EINVAL;
>  
> +	sock_ind = array_index_nospec(sock_ind, hsmp_pdev.num_sockets);
> +
>  	sock = &hsmp_pdev.sock[sock_ind];
>  	if (!sock)
>  		return -EINVAL;
> 





[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux