diff options
-rw-r--r-- | drivers/edac/i5100_edac.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/edac/i5100_edac.c b/drivers/edac/i5100_edac.c index ab2f90619821..2a6e7ff1f020 100644 --- a/drivers/edac/i5100_edac.c +++ b/drivers/edac/i5100_edac.c | |||
@@ -535,23 +535,20 @@ static void i5100_read_log(struct mem_ctl_info *mci, int chan, | |||
535 | static void i5100_check_error(struct mem_ctl_info *mci) | 535 | static void i5100_check_error(struct mem_ctl_info *mci) |
536 | { | 536 | { |
537 | struct i5100_priv *priv = mci->pvt_info; | 537 | struct i5100_priv *priv = mci->pvt_info; |
538 | u32 dw; | 538 | u32 dw, dw2; |
539 | |||
540 | 539 | ||
541 | pci_read_config_dword(priv->mc, I5100_FERR_NF_MEM, &dw); | 540 | pci_read_config_dword(priv->mc, I5100_FERR_NF_MEM, &dw); |
542 | if (i5100_ferr_nf_mem_any(dw)) { | 541 | if (i5100_ferr_nf_mem_any(dw)) { |
543 | u32 dw2; | ||
544 | 542 | ||
545 | pci_read_config_dword(priv->mc, I5100_NERR_NF_MEM, &dw2); | 543 | pci_read_config_dword(priv->mc, I5100_NERR_NF_MEM, &dw2); |
546 | if (dw2) | ||
547 | pci_write_config_dword(priv->mc, I5100_NERR_NF_MEM, | ||
548 | dw2); | ||
549 | pci_write_config_dword(priv->mc, I5100_FERR_NF_MEM, dw); | ||
550 | 544 | ||
551 | i5100_read_log(mci, i5100_ferr_nf_mem_chan_indx(dw), | 545 | i5100_read_log(mci, i5100_ferr_nf_mem_chan_indx(dw), |
552 | i5100_ferr_nf_mem_any(dw), | 546 | i5100_ferr_nf_mem_any(dw), |
553 | i5100_nerr_nf_mem_any(dw2)); | 547 | i5100_nerr_nf_mem_any(dw2)); |
548 | |||
549 | pci_write_config_dword(priv->mc, I5100_NERR_NF_MEM, dw2); | ||
554 | } | 550 | } |
551 | pci_write_config_dword(priv->mc, I5100_FERR_NF_MEM, dw); | ||
555 | } | 552 | } |
556 | 553 | ||
557 | /* The i5100 chipset will scrub the entire memory once, then | 554 | /* The i5100 chipset will scrub the entire memory once, then |