Commit 5f114ebc authored by Lee Jones's avatar Lee Jones
Browse files

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: default avatarLee Jones <lee.jones@linaro.org>
parent 8a012ff9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;