summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLee Jones <lee.jones@linaro.org>2014-08-18 16:11:27 +0100
committerLee Jones <lee.jones@linaro.org>2014-09-26 08:15:34 +0100
commit5f114ebcee681b011e8b5bcd2b24169b85286050 (patch)
treef4bdd1b8272e550c80f72fc1a442a8839c83450a /drivers
parent8a012ff9d8723fdf7ea242f0f41703eed7365b79 (diff)
downloadlinux-5f114ebcee681b011e8b5bcd2b24169b85286050.tar.bz2
mfd: sm501: Avoid implicit sign extension
Suspicious implicit sign extension where 'reg' (unsigned char) is promoted in reg << clksrc to int, then sign-extended to unsigned long. If reg << clksrc is greater than 0x7FFFFFFF, the upper bits of the result will all be 1. Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mfd/sm501.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
index 81e6d0932bf0..1f9233bf4c3e 100644
--- a/drivers/mfd/sm501.c
+++ b/drivers/mfd/sm501.c
@@ -514,9 +514,9 @@ unsigned long sm501_set_clock(struct device *dev,
unsigned long mode = smc501_readl(sm->regs + SM501_POWER_MODE_CONTROL);
unsigned long gate = smc501_readl(sm->regs + SM501_CURRENT_GATE);
unsigned long clock = smc501_readl(sm->regs + SM501_CURRENT_CLOCK);
- unsigned char reg;
unsigned int pll_reg = 0;
unsigned long sm501_freq; /* the actual frequency achieved */
+ u64 reg;
struct sm501_clock to;