An amd64_edac fix for single channel configurations + trivial cleanups
courtesy of Jingoo Han. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (GNU/Linux) iQIcBAABAgAGBQJSC6mSAAoJEBLB8Bhh3lVKhKYQALt3lklah1BpZIqyTiLqtizN YVF/lSubpcHB2BfnZUzaSInE+17uo21DJ44tQ56O0lWDsxLqadJzTDiJ2BG5Ol3u JOIWti/Yl8YoCQQcir6QksBAUkR26iCpelO8kO6J/JWGEekVgl3Oik4NOmYrdN55 rUoHIyVdK5Z5y4j79Pmth7//+c6OFli1cAeUmBlIvxS9T4T2ZCz30jBim76VTS8H AjgaX/aBlE3SxAYoMWLZh1VglukxAVCG2qZ9lm7iNLCpkGwP59jT/DE9Gok2IXBg id9SMTkrpitijCyM3oKYox14Tl+QP/brElnWCVyVeRIpkVH8s2WUkU+qHeZztBg9 8i/aU9x4bOCkDjhvBjIM4jbYJAvvaVKlIXPvANO8xl/A0D7nCsmCs7DpritRHZEr 3y4N8SQsaamVD083+UaVciAo1XCpl5cNq9gH/Y7+U8h2bIThZn8HTbZ1uWgXaCY1 OwfElbJDKInsSmDVBEklMI8CF42YsjGQc2JC+A/3M3CapTfepKPg6SvptNQueZb+ SUw0mgGBumpdDQSHo5tPf5JL1y57ERkdOBVryrqYtr6qdjw3ox9o/+B8eTy3gkg1 b71LEhzG2UbdSVaHiYhRE/IR3W3yKzNX8Oh3BTHfp04jqnNijx4hHu9oX7j3W59M P/bd6GHHI5ZY66aLqCue =r2kL -----END PGP SIGNATURE----- Merge tag 'edac_for_3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp into x86/ras Pull RAS/EDAC updates from Boris Petkov: "An amd64_edac fix for single channel configurations + trivial cleanups courtesy of Jingoo Han." Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
commit
c874b6ba55
|
@ -2642,8 +2642,15 @@ static int amd64_init_one_instance(struct pci_dev *F2)
|
||||||
layers[0].size = pvt->csels[0].b_cnt;
|
layers[0].size = pvt->csels[0].b_cnt;
|
||||||
layers[0].is_virt_csrow = true;
|
layers[0].is_virt_csrow = true;
|
||||||
layers[1].type = EDAC_MC_LAYER_CHANNEL;
|
layers[1].type = EDAC_MC_LAYER_CHANNEL;
|
||||||
layers[1].size = pvt->channel_count;
|
|
||||||
|
/*
|
||||||
|
* Always allocate two channels since we can have setups with DIMMs on
|
||||||
|
* only one channel. Also, this simplifies handling later for the price
|
||||||
|
* of a couple of KBs tops.
|
||||||
|
*/
|
||||||
|
layers[1].size = 2;
|
||||||
layers[1].is_virt_csrow = false;
|
layers[1].is_virt_csrow = false;
|
||||||
|
|
||||||
mci = edac_mc_alloc(nid, ARRAY_SIZE(layers), layers, 0);
|
mci = edac_mc_alloc(nid, ARRAY_SIZE(layers), layers, 0);
|
||||||
if (!mci)
|
if (!mci)
|
||||||
goto err_siblings;
|
goto err_siblings;
|
||||||
|
|
|
@ -789,7 +789,7 @@ static struct cpc925_dev_info cpc925_devs[] = {
|
||||||
.exit = cpc925_htlink_exit,
|
.exit = cpc925_htlink_exit,
|
||||||
.check = cpc925_htlink_check,
|
.check = cpc925_htlink_check,
|
||||||
},
|
},
|
||||||
{0}, /* Terminated by NULL */
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -58,8 +58,10 @@ static int edac_set_poll_msec(const char *val, struct kernel_param *kp)
|
||||||
if (!val)
|
if (!val)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
ret = strict_strtol(val, 0, &l);
|
ret = kstrtol(val, 0, &l);
|
||||||
if (ret == -EINVAL || ((int)l != l))
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
if ((int)l != l)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
*((int *)kp->arg) = l;
|
*((int *)kp->arg) = l;
|
||||||
|
|
||||||
|
|
|
@ -260,8 +260,7 @@ static void i3200_check(struct mem_ctl_info *mci)
|
||||||
i3200_process_error_info(mci, &info);
|
i3200_process_error_info(mci, &info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void __iomem *i3200_map_mchbar(struct pci_dev *pdev)
|
||||||
void __iomem *i3200_map_mchbar(struct pci_dev *pdev)
|
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
u64 mchbar;
|
u64 mchbar;
|
||||||
|
|
|
@ -248,8 +248,7 @@ static void x38_check(struct mem_ctl_info *mci)
|
||||||
x38_process_error_info(mci, &info);
|
x38_process_error_info(mci, &info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void __iomem *x38_map_mchbar(struct pci_dev *pdev)
|
||||||
void __iomem *x38_map_mchbar(struct pci_dev *pdev)
|
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
u64 mchbar;
|
u64 mchbar;
|
||||||
|
|
Loading…
Reference in New Issue