aboutsummaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <[email protected]>2012-01-27 18:38:08 -0300
committerMauro Carvalho Chehab <[email protected]>2012-05-28 19:10:58 -0300
commit084a4fccef39ac7abb039511f32380f28d0b67e6 (patch)
tree0596612000c7ec3a848b10f7cc4acdb573218076 /include/linux
parenta7d7d2e1a07e3811dc49af2962c940fd8bbb6c8f (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.h21
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 */