diff options
author | Colin Ian King <colin.king@canonical.com> | 2019-08-16 23:10:11 +0100 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2019-08-22 17:25:33 -0500 |
commit | a97567a06c1ab0e2736cca1515ee635dad888d37 (patch) | |
tree | 0ef4e8d6a3df1d9ed955dcbd5c01c308bacb28bf /drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c | |
parent | a13362c1c96d1450d59180631233844cb94a7907 (diff) | |
download | linux-a97567a06c1ab0e2736cca1515ee635dad888d37.tar.gz linux-a97567a06c1ab0e2736cca1515ee635dad888d37.tar.bz2 linux-a97567a06c1ab0e2736cca1515ee635dad888d37.zip |
drm/amd/display: fix a potential null pointer dereference
Currently the pointer init_data is dereferenced on the assignment
of fw_info before init_data is sanity checked to see if it is null.
Fix te potential null pointer dereference on init_data by only
performing dereference after it is null checked.
Addresses-Coverity: ("Dereference before null check")
Fixes: 9adc8050bf3c ("drm/amd/display: make firmware info only load once during dc_bios create")
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c')
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c b/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c index bee81bf288be..926954c804a6 100644 --- a/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c @@ -1235,7 +1235,7 @@ static bool calc_pll_max_vco_construct( struct calc_pll_clock_source_init_data *init_data) { uint32_t i; - struct dc_firmware_info *fw_info = &init_data->bp->fw_info; + struct dc_firmware_info *fw_info; if (calc_pll_cs == NULL || init_data == NULL || init_data->bp == NULL) @@ -1244,6 +1244,7 @@ static bool calc_pll_max_vco_construct( if (init_data->bp->fw_info_valid) return false; + fw_info = &init_data->bp->fw_info; calc_pll_cs->ctx = init_data->ctx; calc_pll_cs->ref_freq_khz = fw_info->pll_info.crystal_frequency; calc_pll_cs->min_vco_khz = |