From 51a260028a8936b1c972b7211274d67268cea17e Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Mon, 9 Jan 2017 14:27:09 -0600 Subject: [PATCH] UPSTREAM: amd/mct/ddr3: Rework memory speed to clock value conversion logic The existing DRAM clock speed to configuration value logic contained an error resulting in a theoretical out of bounds read. While this would not be hit on real hardware, it was prudent to clean up the logic to avoid the associated Coverity warning. BUG=none BRANCH=none TEST=none Change-Id: I57792539445f2026f5c88445ebce1e0ae026c60a Signed-off-by: Patrick Georgi Original-Commit-Id: 6f9468f019239af70c20de9fca411fc76a00db1b Original-Found-by: Coverity Scan #1347353 Original-Change-Id: Ic3de3074f51d52be112a2d6f2d68e35dc881dd2e Original-Signed-off-by: Timothy Pearson Original-Reviewed-on: https://review.coreboot.org/18073 Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Martin Roth Original-Tested-by: Raptor Engineering Automated Test Stand Original-Reviewed-by: Paul Menzel Reviewed-on: https://chromium-review.googlesource.com/428245 Commit-Ready: Aaron Durbin --- src/northbridge/amd/amdmct/mct_ddr3/mct_d.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c b/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c index 7b9fa6555a..f726345f00 100644 --- a/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c +++ b/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c @@ -256,11 +256,11 @@ static uint16_t fam15h_mhz_to_memclk_config(uint16_t freq) /* Compute the index value for the given frequency */ for (iter = 0; iter <= 0x16; iter++) { - if (fam15h_freq_tab[iter] == freq) + if (fam15h_freq_tab[iter] == freq) { + freq = iter; break; + } } - if (fam15h_freq_tab[iter] == freq) - freq = iter; if (freq == 0) freq = 0x4; @@ -274,11 +274,11 @@ static uint16_t fam10h_mhz_to_memclk_config(uint16_t freq) /* Compute the index value for the given frequency */ for (iter = 0; iter <= 0x6; iter++) { - if (fam10h_freq_tab[iter] == freq) + if (fam10h_freq_tab[iter] == freq) { + freq = iter; break; + } } - if (fam10h_freq_tab[iter] == freq) - freq = iter; if (freq == 0) freq = 0x3;