summaryrefslogtreecommitdiffstats
path: root/drivers/edac/i7core_edac.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-07-15 09:02:32 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-05-10 11:44:52 -0300
commitba6c5c62eeb877da638e43f1282f778432142eec (patch)
tree227ff1f2c04469b6b995eafedb6e4ea6b01fc584 /drivers/edac/i7core_edac.c
parent67166af4abc11d9c0deb497ebe0b562f69c71942 (diff)
downloadop-kernel-dev-ba6c5c62eeb877da638e43f1282f778432142eec.zip
op-kernel-dev-ba6c5c62eeb877da638e43f1282f778432142eec.tar.gz
i7core_edac: maps all sockets as if ther are one MC controller
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/edac/i7core_edac.c')
-rw-r--r--drivers/edac/i7core_edac.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c
index 69eacc1..a93ebdf 100644
--- a/drivers/edac/i7core_edac.c
+++ b/drivers/edac/i7core_edac.c
@@ -409,12 +409,12 @@ static int i7core_get_active_channels(u8 socket, unsigned *channels,
return 0;
}
-static int get_dimm_config(struct mem_ctl_info *mci, u8 socket)
+static int get_dimm_config(struct mem_ctl_info *mci, int *csrow, u8 socket)
{
struct i7core_pvt *pvt = mci->pvt_info;
struct csrow_info *csr;
struct pci_dev *pdev;
- int i, j, csrow = 0;
+ int i, j;
unsigned long last_page = 0;
enum edac_type mode;
enum mem_type mtype;
@@ -534,7 +534,7 @@ static int get_dimm_config(struct mem_ctl_info *mci, u8 socket)
npages = size << (20 - PAGE_SHIFT);
#endif
- csr = &mci->csrows[csrow];
+ csr = &mci->csrows[*csrow];
csr->first_page = last_page + 1;
last_page += npages;
csr->last_page = last_page;
@@ -542,7 +542,7 @@ static int get_dimm_config(struct mem_ctl_info *mci, u8 socket)
csr->page_mask = 0;
csr->grain = 8;
- csr->csrow_idx = csrow;
+ csr->csrow_idx = *csrow;
csr->nr_channels = 1;
csr->channels[0].chan_idx = i;
@@ -565,7 +565,7 @@ static int get_dimm_config(struct mem_ctl_info *mci, u8 socket)
csr->edac_mode = mode;
csr->mtype = mtype;
- csrow++;
+ (*csrow)++;
}
pci_read_config_dword(pdev, MC_SAG_CH_0, &value[0]);
@@ -1424,6 +1424,7 @@ static int __devinit i7core_probe(struct pci_dev *pdev,
struct i7core_pvt *pvt;
int num_channels = 0;
int num_csrows = 0;
+ int csrow = 0;
int dev_idx = id->driver_data;
int rc, i;
u8 sockets;
@@ -1495,7 +1496,7 @@ static int __devinit i7core_probe(struct pci_dev *pdev,
/* Get dimm basic config */
for (i = 0; i < sockets; i++)
- get_dimm_config(mci, i);
+ get_dimm_config(mci, &csrow, i);
/* add this new MC control structure to EDAC's list of MCs */
if (unlikely(edac_mc_add_mc(mci))) {
OpenPOWER on IntegriCloud