| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: Sudeep Holla <sudeep.holla@arm.com> |
| Date: Thu, 18 May 2017 17:19:28 +0100 |
| Subject: clk: scpi: fix return type of __scpi_dvfs_round_rate |
| |
| From: Sudeep Holla <sudeep.holla@arm.com> |
| |
| |
| [ Upstream commit 7374aec95636ca39409545eba4ef5ff3125c2346 ] |
| |
| The frequencies above the maximum value of signed integer(i.e. 2^31 -1) |
| will overflow with the current code. |
| |
| This patch fixes the return type of __scpi_dvfs_round_rate from 'int' |
| to 'unsigned long'. |
| |
| Fixes: cd52c2a4b5c4 ("clk: add support for clocks provided by SCP(System Control Processor)") |
| Cc: Michael Turquette <mturquette@baylibre.com> |
| Cc: Stephen Boyd <sboyd@codeaurora.org> |
| Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> |
| Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/clk/clk-scpi.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/clk/clk-scpi.c |
| +++ b/drivers/clk/clk-scpi.c |
| @@ -71,15 +71,15 @@ static const struct clk_ops scpi_clk_ops |
| }; |
| |
| /* find closest match to given frequency in OPP table */ |
| -static int __scpi_dvfs_round_rate(struct scpi_clk *clk, unsigned long rate) |
| +static long __scpi_dvfs_round_rate(struct scpi_clk *clk, unsigned long rate) |
| { |
| int idx; |
| - u32 fmin = 0, fmax = ~0, ftmp; |
| + unsigned long fmin = 0, fmax = ~0, ftmp; |
| const struct scpi_opp *opp = clk->info->opps; |
| |
| for (idx = 0; idx < clk->info->count; idx++, opp++) { |
| ftmp = opp->freq; |
| - if (ftmp >= (u32)rate) { |
| + if (ftmp >= rate) { |
| if (ftmp <= fmax) |
| fmax = ftmp; |
| break; |