From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7251CC48BD1 for ; Wed, 9 Jun 2021 11:55:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4DAB06100B for ; Wed, 9 Jun 2021 11:55:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239639AbhFIL5R (ORCPT ); Wed, 9 Jun 2021 07:57:17 -0400 Received: from relay12.mail.gandi.net ([217.70.178.232]:37341 "EHLO relay12.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239571AbhFIL5O (ORCPT ); Wed, 9 Jun 2021 07:57:14 -0400 Received: (Authenticated sender: paul.kocialkowski@bootlin.com) by relay12.mail.gandi.net (Postfix) with ESMTPSA id A0FCB20000C; Wed, 9 Jun 2021 11:55:18 +0000 (UTC) From: Paul Kocialkowski To: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mauro Carvalho Chehab , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Hans Verkuil , Sakari Ailus , Sebastian Reichel , Thomas Petazzoni , Paul Kocialkowski Subject: [PATCH 2/2] media: v4l2-async: Make subdev notifier cleanup conditional Date: Wed, 9 Jun 2021 13:54:57 +0200 Message-Id: <20210609115457.822085-2-paul.kocialkowski@bootlin.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210609115457.822085-1-paul.kocialkowski@bootlin.com> References: <20210609115457.822085-1-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A dedicated subdev notified is registered when using the helper dedicated to sensors (v4l2_async_register_subdev_sensor_common), but this is not the case when a driver uses v4l2_async_register_subdev directly. As a result, add a conditional check to deal with the dedicated subdev notifier only when necessary at the async subdev unregister step (and avoid operating on/freeing an unallocated notifier). Fixes: aef69d54755d ("media: v4l: fwnode: Add a convenience function for registering sensors") Signed-off-by: Paul Kocialkowski --- drivers/media/v4l2-core/v4l2-async.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c index cd9e78c63791..e0f4f7551ff3 100644 --- a/drivers/media/v4l2-core/v4l2-async.c +++ b/drivers/media/v4l2-core/v4l2-async.c @@ -780,10 +780,12 @@ void v4l2_async_unregister_subdev(struct v4l2_subdev *sd) mutex_lock(&list_lock); - __v4l2_async_notifier_unregister(sd->subdev_notifier); - __v4l2_async_notifier_cleanup(sd->subdev_notifier); - kfree(sd->subdev_notifier); - sd->subdev_notifier = NULL; + if (sd->subdev_notifier) { + __v4l2_async_notifier_unregister(sd->subdev_notifier); + __v4l2_async_notifier_cleanup(sd->subdev_notifier); + kfree(sd->subdev_notifier); + sd->subdev_notifier = NULL; + } if (sd->asd) { struct v4l2_async_notifier *notifier = sd->notifier; -- 2.31.1