]> git.baikalelectronics.ru Git - kernel.git/commit
ASoC: fsl_spdif: Fix integer overflow when calculating divisors
authorAnssi Hannula <anssi.hannula@iki.fi>
Mon, 9 Jun 2014 16:16:43 +0000 (19:16 +0300)
committerMark Brown <broonie@linaro.org>
Mon, 9 Jun 2014 20:00:42 +0000 (21:00 +0100)
commit9bf591a7298e4af3c5aaa204331033e94ecb5cde
tree66d54740aadc7a1baf67aba55c843748bf2f6ed8
parent1bc38ffc1efd4c4ed313691ed3a75d1e307eadd3
ASoC: fsl_spdif: Fix integer overflow when calculating divisors

The calculation code does
u64 = (u32 - u32) * 100000;

The 64 bits are of no help here as the type is casted only after the
multiplication, and therefore the result may overflow, possibly causing
inoptimal or wrong clock setup in an unfortunate case (the maximum
result value of the first substraction is currently 47999).

Fix the code to cast before multiplication.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Acked-by: Nicolin Chen <Guangyu.Chen@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/fsl/fsl_spdif.c