summaryrefslogtreecommitdiffstats
path: root/drivers/media/rc/redrat3.c
diff options
context:
space:
mode:
authorSean Young <sean@mess.org>2013-07-08 17:33:09 -0300
committerMauro Carvalho Chehab <m.chehab@samsung.com>2013-07-30 17:04:23 -0300
commit671ea6707b3fb051ec1bae8e7aa0a91f90e178e0 (patch)
treeb403d588b2f200677d6be3a34c859b43aa347c64 /drivers/media/rc/redrat3.c
parent25379bf8bc4d4e83bd74d823048b85a95ae5a521 (diff)
downloadop-kernel-dev-671ea6707b3fb051ec1bae8e7aa0a91f90e178e0.zip
op-kernel-dev-671ea6707b3fb051ec1bae8e7aa0a91f90e178e0.tar.gz
[media] lirc: make transmit interface consistent
All lirc drivers that can transmit, return EINVAL when they are passed more than IR data than they can send. That is, except for two drivers which I touched. Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/rc/redrat3.c')
-rw-r--r--drivers/media/rc/redrat3.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c
index 3749443..0042367 100644
--- a/drivers/media/rc/redrat3.c
+++ b/drivers/media/rc/redrat3.c
@@ -762,7 +762,8 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf,
return -EAGAIN;
}
- count = min_t(unsigned, count, RR3_MAX_SIG_SIZE - RR3_TX_TRAILER_LEN);
+ if (count > RR3_MAX_SIG_SIZE - RR3_TX_TRAILER_LEN)
+ return -EINVAL;
/* rr3 will disable rc detector on transmit */
rr3->transmitting = true;
@@ -801,8 +802,8 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf,
&irdata->lens[curlencheck]);
curlencheck++;
} else {
- count = i - 1;
- break;
+ ret = -EINVAL;
+ goto out;
}
}
irdata->sigdata[i] = lencheck;
OpenPOWER on IntegriCloud