diff options
Diffstat (limited to 'drivers/edac/e7xxx_edac.c')
-rw-r--r-- | drivers/edac/e7xxx_edac.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/edac/e7xxx_edac.c b/drivers/edac/e7xxx_edac.c index 5ed97f6eb346..709aca216639 100644 --- a/drivers/edac/e7xxx_edac.c +++ b/drivers/edac/e7xxx_edac.c | |||
@@ -349,7 +349,7 @@ static void e7xxx_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev, | |||
349 | unsigned long last_cumul_size; | 349 | unsigned long last_cumul_size; |
350 | int index, j; | 350 | int index, j; |
351 | u8 value; | 351 | u8 value; |
352 | u32 dra, cumul_size; | 352 | u32 dra, cumul_size, nr_pages; |
353 | int drc_chan, drc_drbg, drc_ddim, mem_dev; | 353 | int drc_chan, drc_drbg, drc_ddim, mem_dev; |
354 | struct csrow_info *csrow; | 354 | struct csrow_info *csrow; |
355 | struct dimm_info *dimm; | 355 | struct dimm_info *dimm; |
@@ -380,12 +380,13 @@ static void e7xxx_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev, | |||
380 | 380 | ||
381 | csrow->first_page = last_cumul_size; | 381 | csrow->first_page = last_cumul_size; |
382 | csrow->last_page = cumul_size - 1; | 382 | csrow->last_page = cumul_size - 1; |
383 | csrow->nr_pages = cumul_size - last_cumul_size; | 383 | nr_pages = cumul_size - last_cumul_size; |
384 | last_cumul_size = cumul_size; | 384 | last_cumul_size = cumul_size; |
385 | 385 | ||
386 | for (j = 0; j < drc_chan + 1; j++) { | 386 | for (j = 0; j < drc_chan + 1; j++) { |
387 | dimm = csrow->channels[j].dimm; | 387 | dimm = csrow->channels[j].dimm; |
388 | 388 | ||
389 | dimm->nr_pages = nr_pages / (drc_chan + 1); | ||
389 | dimm->grain = 1 << 12; /* 4KiB - resolution of CELOG */ | 390 | dimm->grain = 1 << 12; /* 4KiB - resolution of CELOG */ |
390 | dimm->mtype = MEM_RDDR; /* only one type supported */ | 391 | dimm->mtype = MEM_RDDR; /* only one type supported */ |
391 | dimm->dtype = mem_dev ? DEV_X4 : DEV_X8; | 392 | dimm->dtype = mem_dev ? DEV_X4 : DEV_X8; |