From 059d1460cacb7e1ee499a02d92ac2b0b84d310fc Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Mon, 27 Feb 2017 09:18:35 -0300 Subject: [PATCH] [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 --- 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;