aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Jiang <djiang@mvista.com>2007-07-19 01:49:54 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-19 10:04:54 -0700
commit66ee2f940ac8ab25f0c43a1e717d25dc46bfe74d (patch)
tree929e24aefc27c95e13641a8f4052d9093a1ef34a
parent91b99041c1d577ded1da599ddc28cec2e07253cf (diff)
downloadkernel_samsung_smdk4412-66ee2f940ac8ab25f0c43a1e717d25dc46bfe74d.zip
kernel_samsung_smdk4412-66ee2f940ac8ab25f0c43a1e717d25dc46bfe74d.tar.gz
kernel_samsung_smdk4412-66ee2f940ac8ab25f0c43a1e717d25dc46bfe74d.tar.bz2
drivers/edac: mod assert_error check
Change error check and clear variable from an atomic to an int Signed-off-by: Dave Jiang <djiang@mvista.com> 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>
-rw-r--r--drivers/edac/edac_mc.c11
-rw-r--r--drivers/edac/edac_stub.c4
-rw-r--r--include/linux/edac.h2
3 files changed, 7 insertions, 10 deletions
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index 3474ca9..7c952c6 100644
--- a/drivers/edac/edac_mc.c
+++ b/drivers/edac/edac_mc.c
@@ -222,18 +222,15 @@ static struct mem_ctl_info *find_mci_by_dev(struct device *dev)
*/
static int edac_mc_assert_error_check_and_clear(void)
{
- int vreg;
+ int old_state;
if(edac_op_state == EDAC_OPSTATE_POLL)
return 1;
- vreg = atomic_read(&edac_err_assert);
- if(vreg) {
- atomic_set(&edac_err_assert, 0);
- return 1;
- }
+ old_state = edac_err_assert;
+ edac_err_assert = 0;
- return 0;
+ return old_state;
}
/*
diff --git a/drivers/edac/edac_stub.c b/drivers/edac/edac_stub.c
index 91a038d..3d259c2 100644
--- a/drivers/edac/edac_stub.c
+++ b/drivers/edac/edac_stub.c
@@ -20,7 +20,7 @@ EXPORT_SYMBOL(edac_op_state);
atomic_t edac_handlers = ATOMIC_INIT(0);
EXPORT_SYMBOL(edac_handlers);
-atomic_t edac_err_assert = ATOMIC_INIT(0);
+int edac_err_assert = 0;
EXPORT_SYMBOL(edac_err_assert);
inline int edac_handler_set(void)
@@ -37,6 +37,6 @@ EXPORT_SYMBOL(edac_handler_set);
*/
inline void edac_atomic_assert_error(void)
{
- atomic_set(&edac_err_assert, 1);
+ edac_err_assert++;
}
EXPORT_SYMBOL(edac_atomic_assert_error);
diff --git a/include/linux/edac.h b/include/linux/edac.h
index c8b92d7..eab451e 100644
--- a/include/linux/edac.h
+++ b/include/linux/edac.h
@@ -20,8 +20,8 @@
#define EDAC_OPSTATE_INT 2
extern int edac_op_state;
+extern int edac_err_assert;
extern atomic_t edac_handlers;
-extern atomic_t edac_err_assert;
extern int edac_handler_set(void);
extern void edac_atomic_assert_error(void);