edac/cell: Fix incorrect edac_mode in csrow causing oops

Submitted by Benjamin Herrenschmidt on Oct. 15, 2008, 4:40 a.m.

Details

Message ID 20081015044057.584D6DDDFB@ozlabs.org
State Accepted, archived
Commit 3b274f44d2ca05f719fe39947b6a5293a2dbd8fd
Headers show

Commit Message

Benjamin Herrenschmidt Oct. 15, 2008, 4:40 a.m.
The cell_edac driver is setting the edac_mode field of the
csrow's to an incorrect value, causing the sysfs show routine
for that field to go out of an array bound and Oopsing the kernel
when used.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

 drivers/edac/cell_edac.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch hide | download patch | download mbox

--- linux-work.orig/drivers/edac/cell_edac.c	2008-10-15 15:35:21.000000000 +1100
+++ linux-work/drivers/edac/cell_edac.c	2008-10-15 15:35:29.000000000 +1100
@@ -142,7 +142,7 @@  static void __devinit cell_edac_init_csr
 		csrow->nr_pages = (r.end - r.start + 1) >> PAGE_SHIFT;
 		csrow->last_page = csrow->first_page + csrow->nr_pages - 1;
 		csrow->mtype = MEM_XDR;
-		csrow->edac_mode = EDAC_FLAG_EC | EDAC_FLAG_SECDED;
+		csrow->edac_mode = EDAC_SECDED;
 		dev_dbg(mci->dev,
 			"Initialized on node %d, chanmask=0x%x,"
 			" first_page=0x%lx, nr_pages=0x%x\n",