From 78b811937db236815f799336783897a65aeb8539 Mon Sep 17 00:00:00 2001 From: Jarod Wilson Date: Sat, 29 May 2010 14:17:27 -0300 Subject: [PATCH] --- yaml --- r: 201934 b: refs/heads/master c: c2284261113f09bca4d362f5d51c008b65f55b6a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/IR/ir-raw-event.c | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 9a0d3a8076f2..defc6624764b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 52e0a72a0c6f61c26a16b5684f4eb30a6fbf8b83 +refs/heads/master: c2284261113f09bca4d362f5d51c008b65f55b6a diff --git a/trunk/drivers/media/IR/ir-raw-event.c b/trunk/drivers/media/IR/ir-raw-event.c index ea68a3f2effa..d3bd3f98e008 100644 --- a/trunk/drivers/media/IR/ir-raw-event.c +++ b/trunk/drivers/media/IR/ir-raw-event.c @@ -31,8 +31,9 @@ static DEFINE_SPINLOCK(ir_raw_handler_lock); * * Calls ir_raw_handler::ops for all registered IR handlers. It prevents * new decode addition/removal while running, by locking ir_raw_handler_lock - * mutex. If an error occurs, it stops the ops. Otherwise, it returns a sum - * of the return codes. + * mutex. If an error occurs, we keep going, as in the decode case, each + * decoder must have a crack at decoding the data. We return a sum of the + * return codes, which will be either 0 or negative for current callers. */ #define RUN_DECODER(ops, ...) ({ \ struct ir_raw_handler *_ir_raw_handler; \ @@ -41,8 +42,6 @@ static DEFINE_SPINLOCK(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; \ } \ } \