diff options
author | Lee Jones <lee.jones@linaro.org> | 2014-08-18 16:11:27 +0100 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2014-09-26 08:15:34 +0100 |
commit | 5f114ebcee681b011e8b5bcd2b24169b85286050 (patch) | |
tree | f4bdd1b8272e550c80f72fc1a442a8839c83450a /drivers/mfd/sm501.c | |
parent | 8a012ff9d8723fdf7ea242f0f41703eed7365b79 (diff) | |
download | linux-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/mfd/sm501.c')
-rw-r--r-- | drivers/mfd/sm501.c | 2 |
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; |