linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] firmware: arm_scmi: fix divide by zero when sustained_perf_level is zero
@ 2018-09-05 16:38 Sudeep Holla
  2018-09-06 13:17 ` Quentin Perret
  2018-09-06 15:10 ` [PATCH v2] " Sudeep Holla
  0 siblings, 2 replies; 6+ messages in thread
From: Sudeep Holla @ 2018-09-05 16:38 UTC (permalink / raw)
  To: arm
  Cc: Sudeep Holla, linux-kernel, linux-arm-kernel, Ionela Voinescu,
	Quentin Perret, Kevin Hilman, Olof Johansson, Arnd Bergmann

Firmware can provide zero as values for sustained performance level and
corresponding sustained frequency in kHz in order to hide the actual
frequencies and provide only abstract values. It may endup with divide
by zero scenario resulting in kernel panic.

Let's set the multiplication factor to one if either one or both of them
(sustained_perf_level and sustained_freq) are set to zero.

Fixes: a9e3fbfaa0ff ("firmware: arm_scmi: add initial support for performance protocol")
Reported-by: Ionela Voinescu <ionela.voinescu@arm.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 drivers/firmware/arm_scmi/perf.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Hi ARM SoC team,

Can you pick this patch directly ?

Regards,
Sudeep

diff --git a/drivers/firmware/arm_scmi/perf.c b/drivers/firmware/arm_scmi/perf.c
index 721e6c57beae..51c08394026b 100644
--- a/drivers/firmware/arm_scmi/perf.c
+++ b/drivers/firmware/arm_scmi/perf.c
@@ -166,7 +166,12 @@ scmi_perf_domain_attributes_get(const struct scmi_handle *handle, u32 domain,
 					le32_to_cpu(attr->sustained_freq_khz);
 		dom_info->sustained_perf_level =
 					le32_to_cpu(attr->sustained_perf_level);
-		dom_info->mult_factor =	(dom_info->sustained_freq_khz * 1000) /
+		if (!dom_info->sustained_freq_khz ||
+		    !dom_info->sustained_perf_level)
+			dom_info->mult_factor =	1;
+		else
+			dom_info->mult_factor =
+					(dom_info->sustained_freq_khz * 1000) /
 					dom_info->sustained_perf_level;
 		memcpy(dom_info->name, attr->name, SCMI_MAX_STR_SIZE);
 	}
--
2.7.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-09-06 17:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-05 16:38 [PATCH] firmware: arm_scmi: fix divide by zero when sustained_perf_level is zero Sudeep Holla
2018-09-06 13:17 ` Quentin Perret
2018-09-06 14:38   ` Sudeep Holla
2018-09-06 15:10 ` [PATCH v2] " Sudeep Holla
2018-09-06 16:59   ` Olof Johansson
2018-09-06 17:11     ` Sudeep Holla

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).