diff options
Diffstat (limited to 'drivers/edac/cpc925_edac.c')
-rw-r--r-- | drivers/edac/cpc925_edac.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/edac/cpc925_edac.c b/drivers/edac/cpc925_edac.c index ee90f3da8f3a..7b764a882dae 100644 --- a/drivers/edac/cpc925_edac.c +++ b/drivers/edac/cpc925_edac.c | |||
@@ -332,7 +332,7 @@ static void cpc925_init_csrows(struct mem_ctl_info *mci) | |||
332 | struct dimm_info *dimm; | 332 | struct dimm_info *dimm; |
333 | int index, j; | 333 | int index, j; |
334 | u32 mbmr, mbbar, bba; | 334 | u32 mbmr, mbbar, bba; |
335 | unsigned long row_size, last_nr_pages = 0; | 335 | unsigned long row_size, nr_pages, last_nr_pages = 0; |
336 | 336 | ||
337 | get_total_mem(pdata); | 337 | get_total_mem(pdata); |
338 | 338 | ||
@@ -351,12 +351,14 @@ static void cpc925_init_csrows(struct mem_ctl_info *mci) | |||
351 | 351 | ||
352 | row_size = bba * (1UL << 28); /* 256M */ | 352 | row_size = bba * (1UL << 28); /* 256M */ |
353 | csrow->first_page = last_nr_pages; | 353 | csrow->first_page = last_nr_pages; |
354 | csrow->nr_pages = row_size >> PAGE_SHIFT; | 354 | nr_pages = row_size >> PAGE_SHIFT; |
355 | csrow->last_page = csrow->first_page + csrow->nr_pages - 1; | 355 | csrow->last_page = csrow->first_page + nr_pages - 1; |
356 | last_nr_pages = csrow->last_page + 1; | 356 | last_nr_pages = csrow->last_page + 1; |
357 | 357 | ||
358 | for (j = 0; j < csrow->nr_channels; j++) { | 358 | for (j = 0; j < csrow->nr_channels; j++) { |
359 | dimm = csrow->channels[j].dimm; | 359 | dimm = csrow->channels[j].dimm; |
360 | |||
361 | dimm->nr_pages = nr_pages / csrow->nr_channels; | ||
360 | dimm->mtype = MEM_RDDR; | 362 | dimm->mtype = MEM_RDDR; |
361 | dimm->edac_mode = EDAC_SECDED; | 363 | dimm->edac_mode = EDAC_SECDED; |
362 | 364 | ||