summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward O'Callaghan <funfunctor@folklore1984.net>2017-04-17 18:42:57 +1000
committerEdward O'Callaghan <funfunctor@folklore1984.net>2017-04-17 18:42:57 +1000
commit2681b69072724850fd3cea64930a3e332764bf08 (patch)
treecd534d4abc9a4eadfb167db931193194a3be2788
parent88f62c5029234b0c319d8ff424bb2bef7dca6b3c (diff)
radeon: Precisely check byte count of link_status from dpcdamd-trivial-cleanup
Signed-off-by: Edward O'Callaghan <funfunctor@folklore1984.net>
-rw-r--r--drivers/gpu/drm/radeon/atombios_dp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c
index 432cb46f6a34..f926176a79cc 100644
--- a/drivers/gpu/drm/radeon/atombios_dp.c
+++ b/drivers/gpu/drm/radeon/atombios_dp.c
@@ -671,7 +671,7 @@ static int radeon_dp_link_train_cr(struct radeon_dp_link_train_info *dp_info)
{
bool clock_recovery;
u8 voltage;
- int i;
+ int i, rlen;
radeon_dp_set_tp(dp_info, DP_TRAINING_PATTERN_1);
memset(dp_info->train_set, 0, 4);
@@ -686,8 +686,8 @@ static int radeon_dp_link_train_cr(struct radeon_dp_link_train_info *dp_info)
while (1) {
drm_dp_link_train_clock_recovery_delay(dp_info->dpcd);
- if (drm_dp_dpcd_read_link_status(dp_info->aux,
- dp_info->link_status) <= 0) {
+ rlen = drm_dp_dpcd_read_link_status(dp_info->aux, dp_info->link_status);
+ if (rlen < DP_LINK_STATUS_SIZE) {
DRM_ERROR("displayport link status failed\n");
break;
}