Patch "firmware: arm_scmi: Fix frequency truncation by promoting multiplier type" has been added to the 6.1-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    firmware: arm_scmi: Fix frequency truncation by promoting multiplier type

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     firmware-arm_scmi-fix-frequency-truncation-by-promot.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 0be29a4228fb46ed71ceb9d3ce17be8b03862eba
Author: Sudeep Holla <sudeep.holla@xxxxxxx>
Date:   Thu Nov 30 20:43:42 2023 +0000

    firmware: arm_scmi: Fix frequency truncation by promoting multiplier type
    
    [ Upstream commit 8e3c98d9187e09274fc000a7d1a77b070a42d259 ]
    
    Fix the possible frequency truncation for all values equal to or greater
    4GHz on 64bit machines by updating the multiplier 'mult_factor' to
    'unsigned long' type. It is also possible that the multiplier itself can
    be greater than or equal to 2^32. So we need to also fix the equation
    computing the value of the multiplier.
    
    Fixes: a9e3fbfaa0ff ("firmware: arm_scmi: add initial support for performance protocol")
    Reported-by: Sibi Sankar <quic_sibis@xxxxxxxxxxx>
    Closes: https://lore.kernel.org/all/20231129065748.19871-3-quic_sibis@xxxxxxxxxxx/
    Cc: Cristian Marussi <cristian.marussi@xxxxxxx>
    Link: https://lore.kernel.org/r/20231130204343.503076-1-sudeep.holla@xxxxxxx
    Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/firmware/arm_scmi/perf.c b/drivers/firmware/arm_scmi/perf.c
index 431bda9165c3d..2775bcafe40f6 100644
--- a/drivers/firmware/arm_scmi/perf.c
+++ b/drivers/firmware/arm_scmi/perf.c
@@ -131,7 +131,7 @@ struct perf_dom_info {
 	u32 opp_count;
 	u32 sustained_freq_khz;
 	u32 sustained_perf_level;
-	u32 mult_factor;
+	unsigned long mult_factor;
 	char name[SCMI_MAX_STR_SIZE];
 	struct scmi_opp opp[MAX_OPPS];
 	struct scmi_fc_info *fc_info;
@@ -223,8 +223,8 @@ scmi_perf_domain_attributes_get(const struct scmi_protocol_handle *ph,
 			dom_info->mult_factor =	1000;
 		else
 			dom_info->mult_factor =
-					(dom_info->sustained_freq_khz * 1000) /
-					dom_info->sustained_perf_level;
+					(dom_info->sustained_freq_khz * 1000UL)
+					/ dom_info->sustained_perf_level;
 		strscpy(dom_info->name, attr->name, SCMI_SHORT_NAME_MAX_SIZE);
 	}
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux