• Darren Powell's avatar
    amdgpu/pm: Fix possible array out-of-bounds if SCLK levels != 2 · ceb18036
    Darren Powell authored
     [v2]
    simplified fix after Lijo's feedback
     removed clocks.num_levels from calculation of loop count
       removed unsafe accesses to shim table freq_values
     retained corner case output only min,now if
       clocks.num_levels == 1 && now > min
    
     [v1]
    added a check to populate and use SCLK shim table freq_values only
       if using dpm_level == AMD_DPM_FORCED_LEVEL_MANUAL or
                             AMD_DPM_FORCED_LEVEL_PERF_DETERMINISM
    removed clocks.num_levels from calculation of shim table size
    removed unsafe accesses to shim table freq_values
       output gfx_table values if using other dpm levels
    added check for freq_match when using freq_values for when now == min_clk
    
    == Test ==
    LOGFILE=aldebaran-sclk.test.log
    AMDGPU_PCI_ADDR=`lspci -nn | grep "VGA\|Display" | cut -d " " -f 1`
    AMDGPU_HWMON=`ls -la /sys/class/hwmon | grep $AMDGPU_PCI_ADDR | awk '{print $9}'`
    HWMON_DIR=/sys/class/hwmon/${AMDGPU_HWMON}
    
    lspci -nn | grep "VGA\|Display"  > $LOGFILE
    FILES="pp_od_clk_voltage
    pp_dpm_sclk"
    
    for f in $FILES
    do
      echo === $f === >> $LOGFILE
      cat $HWMON_DIR/device/$f >> $LOGFILE
    done
    cat $LOGFILE
    Signed-off-by: default avatarDarren Powell <darren.powell@amd.com>
    Reviewed-by: default avatarKenneth Feng <kenneth.feng@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    ceb18036
aldebaran_ppt.c 64.3 KB