diff options
author | Dave Jiang <djiang@mvista.com> | 2007-07-19 01:49:54 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-19 10:04:54 -0700 |
commit | 66ee2f940ac8ab25f0c43a1e717d25dc46bfe74d (patch) | |
tree | 929e24aefc27c95e13641a8f4052d9093a1ef34a | |
parent | 91b99041c1d577ded1da599ddc28cec2e07253cf (diff) |
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.c | 11 | ||||
-rw-r--r-- | drivers/edac/edac_stub.c | 4 | ||||
-rw-r--r-- | include/linux/edac.h | 2 |
3 files changed, 7 insertions, 10 deletions
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c index 3474ca9d90a..7c952c68f0d 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 91a038d2f65..3d259c23150 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 c8b92d79f88..eab451e69a9 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); |