diff options
| author | Mauro Carvalho Chehab <[email protected]> | 2012-01-27 18:38:08 -0300 |
|---|---|---|
| committer | Mauro Carvalho Chehab <[email protected]> | 2012-05-28 19:10:58 -0300 |
| commit | 084a4fccef39ac7abb039511f32380f28d0b67e6 (patch) | |
| tree | 0596612000c7ec3a848b10f7cc4acdb573218076 /include/linux | |
| parent | a7d7d2e1a07e3811dc49af2962c940fd8bbb6c8f (diff) | |
edac: move dimm properties to struct dimm_info
On systems based on chip select rows, all channels need to use memories
with the same properties, otherwise the memories on channels A and B
won't be recognized.
However, such assumption is not true for all types of memory
controllers.
Controllers for FB-DIMM's don't have such requirements.
Also, modern Intel controllers seem to be capable of handling such
differences.
So, we need to get rid of storing the DIMM information into a per-csrow
data, storing it, instead at the right place.
The first step is to move grain, mtype, dtype and edac_mode to the
per-dimm struct.
Reviewed-by: Aristeu Rozanski <[email protected]>
Reviewed-by: Borislav Petkov <[email protected]>
Acked-by: Chris Metcalf <[email protected]>
Cc: Doug Thompson <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: Mark Gross <[email protected]>
Cc: Jason Uhlenkott <[email protected]>
Cc: Tim Small <[email protected]>
Cc: Ranganathan Desikan <[email protected]>
Cc: "Arvind R." <[email protected]>
Cc: Olof Johansson <[email protected]>
Cc: Egor Martovetsky <[email protected]>
Cc: Michal Marek <[email protected]>
Cc: Jiri Kosina <[email protected]>
Cc: Joe Perches <[email protected]>
Cc: Dmitry Eremin-Solenikov <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Hitoshi Mitake <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: James Bottomley <[email protected]>
Cc: "Niklas Söderlund" <[email protected]>
Cc: Shaohui Xie <[email protected]>
Cc: Josh Boyer <[email protected]>
Cc: Mike Williams <[email protected]>
Cc: [email protected]
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/edac.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/include/linux/edac.h b/include/linux/edac.h index 52bceca85e63..87aa07d2ee28 100644 --- a/include/linux/edac.h +++ b/include/linux/edac.h @@ -318,6 +318,13 @@ struct dimm_info { unsigned memory_controller; unsigned csrow; unsigned csrow_channel; + + u32 grain; /* granularity of reported error in bytes */ + enum dev_type dtype; /* memory device type */ + enum mem_type mtype; /* memory dimm type */ + enum edac_type edac_mode; /* EDAC mode for this dimm */ + + u32 ce_count; /* Correctable Errors for this dimm */ }; /** @@ -343,19 +350,17 @@ struct rank_info { }; struct csrow_info { - unsigned long first_page; /* first page number in dimm */ - unsigned long last_page; /* last page number in dimm */ + unsigned long first_page; /* first page number in csrow */ + unsigned long last_page; /* last page number in csrow */ + u32 nr_pages; /* number of pages in csrow */ unsigned long page_mask; /* used for interleaving - * 0UL for non intlv */ - u32 nr_pages; /* number of pages in csrow */ - u32 grain; /* granularity of reported error in bytes */ - int csrow_idx; /* the chip-select row */ - enum dev_type dtype; /* memory device type */ + int csrow_idx; /* the chip-select row */ + u32 ue_count; /* Uncorrectable Errors for this csrow */ u32 ce_count; /* Correctable Errors for this csrow */ - enum mem_type mtype; /* memory csrow type */ - enum edac_type edac_mode; /* EDAC mode for this csrow */ + struct mem_ctl_info *mci; /* the parent */ struct kobject kobj; /* sysfs kobject for this csrow */ |