aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac/amd64_edac_inj.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/edac/amd64_edac_inj.c')
-rw-r--r--drivers/edac/amd64_edac_inj.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/edac/amd64_edac_inj.c b/drivers/edac/amd64_edac_inj.c
index 8977e2fa61da..8c171fa1cb9b 100644
--- a/drivers/edac/amd64_edac_inj.c
+++ b/drivers/edac/amd64_edac_inj.c
@@ -153,8 +153,8 @@ static ssize_t amd64_inject_write_store(struct device *dev,
153{ 153{
154 struct mem_ctl_info *mci = to_mci(dev); 154 struct mem_ctl_info *mci = to_mci(dev);
155 struct amd64_pvt *pvt = mci->pvt_info; 155 struct amd64_pvt *pvt = mci->pvt_info;
156 u32 section, word_bits, tmp;
156 unsigned long value; 157 unsigned long value;
157 u32 section, word_bits;
158 int ret; 158 int ret;
159 159
160 ret = strict_strtoul(data, 10, &value); 160 ret = strict_strtoul(data, 10, &value);
@@ -168,9 +168,25 @@ static ssize_t amd64_inject_write_store(struct device *dev,
168 168
169 word_bits = SET_NB_DRAM_INJECTION_WRITE(pvt->injection); 169 word_bits = SET_NB_DRAM_INJECTION_WRITE(pvt->injection);
170 170
171 pr_notice_once("Don't forget to decrease MCE polling interval in\n"
172 "/sys/bus/machinecheck/devices/machinecheck<CPUNUM>/check_interval\n"
173 "so that you can get the error report faster.\n");
174
175 on_each_cpu(disable_caches, NULL, 1);
176
171 /* Issue 'word' and 'bit' along with the READ request */ 177 /* Issue 'word' and 'bit' along with the READ request */
172 amd64_write_pci_cfg(pvt->F3, F10_NB_ARRAY_DATA, word_bits); 178 amd64_write_pci_cfg(pvt->F3, F10_NB_ARRAY_DATA, word_bits);
173 179
180 retry:
181 /* wait until injection happens */
182 amd64_read_pci_cfg(pvt->F3, F10_NB_ARRAY_DATA, &tmp);
183 if (tmp & F10_NB_ARR_ECC_WR_REQ) {
184 cpu_relax();
185 goto retry;
186 }
187
188 on_each_cpu(enable_caches, NULL, 1);
189
174 edac_dbg(0, "section=0x%x word_bits=0x%x\n", section, word_bits); 190 edac_dbg(0, "section=0x%x word_bits=0x%x\n", section, word_bits);
175 191
176 return count; 192 return count;