diff options
author | Simon Glass <sjg@chromium.org> | 2017-05-31 17:57:22 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2017-06-09 13:39:33 -0600 |
commit | 1c6c7b6bd8961373a506cf7908e9fe61f6042341 (patch) | |
tree | 0b995b7d280d8c5ff7f27e36cccef94aee03b9e2 /arch/arm/mach-tegra/clock.c | |
parent | 06cc85a29abfd0f022c51175912adff790aa2434 (diff) | |
download | u-boot-1c6c7b6bd8961373a506cf7908e9fe61f6042341.zip u-boot-1c6c7b6bd8961373a506cf7908e9fe61f6042341.tar.gz u-boot-1c6c7b6bd8961373a506cf7908e9fe61f6042341.tar.bz2 |
tegra: clock: Avoid a divide-by-zero error
The clock fix-up for tegra is still present in the code. It causes a
divide-by-zero bug after relocation when chain-loading U-Boot from
coreboot. Fix this by adding a check.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 7468676 (ARM: tegra: fix clock_get_periph_rate() for UART clocks)
Diffstat (limited to 'arch/arm/mach-tegra/clock.c')
-rw-r--r-- | arch/arm/mach-tegra/clock.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/clock.c b/arch/arm/mach-tegra/clock.c index 76436d8..bac4211 100644 --- a/arch/arm/mach-tegra/clock.c +++ b/arch/arm/mach-tegra/clock.c @@ -339,8 +339,11 @@ unsigned long clock_get_periph_rate(enum periph_id periph_id, * return value doesn't help. In summary this clock driver is * quite broken but I'm afraid I have no idea how to fix it * without completely replacing it. + * + * Be careful to avoid a divide by zero error. */ - div -= 2; + if (div >= 1) + div -= 2; break; #endif default: |