[ Upstream commit 6ffd02b82243d9907b5f5d2c7a2fc6a62669eece ]
By using a regular non-overflow-checking add, the MediaTek icc-emi
driver will happy wrap at U32_MAX + 1 to 0. As it's common for the
interconnect core to fill in INT_MAX values, this is not a hypothetical
situation, but something that actually happens in regular use. This
would be pretty disasterous if anything used this driver.
Replace the addition with an overflow-checked addition from overflow.h,
and saturate to U32_MAX if an overflow is detected.
Fixes:
|
||
|---|---|---|
| .. | ||
| imx | ||
| mediatek | ||
| qcom | ||
| samsung | ||
| Kconfig | ||
| Makefile | ||
| bulk.c | ||
| core.c | ||
| debugfs-client.c | ||
| icc-clk.c | ||
| internal.h | ||
| trace.h | ||