@@ -36,14 +36,15 @@ static DEFINE_SPINLOCK(ir_raw_handler_lock);
*/
#define RUN_DECODER(ops, ...) ({ \
struct ir_raw_handler *_ir_raw_handler; \
- int _sumrc = 0, _rc; \
+ int _sumrc = 0, _rc, _fail; \
spin_lock(&ir_raw_handler_lock); \
list_for_each_entry(_ir_raw_handler, &ir_raw_handler_list, list) { \
if (_ir_raw_handler->ops) { \
_rc = _ir_raw_handler->ops(__VA_ARGS__); \
if (_rc < 0) \
- break; \
- _sumrc += _rc; \
+ _fail++; \
+ else \
+ _sumrc += _rc; \
} \
} \
spin_unlock(&ir_raw_handler_lock); \