2021-01-07 14:50:59

by David Arcari

[permalink] [raw]
Subject: [PATCH] hwmon: (amd_energy) fix allocation of hwmon_channel_info config

hwmon, specifically hwmon_num_channel_attrs, expects the config
array in the hwmon_channel_info structure to be terminated by
a zero entry. amd_energy does not honor this convention. As
result, a KASAN warning is possible. Fix this by adding an
additional entry and setting it to zero.

Fixes: 8abee9566b7e ("hwmon: Add amd_energy driver to report energy counters")

Signed-off-by: David Arcari <[email protected]>
Cc: Naveen Krishna Chatradhi <[email protected]>
Cc: Jean Delvare <[email protected]>
Cc: Guenter Roeck <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
drivers/hwmon/amd_energy.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/hwmon/amd_energy.c b/drivers/hwmon/amd_energy.c
index 9b306448b7a0..822c2e74b98d 100644
--- a/drivers/hwmon/amd_energy.c
+++ b/drivers/hwmon/amd_energy.c
@@ -222,7 +222,7 @@ static int amd_create_sensor(struct device *dev,
*/
cpus = num_present_cpus() / num_siblings;

- s_config = devm_kcalloc(dev, cpus + sockets,
+ s_config = devm_kcalloc(dev, cpus + sockets + 1,
sizeof(u32), GFP_KERNEL);
if (!s_config)
return -ENOMEM;
@@ -254,6 +254,7 @@ static int amd_create_sensor(struct device *dev,
scnprintf(label_l[i], 10, "Esocket%u", (i - cpus));
}

+ s_config[i] = 0;
return 0;
}

--
2.18.1


2021-01-08 05:52:23

by Naveen Krishna Chatradhi

[permalink] [raw]
Subject: RE: [PATCH] hwmon: (amd_energy) fix allocation of hwmon_channel_info config

[AMD Official Use Only - Approved for External Use]

Hi David,

Thank you for noticing and submitting a fix. You may use
Signed-off-by: Naveen Krishna Chatradhi <[email protected]>

Regards,
Naveenk

-----Original Message-----
From: David Arcari <[email protected]>
Sent: Thursday, January 7, 2021 8:17 PM
To: [email protected]
Cc: David Arcari <[email protected]>; Chatradhi, Naveen Krishna <[email protected]>; Jean Delvare <[email protected]>; Guenter Roeck <[email protected]>; [email protected]; [email protected]
Subject: [PATCH] hwmon: (amd_energy) fix allocation of hwmon_channel_info config

[CAUTION: External Email]

hwmon, specifically hwmon_num_channel_attrs, expects the config array in the hwmon_channel_info structure to be terminated by a zero entry. amd_energy does not honor this convention. As result, a KASAN warning is possible. Fix this by adding an additional entry and setting it to zero.

Fixes: 8abee9566b7e ("hwmon: Add amd_energy driver to report energy counters")

Signed-off-by: David Arcari <[email protected]>
Cc: Naveen Krishna Chatradhi <[email protected]>
[naveenk:] Signed-off-by: Naveen Krishna Chatradhi <[email protected]>
Cc: Jean Delvare <[email protected]>
Cc: Guenter Roeck <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
drivers/hwmon/amd_energy.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/hwmon/amd_energy.c b/drivers/hwmon/amd_energy.c index 9b306448b7a0..822c2e74b98d 100644
--- a/drivers/hwmon/amd_energy.c
+++ b/drivers/hwmon/amd_energy.c
@@ -222,7 +222,7 @@ static int amd_create_sensor(struct device *dev,
*/
cpus = num_present_cpus() / num_siblings;

- s_config = devm_kcalloc(dev, cpus + sockets,
+ s_config = devm_kcalloc(dev, cpus + sockets + 1,
sizeof(u32), GFP_KERNEL);
if (!s_config)
return -ENOMEM;
@@ -254,6 +254,7 @@ static int amd_create_sensor(struct device *dev,
scnprintf(label_l[i], 10, "Esocket%u", (i - cpus));
}

+ s_config[i] = 0;
return 0;
}

--
2.18.1

2021-01-08 06:19:28

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] hwmon: (amd_energy) fix allocation of hwmon_channel_info config

On 1/7/21 9:49 PM, Chatradhi, Naveen Krishna wrote:
> [AMD Official Use Only - Approved for External Use]
>
> Hi David,
>
> Thank you for noticing and submitting a fix. You may use
> Signed-off-by: Naveen Krishna Chatradhi <[email protected]>
>

No, because you are not in the approval path (you did not send the patch
to me). Reviewed-by: or Acked-by: would be more appropriate.

Genter

> Regards,
> Naveenk
>
> -----Original Message-----
> From: David Arcari <[email protected]>
> Sent: Thursday, January 7, 2021 8:17 PM
> To: [email protected]
> Cc: David Arcari <[email protected]>; Chatradhi, Naveen Krishna <[email protected]>; Jean Delvare <[email protected]>; Guenter Roeck <[email protected]>; [email protected]; [email protected]
> Subject: [PATCH] hwmon: (amd_energy) fix allocation of hwmon_channel_info config
>
> [CAUTION: External Email]
>
> hwmon, specifically hwmon_num_channel_attrs, expects the config array in the hwmon_channel_info structure to be terminated by a zero entry. amd_energy does not honor this convention. As result, a KASAN warning is possible. Fix this by adding an additional entry and setting it to zero.
>
> Fixes: 8abee9566b7e ("hwmon: Add amd_energy driver to report energy counters")
>
> Signed-off-by: David Arcari <[email protected]>
> Cc: Naveen Krishna Chatradhi <[email protected]>
> [naveenk:] Signed-off-by: Naveen Krishna Chatradhi <[email protected]>
> Cc: Jean Delvare <[email protected]>
> Cc: Guenter Roeck <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> ---
> drivers/hwmon/amd_energy.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/amd_energy.c b/drivers/hwmon/amd_energy.c index 9b306448b7a0..822c2e74b98d 100644
> --- a/drivers/hwmon/amd_energy.c
> +++ b/drivers/hwmon/amd_energy.c
> @@ -222,7 +222,7 @@ static int amd_create_sensor(struct device *dev,
> */
> cpus = num_present_cpus() / num_siblings;
>
> - s_config = devm_kcalloc(dev, cpus + sockets,
> + s_config = devm_kcalloc(dev, cpus + sockets + 1,
> sizeof(u32), GFP_KERNEL);
> if (!s_config)
> return -ENOMEM;
> @@ -254,6 +254,7 @@ static int amd_create_sensor(struct device *dev,
> scnprintf(label_l[i], 10, "Esocket%u", (i - cpus));
> }
>
> + s_config[i] = 0;
> return 0;
> }
>
> --
> 2.18.1
>

2021-01-08 06:21:50

by Naveen Krishna Chatradhi

[permalink] [raw]
Subject: RE: [PATCH] hwmon: (amd_energy) fix allocation of hwmon_channel_info config

[AMD Official Use Only - Approved for External Use]

Hi Guenter,

>> No, because you are not in the approval path (you did not send the patch to me). Reviewed-by: or Acked-by: would be more appropriate.

Got it, my mistake, please use
Acked-by: Naveen Krishna Chatradhi <[email protected]>

Regards,
Naveenk

-----Original Message-----
From: Guenter Roeck <[email protected]> On Behalf Of Guenter Roeck
Sent: Friday, January 8, 2021 11:47 AM
To: Chatradhi, Naveen Krishna <[email protected]>; David Arcari <[email protected]>; [email protected]
Cc: Jean Delvare <[email protected]>; [email protected]; [email protected]
Subject: Re: [PATCH] hwmon: (amd_energy) fix allocation of hwmon_channel_info config

[CAUTION: External Email]

On 1/7/21 9:49 PM, Chatradhi, Naveen Krishna wrote:
> [AMD Official Use Only - Approved for External Use]
>
> Hi David,
>
> Thank you for noticing and submitting a fix. You may use
> Signed-off-by: Naveen Krishna Chatradhi <[email protected]>
>

No, because you are not in the approval path (you did not send the patch to me). Reviewed-by: or Acked-by: would be more appropriate.

Genter

> Regards,
> Naveenk
>
> -----Original Message-----
> From: David Arcari <[email protected]>
> Sent: Thursday, January 7, 2021 8:17 PM
> To: [email protected]
> Cc: David Arcari <[email protected]>; Chatradhi, Naveen Krishna
> <[email protected]>; Jean Delvare <[email protected]>;
> Guenter Roeck <[email protected]>; [email protected];
> [email protected]
> Subject: [PATCH] hwmon: (amd_energy) fix allocation of
> hwmon_channel_info config
>
> [CAUTION: External Email]
>
> hwmon, specifically hwmon_num_channel_attrs, expects the config array in the hwmon_channel_info structure to be terminated by a zero entry. amd_energy does not honor this convention. As result, a KASAN warning is possible. Fix this by adding an additional entry and setting it to zero.
>
> Fixes: 8abee9566b7e ("hwmon: Add amd_energy driver to report energy
> counters")
>
> Signed-off-by: David Arcari <[email protected]>
> Cc: Naveen Krishna Chatradhi <[email protected]> [naveenk:]
> Signed-off-by: Naveen Krishna Chatradhi <[email protected]>
> Cc: Jean Delvare <[email protected]>
> Cc: Guenter Roeck <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> ---
> drivers/hwmon/amd_energy.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/amd_energy.c b/drivers/hwmon/amd_energy.c
> index 9b306448b7a0..822c2e74b98d 100644
> --- a/drivers/hwmon/amd_energy.c
> +++ b/drivers/hwmon/amd_energy.c
> @@ -222,7 +222,7 @@ static int amd_create_sensor(struct device *dev,
> */
> cpus = num_present_cpus() / num_siblings;
>
> - s_config = devm_kcalloc(dev, cpus + sockets,
> + s_config = devm_kcalloc(dev, cpus + sockets + 1,
> sizeof(u32), GFP_KERNEL);
> if (!s_config)
> return -ENOMEM;
> @@ -254,6 +254,7 @@ static int amd_create_sensor(struct device *dev,
> scnprintf(label_l[i], 10, "Esocket%u", (i - cpus));
> }
>
> + s_config[i] = 0;
> return 0;
> }
>
> --
> 2.18.1
>

2021-01-08 15:38:03

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] hwmon: (amd_energy) fix allocation of hwmon_channel_info config

On Thu, Jan 07, 2021 at 09:47:07AM -0500, David Arcari wrote:
> hwmon, specifically hwmon_num_channel_attrs, expects the config
> array in the hwmon_channel_info structure to be terminated by
> a zero entry. amd_energy does not honor this convention. As
> result, a KASAN warning is possible. Fix this by adding an
> additional entry and setting it to zero.
>
> Fixes: 8abee9566b7e ("hwmon: Add amd_energy driver to report energy counters")
>
> Signed-off-by: David Arcari <[email protected]>
> Cc: Naveen Krishna Chatradhi <[email protected]>
> Cc: Jean Delvare <[email protected]>
> Cc: Guenter Roeck <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Signed-off-by: David Arcari <[email protected]>
> Acked-by: Naveen Krishna Chatradhi <[email protected]>

Applied.

Thanks,
Guenter