mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
drm/radeon/kms: add bounds checking to avivo pll algo
Prevent divider overflow. Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=28932 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
bd91572e77
commit
a4b40d5d97
1 changed files with 10 additions and 0 deletions
|
@ -793,6 +793,11 @@ static void avivo_get_fb_div(struct radeon_pll *pll,
|
|||
tmp *= target_clock;
|
||||
*fb_div = tmp / pll->reference_freq;
|
||||
*frac_fb_div = tmp % pll->reference_freq;
|
||||
|
||||
if (*fb_div > pll->max_feedback_div)
|
||||
*fb_div = pll->max_feedback_div;
|
||||
else if (*fb_div < pll->min_feedback_div)
|
||||
*fb_div = pll->min_feedback_div;
|
||||
}
|
||||
|
||||
static u32 avivo_get_post_div(struct radeon_pll *pll,
|
||||
|
@ -826,6 +831,11 @@ static u32 avivo_get_post_div(struct radeon_pll *pll,
|
|||
post_div--;
|
||||
}
|
||||
|
||||
if (post_div > pll->max_post_div)
|
||||
post_div = pll->max_post_div;
|
||||
else if (post_div < pll->min_post_div)
|
||||
post_div = pll->min_post_div;
|
||||
|
||||
return post_div;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue