]> git.karo-electronics.de Git - linux-beck.git/commitdiff
[media] cec: update log_addr[] before finishing configuration
authorHans Verkuil <hansverk@cisco.com>
Fri, 9 Dec 2016 13:54:06 +0000 (11:54 -0200)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 21 Dec 2016 09:01:12 +0000 (07:01 -0200)
The loop that sets the unused logical addresses to INVALID should be
done before 'configured' is set to true. This ensures that cec_log_addrs
is consistent before it will be used.

Signed-off-by: Hans Verkuil <hansverk@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/cec/cec-adap.c

index c05956fdd5000cf9d136db4a7f07863766ca89a7..f3fef487f28d470538d542a4b5d1bfde8332c3e2 100644 (file)
@@ -1250,6 +1250,8 @@ configured:
                for (i = 1; i < las->num_log_addrs; i++)
                        las->log_addr[i] = CEC_LOG_ADDR_INVALID;
        }
+       for (i = las->num_log_addrs; i < CEC_MAX_LOG_ADDRS; i++)
+               las->log_addr[i] = CEC_LOG_ADDR_INVALID;
        adap->is_configured = true;
        adap->is_configuring = false;
        cec_post_state_event(adap);
@@ -1268,8 +1270,6 @@ configured:
                        cec_report_features(adap, i);
                cec_report_phys_addr(adap, i);
        }
-       for (i = las->num_log_addrs; i < CEC_MAX_LOG_ADDRS; i++)
-               las->log_addr[i] = CEC_LOG_ADDR_INVALID;
        mutex_lock(&adap->lock);
        adap->kthread_config = NULL;
        mutex_unlock(&adap->lock);