diff options
Diffstat (limited to 'drivers/edac/cell_edac.c')
-rw-r--r-- | drivers/edac/cell_edac.c | 8 |
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 | } |