[<prev] [next>] [day] [month] [year] [list]
Message-ID: <147202.82456.qm@web50104.mail.re2.yahoo.com>
Date: Sun, 3 Jun 2007 07:39:14 -0700 (PDT)
From: Doug Thompson <norsk5@...oo.com>
To: linux-kernel@...r.kernel.org, Andrew Morton <akpm@...l.org>,
Alan Cox <alan@...rguk.ukuu.org.uk>
Subject: [PATCH 2/36] drivers edac add edac_mc_find API
From: Douglas Thompson <dougthompson@...ssion.com>
This simple patch adds an important CORE API for EDAC that
EDAC drivers can use to find their edac_mc control structure by passing
a mem_ctl_info 'instance' value
Needed for subsequent patches
Signed-off-by: Douglas Thompson <dougthompson@...ssion.com>
--
edac_mc.c | 28 ++++++++++++++++++++++++++++
edac_mc.h | 1 +
2 files changed, 29 insertions(+)
--
diff -puN
drivers/edac/edac_mc.c~edac-new-opteron-athlon64-memory-controller-driver
drivers/edac/edac_mc.c
---
a/drivers/edac/edac_mc.c~edac-new-opteron-athlon64-memory-controller-driver
+++ a/drivers/edac/edac_mc.c
@@ -1457,6 +1457,34 @@ static void del_mc_from_global_list(stru
}
/**
+ * edac_mc_find: Search for a mem_ctl_info structure whose index is
'idx'.
+ *
+ * If found, return a pointer to the structure.
+ * Else return NULL.
+ *
+ * Caller must hold mem_ctls_mutex.
+ */
+struct mem_ctl_info * edac_mc_find(int idx)
+{
+ struct list_head *item;
+ struct mem_ctl_info *mci;
+
+ list_for_each(item, &mc_devices) {
+ mci = list_entry(item, struct mem_ctl_info, link);
+
+ if (mci->mc_idx >= idx) {
+ if (mci->mc_idx == idx)
+ return mci;
+
+ break;
+ }
+ }
+
+ return NULL;
+}
+EXPORT_SYMBOL(edac_mc_find);
+
+/**
* edac_mc_add_mc: Insert the 'mci' structure into the mci global list
and
* create sysfs entries associated with mci structure
* @mci: pointer to the mci structure to be added to the list
diff -puN
drivers/edac/edac_mc.h~edac-new-opteron-athlon64-memory-controller-driver
drivers/edac/edac_mc.h
---
a/drivers/edac/edac_mc.h~edac-new-opteron-athlon64-memory-controller-driver
+++ a/drivers/edac/edac_mc.h
@@ -430,6 +430,7 @@ void edac_mc_dump_mci(struct mem_ctl_inf
void edac_mc_dump_csrow(struct csrow_info *csrow);
#endif /* CONFIG_EDAC_DEBUG */
+extern struct mem_ctl_info * edac_mc_find(int idx);
extern int edac_mc_add_mc(struct mem_ctl_info *mci,int mc_idx);
extern struct mem_ctl_info * edac_mc_del_mc(struct device *dev);
extern int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists