From 5939813b9c4270d0f46375c3cad64226bb1fcd62 Mon Sep 17 00:00:00 2001 From: Hidetoshi Seto Date: Fri, 20 Aug 2010 04:28:25 -0300 Subject: [PATCH] i7core_edac: Fix order of lines in i7core_register_mci The flag is_registered is not initialized until mci_bind_devs() is called. Refer it properly. The mci->dev and mci->edac_check is required in edac_mc_add_mc(), so prepare them just before the call. Signed-off-by: Hidetoshi Seto Signed-off-by: Mauro Carvalho Chehab --- drivers/edac/i7core_edac.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c index 19faeff..6bebf4d 100644 --- a/drivers/edac/i7core_edac.c +++ b/drivers/edac/i7core_edac.c @@ -1933,9 +1933,6 @@ static int i7core_register_mci(struct i7core_dev *i7core_dev, debugf0("MC: " __FILE__ ": %s(): mci = %p, dev = %p\n", __func__, mci, &i7core_dev->pdev[0]->dev); - /* record ptr to the generic device */ - mci->dev = &i7core_dev->pdev[0]->dev; - pvt = mci->pvt_info; memset(pvt, 0, sizeof(*pvt)); @@ -1954,21 +1951,22 @@ static int i7core_register_mci(struct i7core_dev *i7core_dev, mci->dev_name = pci_name(i7core_dev->pdev[0]); mci->ctl_page_to_phys = NULL; - if (pvt->is_registered) - mci->mc_driver_sysfs_attributes = i7core_sysfs_rdimm_attrs; - else - mci->mc_driver_sysfs_attributes = i7core_sysfs_udimm_attrs; - - /* Set the function pointer to an actual operation function */ - mci->edac_check = i7core_check_error; - /* Store pci devices at mci for faster access */ rc = mci_bind_devs(mci, i7core_dev); if (unlikely(rc < 0)) goto fail; + if (pvt->is_registered) + mci->mc_driver_sysfs_attributes = i7core_sysfs_rdimm_attrs; + else + mci->mc_driver_sysfs_attributes = i7core_sysfs_udimm_attrs; + /* Get dimm basic config */ get_dimm_config(mci, &csrow); + /* record ptr to the generic device */ + mci->dev = &i7core_dev->pdev[0]->dev; + /* Set the function pointer to an actual operation function */ + mci->edac_check = i7core_check_error; /* add this new MC control structure to EDAC's list of MCs */ if (unlikely(edac_mc_add_mc(mci))) { -- 2.7.4