Skip to content

Commit

Permalink
amd64_edac: fix K8 intlv_sel check
Browse files Browse the repository at this point in the history
The check when DRAM interleaving is enabled should be done against the
pvt->dram_IntlvSel field and not against the ->dram_limit.

Simplify first loop and fixup printk formatting while at it.

Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
  • Loading branch information
Borislav Petkov committed Oct 7, 2009
1 parent 72f158f commit 8edc544
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions drivers/edac/amd64_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -279,14 +279,11 @@ static struct mem_ctl_info *find_mc_by_sys_addr(struct mem_ctl_info *mci,
intlv_en = pvt->dram_IntlvEn[0];

if (intlv_en == 0) {
for (node_id = 0; ; ) {
for (node_id = 0; node_id < DRAM_REG_COUNT; node_id++) {
if (amd64_base_limit_match(pvt, sys_addr, node_id))
break;

if (++node_id >= DRAM_REG_COUNT)
goto err_no_match;
goto found;
}
goto found;
goto err_no_match;
}

if (unlikely((intlv_en != 0x01) &&
Expand All @@ -301,7 +298,7 @@ static struct mem_ctl_info *find_mc_by_sys_addr(struct mem_ctl_info *mci,
bits = (((u32) sys_addr) >> 12) & intlv_en;

for (node_id = 0; ; ) {
if ((pvt->dram_limit[node_id] & intlv_en) == bits)
if ((pvt->dram_IntlvSel[node_id] & intlv_en) == bits)
break; /* intlv_sel field matches */

if (++node_id >= DRAM_REG_COUNT)
Expand All @@ -311,10 +308,10 @@ static struct mem_ctl_info *find_mc_by_sys_addr(struct mem_ctl_info *mci,
/* sanity test for sys_addr */
if (unlikely(!amd64_base_limit_match(pvt, sys_addr, node_id))) {
amd64_printk(KERN_WARNING,
"%s(): sys_addr 0x%lx falls outside base/limit "
"address range for node %d with node interleaving "
"enabled.\n", __func__, (unsigned long)sys_addr,
node_id);
"%s(): sys_addr 0x%llx falls outside base/limit "
"address range for node %d with node interleaving "
"enabled.\n",
__func__, sys_addr, node_id);
return NULL;
}

Expand Down

0 comments on commit 8edc544

Please sign in to comment.