summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2016-07-16 09:59:18 -0300
committerRay Zhang <rayz@codeaurora.org>2017-05-25 11:22:01 +0800
commite55c38515a753245919620dfa0a68d18577a4cac (patch)
treebb98419c7295591323fff272aeec5dcd63960a0a
parent60238b2dd3034a3906813f293fa12f87ff358751 (diff)
[media] cec: don't set fh to NULL in CEC_TRANSMIT
The filehandle was set to NULL when in non-blocking mode or when no reply is needed. This is wrong: the filehandle is needed in non-blocking mode to ensure that the result of the transmit can be obtained through CEC_RECEIVE. And the 'reply' check was also incorrect since it should have checked the timeout field (the reply can be 0). In any case, when in blocking mode there is no need to set the fh to NULL either. Change-Id: I8225959283d34f9a44439ab34ee291b87b5d4922 Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> Git-commit: 4eef404fd91543dc82be2bd05d3b29919ec6c0e6 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git Signed-off-by: Ray Zhang <rayz@codeaurora.org>
-rw-r--r--drivers/staging/media/cec/cec-api.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/staging/media/cec/cec-api.c b/drivers/staging/media/cec/cec-api.c
index 879f7d96e1a7..559f6500d114 100644
--- a/drivers/staging/media/cec/cec-api.c
+++ b/drivers/staging/media/cec/cec-api.c
@@ -189,15 +189,12 @@ static long cec_transmit(struct cec_adapter *adap, struct cec_fh *fh,
if (copy_from_user(&msg, parg, sizeof(msg)))
return -EFAULT;
mutex_lock(&adap->lock);
- if (!adap->is_configured) {
+ if (!adap->is_configured)
err = -ENONET;
- } else if (cec_is_busy(adap, fh)) {
+ else if (cec_is_busy(adap, fh))
err = -EBUSY;
- } else {
- if (!block || !msg.reply)
- fh = NULL;
+ else
err = cec_transmit_msg_fh(adap, &msg, fh, block);
- }
mutex_unlock(&adap->lock);
if (err)
return err;