From patchwork Tue Sep 8 10:26:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans Verkuil X-Patchwork-Id: 11763225 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B898B746 for ; Tue, 8 Sep 2020 10:42:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9BB4B2074B for ; Tue, 8 Sep 2020 10:42:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=xs4all.nl header.i=@xs4all.nl header.b="paxoFfOD" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729576AbgIHKlh (ORCPT ); Tue, 8 Sep 2020 06:41:37 -0400 Received: from lb3-smtp-cloud7.xs4all.net ([194.109.24.31]:38673 "EHLO lb3-smtp-cloud7.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729539AbgIHK0b (ORCPT ); Tue, 8 Sep 2020 06:26:31 -0400 Received: from cust-b5b5937f ([IPv6:fc0c:c16d:66b8:757f:c639:739b:9d66:799d]) by smtp-cloud7.xs4all.net with ESMTPA id FapHkWzhXMeQuFapIkfd95; Tue, 08 Sep 2020 12:26:12 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xs4all.nl; s=s1; t=1599560773; bh=A5e5PrYoY6MRBhyUUYvjIRuog3xhq6LmyZBbNGIDnuo=; h=From:To:Subject:Date:Message-Id:MIME-Version:From:Subject; b=paxoFfOD1gxdzPAFWT8tG5JwFokt7Ed1aWP746WbQ9W3TdAaFzWaO4YLWereFabq4 1nbulknNVqKNtf5wDse6rywyhKrNVhXJuNE49YBuR8dsZBTyJcV5Ssk0w+lbuFJYvt YZ2EIdxl/st/4iJY/slBaoSB8sf7VjsDDvw7pW9l9Eeq4wjj3rPQTN7ETeb8Bgmldo zuAWTp/35Au7KeNKNxKOML5iJ3AMM4bEqeWgvzyM1/kRxQDpOQjX00ChGHCbDeZDZR XnXA7/Yr1AkVll2u/lYahScpcpPlAv1fpirP5Hu0IfZq0lZfqO6lzU3QA39Cj8Gpg0 JC6rvNB7axniw== From: Hans Verkuil To: linux-media@vger.kernel.org Cc: Hans Verkuil Subject: [PATCH 1/2] cec-core.c: stop kthread_config before kthread Date: Tue, 8 Sep 2020 12:26:10 +0200 Message-Id: <20200908102611.471265-2-hverkuil-cisco@xs4all.nl> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200908102611.471265-1-hverkuil-cisco@xs4all.nl> References: <20200908102611.471265-1-hverkuil-cisco@xs4all.nl> MIME-Version: 1.0 X-CMAE-Envelope: MS4wfBN2Q8OdUTxNwwXZKp4mIW5k45gcUuld5aOh0wpvINrX/ZgTkWJw2/5rJe28JxnzNFzzD/qZ30AO02STTnm91z/poRB+6GsCItnNEfd08WIu1oS/LRZz V1uNcGd33Mxcg7OAbokpSI+jvNQyVPPvF12hEoKhF2aXOHNr/GTyLpMj4UGnmVURT2sjaPN9yYJNW/LFZUsquywqokZQMJHyORvPBTXbCvZIovSou+5bWR1m EiDGmgdhQIcUFsNV2+bx3tX7QVlmxOiP6r4Djhq82IKUVOuUSl8hmParvYJtqARw Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org The kthread_config relies on the main kthread (message processing loop) to be present, so stop kthread_config before kthread. It's unlikely to be a problem (and I've never seen any issues), but if nothing else it makes sense to stop the threads in this order. Signed-off-by: Hans Verkuil --- drivers/media/cec/core/cec-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/cec/core/cec-core.c b/drivers/media/cec/core/cec-core.c index 3ee16f672d68..ece236291f35 100644 --- a/drivers/media/cec/core/cec-core.c +++ b/drivers/media/cec/core/cec-core.c @@ -396,9 +396,9 @@ void cec_delete_adapter(struct cec_adapter *adap) { if (IS_ERR_OR_NULL(adap)) return; - kthread_stop(adap->kthread); if (adap->kthread_config) kthread_stop(adap->kthread_config); + kthread_stop(adap->kthread); if (adap->ops->adap_free) adap->ops->adap_free(adap); #ifdef CONFIG_MEDIA_CEC_RC From patchwork Tue Sep 8 10:26:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans Verkuil X-Patchwork-Id: 11763215 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5E9A5112E for ; Tue, 8 Sep 2020 10:34:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3A60F208C7 for ; Tue, 8 Sep 2020 10:34:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=xs4all.nl header.i=@xs4all.nl header.b="NCMWQFZu" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729969AbgIHKdp (ORCPT ); Tue, 8 Sep 2020 06:33:45 -0400 Received: from lb1-smtp-cloud7.xs4all.net ([194.109.24.24]:49345 "EHLO lb1-smtp-cloud7.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729542AbgIHK0d (ORCPT ); Tue, 8 Sep 2020 06:26:33 -0400 Received: from cust-b5b5937f ([IPv6:fc0c:c16d:66b8:757f:c639:739b:9d66:799d]) by smtp-cloud7.xs4all.net with ESMTPA id FapHkWzhXMeQuFapJkfd9A; Tue, 08 Sep 2020 12:26:13 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xs4all.nl; s=s1; t=1599560773; bh=QcAbiD6FktTEgHd2VYDDvPco9MKZ6GT5lUvQ/sohjXg=; h=From:To:Subject:Date:Message-Id:MIME-Version:From:Subject; b=NCMWQFZuh4msPoThuq9OtuUq6s7oOYAuCRSRRBC4fRkuyW01sN0hER0Ka/5yb8bt2 8TepN8RuBdfPxbBqgQzhBtWon64rPW5ltAl/94iuzvFnXhoH9WG15ptqbdgM9W63lk i4p09YRZkXOdZNoVqnls2mW4swrQCYiW7qYfAVXPmMR8P8I4toUugvW5yvUMQSeOeH HNBq9a67/VhrKxINJS2w6ejZjUUJo8BWmWV11b78r1ul4bM2ZLooOoUSXomm1o1y7g RiKPNWl9XKbZPMrHQCw3x1zQ+lhXSA0FeXDRktQD4c5yAThpxuA7tsE1Y5KZaICtN9 7viRNpwTt/6sg== From: Hans Verkuil To: linux-media@vger.kernel.org Cc: Hans Verkuil Subject: [PATCH 2/2] cec-adap.c: add 'unregistered' checks Date: Tue, 8 Sep 2020 12:26:11 +0200 Message-Id: <20200908102611.471265-3-hverkuil-cisco@xs4all.nl> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200908102611.471265-1-hverkuil-cisco@xs4all.nl> References: <20200908102611.471265-1-hverkuil-cisco@xs4all.nl> MIME-Version: 1.0 X-CMAE-Envelope: MS4wfBZhREe2cqDzaHjQpaHwro+ZlViMI7xIUvjQlndRhvALEs9RKg3BNiFtX7Cv1lquwlWFHZMhypTRuN82b7XYdFMxb4Zl22Z9wpsCfzJnjzEkCmJQ6pwN 7cBnzHvUrgXOhR62FaJF5kKhX60oK/tMVtXmWPWcXRQrKELEPgwZyox7d9zapMkG/Ln/cv/jdw8BP3hd05GdG0Ms+1OZTttUcyYi6JNiKHGzL4/meXjlu+fI EteX321Tqmj9EtEyCmmEFBsNYpTFfdRegsaxzVC70fZ/meKg/6UkZHKC/3tWr3lH Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Make the code a bit more robust by checking if the adapter has been unregistered at the start of cec_transmit_msg_fh() and cec_received_msg_ts(). If it is unregistered, then just return. Signed-off-by: Hans Verkuil --- drivers/media/cec/core/cec-adap.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/media/cec/core/cec-adap.c b/drivers/media/cec/core/cec-adap.c index 3153c401cb65..d5d5d28d0b36 100644 --- a/drivers/media/cec/core/cec-adap.c +++ b/drivers/media/cec/core/cec-adap.c @@ -751,6 +751,9 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg, struct cec_data *data; bool is_raw = msg_is_raw(msg); + if (adap->devnode.unregistered) + return -ENODEV; + msg->rx_ts = 0; msg->tx_ts = 0; msg->rx_status = 0; @@ -1049,6 +1052,9 @@ void cec_received_msg_ts(struct cec_adapter *adap, if (WARN_ON(!msg->len || msg->len > CEC_MAX_MSG_SIZE)) return; + if (adap->devnode.unregistered) + return; + /* * Some CEC adapters will receive the messages that they transmitted. * This test filters out those messages by checking if we are the