Commit f3acb96f authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'edac_for_3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp

Pull AMD EDAC update from Borislav Petkov:
 "Add MCE signatures for family 0x15, models 30-3f"

* tag 'edac_for_3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
  EDAC, MCE, AMD: Add an MCE signature for new Fam15h models
  EDAC: Replace strict_strtoul() with kstrtoul()
parents baa6f820 aad19e51
...@@ -24,7 +24,7 @@ static ssize_t amd64_inject_section_store(struct device *dev, ...@@ -24,7 +24,7 @@ static ssize_t amd64_inject_section_store(struct device *dev,
unsigned long value; unsigned long value;
int ret; int ret;
ret = strict_strtoul(data, 10, &value); ret = kstrtoul(data, 10, &value);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -61,7 +61,7 @@ static ssize_t amd64_inject_word_store(struct device *dev, ...@@ -61,7 +61,7 @@ static ssize_t amd64_inject_word_store(struct device *dev,
unsigned long value; unsigned long value;
int ret; int ret;
ret = strict_strtoul(data, 10, &value); ret = kstrtoul(data, 10, &value);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -97,7 +97,7 @@ static ssize_t amd64_inject_ecc_vector_store(struct device *dev, ...@@ -97,7 +97,7 @@ static ssize_t amd64_inject_ecc_vector_store(struct device *dev,
unsigned long value; unsigned long value;
int ret; int ret;
ret = strict_strtoul(data, 16, &value); ret = kstrtoul(data, 16, &value);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -124,7 +124,7 @@ static ssize_t amd64_inject_read_store(struct device *dev, ...@@ -124,7 +124,7 @@ static ssize_t amd64_inject_read_store(struct device *dev,
u32 section, word_bits; u32 section, word_bits;
int ret; int ret;
ret = strict_strtoul(data, 10, &value); ret = kstrtoul(data, 10, &value);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -157,7 +157,7 @@ static ssize_t amd64_inject_write_store(struct device *dev, ...@@ -157,7 +157,7 @@ static ssize_t amd64_inject_write_store(struct device *dev,
unsigned long value; unsigned long value;
int ret; int ret;
ret = strict_strtoul(data, 10, &value); ret = kstrtoul(data, 10, &value);
if (ret < 0) if (ret < 0)
return ret; return ret;
......
...@@ -678,7 +678,7 @@ static ssize_t mci_sdram_scrub_rate_store(struct device *dev, ...@@ -678,7 +678,7 @@ static ssize_t mci_sdram_scrub_rate_store(struct device *dev,
unsigned long bandwidth = 0; unsigned long bandwidth = 0;
int new_bw = 0; int new_bw = 0;
if (strict_strtoul(data, 10, &bandwidth) < 0) if (kstrtoul(data, 10, &bandwidth) < 0)
return -EINVAL; return -EINVAL;
new_bw = mci->set_sdram_scrub_rate(mci, bandwidth); new_bw = mci->set_sdram_scrub_rate(mci, bandwidth);
......
...@@ -704,7 +704,7 @@ static ssize_t i7core_inject_section_store(struct device *dev, ...@@ -704,7 +704,7 @@ static ssize_t i7core_inject_section_store(struct device *dev,
if (pvt->inject.enable) if (pvt->inject.enable)
disable_inject(mci); disable_inject(mci);
rc = strict_strtoul(data, 10, &value); rc = kstrtoul(data, 10, &value);
if ((rc < 0) || (value > 3)) if ((rc < 0) || (value > 3))
return -EIO; return -EIO;
...@@ -741,7 +741,7 @@ struct i7core_pvt *pvt = mci->pvt_info; ...@@ -741,7 +741,7 @@ struct i7core_pvt *pvt = mci->pvt_info;
if (pvt->inject.enable) if (pvt->inject.enable)
disable_inject(mci); disable_inject(mci);
rc = strict_strtoul(data, 10, &value); rc = kstrtoul(data, 10, &value);
if ((rc < 0) || (value > 7)) if ((rc < 0) || (value > 7))
return -EIO; return -EIO;
...@@ -781,7 +781,7 @@ static ssize_t i7core_inject_eccmask_store(struct device *dev, ...@@ -781,7 +781,7 @@ static ssize_t i7core_inject_eccmask_store(struct device *dev,
if (pvt->inject.enable) if (pvt->inject.enable)
disable_inject(mci); disable_inject(mci);
rc = strict_strtoul(data, 10, &value); rc = kstrtoul(data, 10, &value);
if (rc < 0) if (rc < 0)
return -EIO; return -EIO;
...@@ -830,7 +830,7 @@ static ssize_t i7core_inject_store_##param( \ ...@@ -830,7 +830,7 @@ static ssize_t i7core_inject_store_##param( \
if (!strcasecmp(data, "any") || !strcasecmp(data, "any\n"))\ if (!strcasecmp(data, "any") || !strcasecmp(data, "any\n"))\
value = -1; \ value = -1; \
else { \ else { \
rc = strict_strtoul(data, 10, &value); \ rc = kstrtoul(data, 10, &value); \
if ((rc < 0) || (value >= limit)) \ if ((rc < 0) || (value >= limit)) \
return -EIO; \ return -EIO; \
} \ } \
...@@ -934,7 +934,7 @@ static ssize_t i7core_inject_enable_store(struct device *dev, ...@@ -934,7 +934,7 @@ static ssize_t i7core_inject_enable_store(struct device *dev,
if (!pvt->pci_ch[pvt->inject.channel][0]) if (!pvt->pci_ch[pvt->inject.channel][0])
return 0; return 0;
rc = strict_strtoul(data, 10, &enable); rc = kstrtoul(data, 10, &enable);
if ((rc < 0)) if ((rc < 0))
return 0; return 0;
......
...@@ -134,7 +134,8 @@ static const char * const mc5_mce_desc[] = { ...@@ -134,7 +134,8 @@ static const char * const mc5_mce_desc[] = {
"Physical register file AG0 port", "Physical register file AG0 port",
"Physical register file AG1 port", "Physical register file AG1 port",
"Flag register file", "Flag register file",
"DE error occurred" "DE error occurred",
"Retire status queue"
}; };
static bool f12h_mc0_mce(u16 ec, u8 xec) static bool f12h_mc0_mce(u16 ec, u8 xec)
...@@ -624,7 +625,7 @@ static void decode_mc5_mce(struct mce *m) ...@@ -624,7 +625,7 @@ static void decode_mc5_mce(struct mce *m)
if (xec == 0x0 || xec == 0xc) if (xec == 0x0 || xec == 0xc)
pr_cont("%s.\n", mc5_mce_desc[xec]); pr_cont("%s.\n", mc5_mce_desc[xec]);
else if (xec < 0xd) else if (xec <= 0xd)
pr_cont("%s parity error.\n", mc5_mce_desc[xec]); pr_cont("%s parity error.\n", mc5_mce_desc[xec]);
else else
goto wrong_mc5_mce; goto wrong_mc5_mce;
......
...@@ -43,7 +43,7 @@ static ssize_t edac_inject_##reg##_store(struct kobject *kobj, \ ...@@ -43,7 +43,7 @@ static ssize_t edac_inject_##reg##_store(struct kobject *kobj, \
int ret = 0; \ int ret = 0; \
unsigned long value; \ unsigned long value; \
\ \
ret = strict_strtoul(data, 16, &value); \ ret = kstrtoul(data, 16, &value); \
if (ret < 0) \ if (ret < 0) \
printk(KERN_ERR "Error writing MCE " #reg " field.\n"); \ printk(KERN_ERR "Error writing MCE " #reg " field.\n"); \
\ \
...@@ -83,7 +83,7 @@ static ssize_t edac_inject_bank_store(struct kobject *kobj, ...@@ -83,7 +83,7 @@ static ssize_t edac_inject_bank_store(struct kobject *kobj,
int ret = 0; int ret = 0;
unsigned long value; unsigned long value;
ret = strict_strtoul(data, 10, &value); ret = kstrtoul(data, 10, &value);
if (ret < 0) { if (ret < 0) {
printk(KERN_ERR "Invalid bank value!\n"); printk(KERN_ERR "Invalid bank value!\n");
return -EINVAL; return -EINVAL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment