aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac/cpc925_edac.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2012-04-24 14:05:43 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-06-11 12:23:45 -0400
commitde3910eb79ac8c0f29a11224661c0ebaaf813039 (patch)
tree44584d6691588b2c18823260be0e44f0c9872d02 /drivers/edac/cpc925_edac.c
parente39f4ea9b01f137f9e6fa631f3e9088fb9175e91 (diff)
edac: change the mem allocation scheme to make Documentation/kobject.txt happy
Kernel kobjects have rigid rules: each container object should be dynamically allocated, and can't be allocated into a single kmalloc. EDAC never obeyed this rule: it has a single malloc function that allocates all needed data into a single kzalloc. As this is not accepted anymore, change the allocation schema of the EDAC *_info structs to enforce this Kernel standard. Acked-by: Chris Metcalf <cmetcalf@tilera.com> Cc: Aristeu Rozanski <arozansk@redhat.com> Cc: Doug Thompson <norsk5@yahoo.com> Cc: Greg K H <gregkh@linuxfoundation.org> Cc: Borislav Petkov <borislav.petkov@amd.com> Cc: Mark Gross <mark.gross@intel.com> Cc: Tim Small <tim@buttersideup.com> Cc: Ranganathan Desikan <ravi@jetztechnologies.com> Cc: "Arvind R." <arvino55@gmail.com> Cc: Olof Johansson <olof@lixom.net> Cc: Egor Martovetsky <egor@pasemi.com> Cc: Michal Marek <mmarek@suse.cz> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Hitoshi Mitake <h.mitake@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Shaohui Xie <Shaohui.Xie@freescale.com> Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/edac/cpc925_edac.c')
-rw-r--r--drivers/edac/cpc925_edac.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/edac/cpc925_edac.c b/drivers/edac/cpc925_edac.c
index 3510aa44629..534491d6715 100644
--- a/drivers/edac/cpc925_edac.c
+++ b/drivers/edac/cpc925_edac.c
@@ -348,7 +348,7 @@ static void cpc925_init_csrows(struct mem_ctl_info *mci)
348 if (bba == 0) 348 if (bba == 0)
349 continue; /* not populated */ 349 continue; /* not populated */
350 350
351 csrow = &mci->csrows[index]; 351 csrow = mci->csrows[index];
352 352
353 row_size = bba * (1UL << 28); /* 256M */ 353 row_size = bba * (1UL << 28); /* 256M */
354 csrow->first_page = last_nr_pages; 354 csrow->first_page = last_nr_pages;
@@ -380,7 +380,7 @@ static void cpc925_init_csrows(struct mem_ctl_info *mci)
380 break; 380 break;
381 } 381 }
382 for (j = 0; j < csrow->nr_channels; j++) { 382 for (j = 0; j < csrow->nr_channels; j++) {
383 dimm = csrow->channels[j].dimm; 383 dimm = csrow->channels[j]->dimm;
384 dimm->nr_pages = nr_pages / csrow->nr_channels; 384 dimm->nr_pages = nr_pages / csrow->nr_channels;
385 dimm->mtype = MEM_RDDR; 385 dimm->mtype = MEM_RDDR;
386 dimm->edac_mode = EDAC_SECDED; 386 dimm->edac_mode = EDAC_SECDED;
@@ -463,7 +463,7 @@ static void cpc925_mc_get_pfn(struct mem_ctl_info *mci, u32 mear,
463 *csrow = rank; 463 *csrow = rank;
464 464
465#ifdef CONFIG_EDAC_DEBUG 465#ifdef CONFIG_EDAC_DEBUG
466 if (mci->csrows[rank].first_page == 0) { 466 if (mci->csrows[rank]->first_page == 0) {
467 cpc925_mc_printk(mci, KERN_ERR, "ECC occurs in a " 467 cpc925_mc_printk(mci, KERN_ERR, "ECC occurs in a "
468 "non-populated csrow, broken hardware?\n"); 468 "non-populated csrow, broken hardware?\n");
469 return; 469 return;
@@ -471,7 +471,7 @@ static void cpc925_mc_get_pfn(struct mem_ctl_info *mci, u32 mear,
471#endif 471#endif
472 472
473 /* Revert csrow number */ 473 /* Revert csrow number */
474 pa = mci->csrows[rank].first_page << PAGE_SHIFT; 474 pa = mci->csrows[rank]->first_page << PAGE_SHIFT;
475 475
476 /* Revert column address */ 476 /* Revert column address */
477 col += bcnt; 477 col += bcnt;