edac: move nr_pages to dimm struct
[linux-2.6-microblaze.git] / drivers / edac / i3000_edac.c
index 8fe60ee..719ccbe 100644 (file)
@@ -306,7 +306,7 @@ static int i3000_probe1(struct pci_dev *pdev, int dev_idx)
        int rc;
        int i, j;
        struct mem_ctl_info *mci = NULL;
-       unsigned long last_cumul_size;
+       unsigned long last_cumul_size, nr_pages;
        int interleaved, nr_channels;
        unsigned char dra[I3000_RANKS / 2], drb[I3000_RANKS];
        unsigned char *c0dra = dra, *c1dra = &dra[I3000_RANKS_PER_CHANNEL / 2];
@@ -391,11 +391,13 @@ static int i3000_probe1(struct pci_dev *pdev, int dev_idx)
 
                csrow->first_page = last_cumul_size;
                csrow->last_page = cumul_size - 1;
-               csrow->nr_pages = cumul_size - last_cumul_size;
+               nr_pages = cumul_size - last_cumul_size;
                last_cumul_size = cumul_size;
 
                for (j = 0; j < nr_channels; j++) {
                        struct dimm_info *dimm = csrow->channels[j].dimm;
+
+                       dimm->nr_pages = nr_pages / nr_channels;
                        dimm->grain = I3000_DEAP_GRAIN;
                        dimm->mtype = MEM_DDR2;
                        dimm->dtype = DEV_UNKNOWN;