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>
*/
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;
}
/*
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)
*/
inline void edac_atomic_assert_error(void)
{
- atomic_set(&edac_err_assert, 1);
+ edac_err_assert++;
}
EXPORT_SYMBOL(edac_atomic_assert_error);
#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);