drivers/edac: add edac_mc_find API
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@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
8ca47e0069
commit
5da0831c59
@ -1456,6 +1456,34 @@ static void del_mc_from_global_list(struct mem_ctl_info *mci)
|
|||||||
wait_for_completion(&mci->complete);
|
wait_for_completion(&mci->complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
* edac_mc_add_mc: Insert the 'mci' structure into the mci global list and
|
||||||
* create sysfs entries associated with mci structure
|
* create sysfs entries associated with mci structure
|
||||||
|
@ -430,6 +430,7 @@ void edac_mc_dump_mci(struct mem_ctl_info *mci);
|
|||||||
void edac_mc_dump_csrow(struct csrow_info *csrow);
|
void edac_mc_dump_csrow(struct csrow_info *csrow);
|
||||||
#endif /* CONFIG_EDAC_DEBUG */
|
#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 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 struct mem_ctl_info * edac_mc_del_mc(struct device *dev);
|
||||||
extern int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci,
|
extern int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci,
|
||||||
|
Loading…
Reference in New Issue
Block a user