Add MCE signatures for family 0x15, models 30-3f.

-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJR0UeRAAoJEBLB8Bhh3lVKp/oP/1Bn5wFlVNVQymyqjUv8PCui
 W7gro9vf67KSZrEvbvWYuBl3/Z7JI9e7MQMzWOtj1mx/li6G/mSHPWYsoK/g4MRD
 nuxr5EWmXoXvoJvaIPDf/ne9qeMZ88sTv1zQavCWEO+fCY95rUY5DzhJuw8kgjMX
 g++C1AZJFzRGHBF0/VswcBKU1cBaEIJ2h0UI6zJQDPWtTUL5VJcfZ+7CduHf07IA
 rMKqRLKLzBuuQ/aiE52bPQAHirbYbJ9d2jfNqpDRsdBFrOoOeqJbco7ac/itk9Lo
 4Qlh52HuF0rpi9Ub+QIchaQm4SZCFnBuw5liDgT9kp8cOO9KWS6JBNmYa2cEw54F
 LALbdp0XeHCYWoQskzVlTaZlAGADmr4f0C0o1e+XXJYfp8TFIR3ZoconyBKHulsh
 JbQDp1NNC1JzoyZyZW73Gzi4a1yLmf5tB7Y3+O6NMTDy+6RFck3oCwctcr3dRaP2
 pArQA0OCApDixcGfB0h1uX+H8zhVrUen+JcF3KfuXhTepS5koIRbMBglBiJYtSjN
 4RRaV1DWR3ii+gvSfWEaApzX2XxnLYA/6ZJSvicwoRHi6AcZPn5mcLDCXIyYU0p/
 jDGLPY1RU+EmIQlgXUr6CbtlpoCaQOZuyUgSAqQL0pPfCvaeUvX1M7Ly0GqXy5b5
 dKMw7cf7T37S2S9YUBJ/
 =KQCd
 -----END PGP SIGNATURE-----

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()
This commit is contained in:
Linus Torvalds 2013-07-03 13:11:18 -07:00
commit f3acb96f38
5 changed files with 16 additions and 15 deletions

View File

@ -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,
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,
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,
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,
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;

View File

@ -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);

View File

@ -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;
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,
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( \
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,
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;

View File

@ -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)
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;

View File

@ -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,
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;