From 056d85e5aba24732ee7f5d3c579b7780337de91d Mon Sep 17 00:00:00 2001 From: Algea Cao Date: Mon, 25 Dec 2017 17:23:16 +0800 Subject: [PATCH] UPSTREAM: [media] cec: return -EPERM when no LAs are configured The CEC_TRANSMIT ioctl now returns -EPERM if an attempt is made to transmit a message for an unconfigured adapter (i.e. userspace never called CEC_ADAP_S_LOG_ADDRS). This differentiates this case from when LAs are configured, but no physical address is set. In that case -ENONET is returned. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab (cherry picked from commit 059d1460cacb7e1ee499a02d92ac2b0b84d310fc) Change-Id: I84a80862ee751da109d617cc264aed6e92911432 Signed-off-by: Algea Cao --- drivers/media/cec/cec-api.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/media/cec/cec-api.c b/drivers/media/cec/cec-api.c index 627cdf7b12d1..cea350ea2a52 100644 --- a/drivers/media/cec/cec-api.c +++ b/drivers/media/cec/cec-api.c @@ -198,7 +198,9 @@ static long cec_transmit(struct cec_adapter *adap, struct cec_fh *fh, return -EINVAL; mutex_lock(&adap->lock); - if (adap->is_configuring) + if (adap->log_addrs.num_log_addrs == 0) + err = -EPERM; + else if (adap->is_configuring) err = -ENONET; else if (!adap->is_configured && (msg.msg[0] != 0xf0 || msg.reply)) err = -ENONET;