diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-04-24 14:05:43 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-06-11 12:23:45 -0400 |
commit | de3910eb79ac8c0f29a11224661c0ebaaf813039 (patch) | |
tree | 44584d6691588b2c18823260be0e44f0c9872d02 /drivers/edac/cpc925_edac.c | |
parent | e39f4ea9b01f137f9e6fa631f3e9088fb9175e91 (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.c | 8 |
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; |