aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac/cell_edac.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/edac/cell_edac.c')
-rw-r--r--drivers/edac/cell_edac.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/edac/cell_edac.c b/drivers/edac/cell_edac.c
index 94fbb127215a..09e1b5d3df70 100644
--- a/drivers/edac/cell_edac.c
+++ b/drivers/edac/cell_edac.c
@@ -128,6 +128,7 @@ static void __devinit cell_edac_init_csrows(struct mem_ctl_info *mci)
128 struct cell_edac_priv *priv = mci->pvt_info; 128 struct cell_edac_priv *priv = mci->pvt_info;
129 struct device_node *np; 129 struct device_node *np;
130 int j; 130 int j;
131 u32 nr_pages;
131 132
132 for (np = NULL; 133 for (np = NULL;
133 (np = of_find_node_by_name(np, "memory")) != NULL;) { 134 (np = of_find_node_by_name(np, "memory")) != NULL;) {
@@ -142,19 +143,20 @@ static void __devinit cell_edac_init_csrows(struct mem_ctl_info *mci)
142 if (of_node_to_nid(np) != priv->node) 143 if (of_node_to_nid(np) != priv->node)
143 continue; 144 continue;
144 csrow->first_page = r.start >> PAGE_SHIFT; 145 csrow->first_page = r.start >> PAGE_SHIFT;
145 csrow->nr_pages = resource_size(&r) >> PAGE_SHIFT; 146 nr_pages = resource_size(&r) >> PAGE_SHIFT;
146 csrow->last_page = csrow->first_page + csrow->nr_pages - 1; 147 csrow->last_page = csrow->first_page + nr_pages - 1;
147 148
148 for (j = 0; j < csrow->nr_channels; j++) { 149 for (j = 0; j < csrow->nr_channels; j++) {
149 dimm = csrow->channels[j].dimm; 150 dimm = csrow->channels[j].dimm;
150 dimm->mtype = MEM_XDR; 151 dimm->mtype = MEM_XDR;
151 dimm->edac_mode = EDAC_SECDED; 152 dimm->edac_mode = EDAC_SECDED;
153 dimm->nr_pages = nr_pages / csrow->nr_channels;
152 } 154 }
153 dev_dbg(mci->dev, 155 dev_dbg(mci->dev,
154 "Initialized on node %d, chanmask=0x%x," 156 "Initialized on node %d, chanmask=0x%x,"
155 " first_page=0x%lx, nr_pages=0x%x\n", 157 " first_page=0x%lx, nr_pages=0x%x\n",
156 priv->node, priv->chanmask, 158 priv->node, priv->chanmask,
157 csrow->first_page, csrow->nr_pages); 159 csrow->first_page, dimm->nr_pages);
158 break; 160 break;
159 } 161 }
160} 162}