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:
commit
f3acb96f38
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue