Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp823622pxb; Wed, 6 Oct 2021 16:33:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzYSf7xIOPvqhZly3wUndImyIzC+Gff33zJQoguvryJ3faAI2q1UzhXwOUAGvcY+wYRzu+L X-Received: by 2002:a17:906:4482:: with SMTP id y2mr1447064ejo.484.1633563193414; Wed, 06 Oct 2021 16:33:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633563193; cv=none; d=google.com; s=arc-20160816; b=gO/jUD9LO5GvHjMnAuBECvc1ROU2sV1ZN2SAdge1NZN7fS+gZaIV+rwq1RrA8ZkVVs apLFsDx7oxqwB8Mn1wWatF2vVGIaq9finvkTMD4fbAuVPskJTKfAcsnTvfJo39j3i22E cYiWwXAwDY15g4dVP+o90E/E3uYl1jqhaBz6ZJQ1GPJATcaia5sz9vlbM5vkxxftPLv1 BgHGoypj3NigH1Odo/bpbudxuKBvz6p8jvj5h81ANcFYkkSxxn3HDJ/KaxRJe9RD+wO4 ZGXl5mA9reuapMbPfRhcbmtsTD3i+X+ONje3jVg0nJ3FbRi5VYYkMGfuIKVfaKUv9+mt h99Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=fY7rLg/PLCJ5ujoV6wobsi0owrMup3WiA0gBqb3+fow=; b=SC4WEwbePEMnEMD6pUGSXLIchPHJRciVRBmZIN0eudkyVvk07fuhAjP5SjuaxsVgGM sHS0N6fIFb9z586E61ppNeaEaENgwPSrmBR8eXMa4t00NUFST+ecOKeuF8qvCgXO/o73 F6mTEaRDkhzaltckJGNlvieym3mY8cG8WZbI1c8tFxwy3/ROowCcELlOKqUk3J1juToR uG0a2tw7JGakeMWifyoYOkuJqhetlSo1GwZrcoSg+GHS/7ZAEUwFAxfiRc7OEjV259GM OAueLr+lrHYPj+IwhxGNzfuJ/FrzrBASLF2kdpxGCnDq7XXV3+xaJNJuMlMUxaSmCl2K dRDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=QE98plgC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w2si27120326ejn.164.2021.10.06.16.32.44; Wed, 06 Oct 2021 16:33:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=QE98plgC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231586AbhJFXdT (ORCPT + 99 others); Wed, 6 Oct 2021 19:33:19 -0400 Received: from perceval.ideasonboard.com ([213.167.242.64]:53306 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231361AbhJFXdS (ORCPT ); Wed, 6 Oct 2021 19:33:18 -0400 Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 702139DC; Thu, 7 Oct 2021 01:31:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1633563083; bh=HUFmwxiZ46w1+hW64n0QX0dQp8cWb6tqfnPkGfaXtdQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=QE98plgCTTwn6JjHVrOJXMzk1y0YlcggNinsisbb/AEGnDvWntCR2sp/VN3lVJJJ2 sZhvivoeagZusw16RwlTru8hnuITFi+TcyXOVrTcB6VYrAkBdcdqD0FjSACFIFe0te +m9jZW7Gg4lzbtkLMZutQpq/nM5K+q7tNThzT86U= Date: Thu, 7 Oct 2021 02:31:14 +0300 From: Laurent Pinchart To: Pratyush Yadav Cc: Mauro Carvalho Chehab , Nikhil Devshatwar , Tomi Valkeinen , Vignesh Raghavendra , Benoit Parrot , Maxime Ripard , Rob Herring , Sakari Ailus , Niklas =?utf-8?Q?S=C3=B6derlund?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: Re: [PATCH v4 01/11] media: cadence: csi2rx: Unregister v4l2 async notifier Message-ID: References: <20210915120240.21572-1-p.yadav@ti.com> <20210915120240.21572-2-p.yadav@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20210915120240.21572-2-p.yadav@ti.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Pratyush, Thank you for the patch. On Wed, Sep 15, 2021 at 05:32:30PM +0530, Pratyush Yadav wrote: > The notifier is added to the global notifier list when registered. When > the module is removed, the struct csi2rx_priv in which the notifier is > embedded, is destroyed. As a result the notifier list has a reference to > a notifier that no longer exists. This causes invalid memory accesses > when the list is iterated over. Similar for when the probe fails. > > Unregister and clean up the notifier to avoid this. > > Fixes: 1fc3b37f34f6 ("media: v4l: cadence: Add Cadence MIPI-CSI2 RX driver") > Signed-off-by: Pratyush Yadav Reviewed-by: Laurent Pinchart Note that there are other issues in the driver in cleanup paths, in particular a missing v4l2_async_notifier_cleanup() call in csi2rx_parse_dt() when v4l2_async_notifier_add_fwnode_remote_subdev() fails (moving the one from the other error path to an err label would be best), and missing media_entity_cleanup() calls in both the probe error path and the remove handler. Would you like to submit fixes for those ? > --- > > (no changes since v3) > > Changes in v3: > - New in v3. > > drivers/media/platform/cadence/cdns-csi2rx.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/media/platform/cadence/cdns-csi2rx.c b/drivers/media/platform/cadence/cdns-csi2rx.c > index 7b44ab2b8c9a..d60975f905d6 100644 > --- a/drivers/media/platform/cadence/cdns-csi2rx.c > +++ b/drivers/media/platform/cadence/cdns-csi2rx.c > @@ -469,6 +469,7 @@ static int csi2rx_probe(struct platform_device *pdev) > return 0; > > err_cleanup: > + v4l2_async_nf_unregister(&csi2rx->notifier); > v4l2_async_nf_cleanup(&csi2rx->notifier); > err_free_priv: > kfree(csi2rx); > @@ -479,6 +480,8 @@ static int csi2rx_remove(struct platform_device *pdev) > { > struct csi2rx_priv *csi2rx = platform_get_drvdata(pdev); > > + v4l2_async_nf_unregister(&csi2rx->notifier); > + v4l2_async_nf_cleanup(&csi2rx->notifier); > v4l2_async_unregister_subdev(&csi2rx->subdev); > kfree(csi2rx); > -- Regards, Laurent Pinchart