From: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: Shuah Khan <shuahkh@osg.samsung.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
LKML <linux-kernel@vger.kernel.org>,
Linux Media Mailing List <linux-media@vger.kernel.org>
Subject: Re: Omap3-isp isp_remove() access subdev.entity after media_device_cleanup()
Date: Mon, 12 Dec 2016 07:04:34 -0200 [thread overview]
Message-ID: <20161212070434.7a73b454@vento.lan> (raw)
In-Reply-To: <20161212080315.GQ16630@valkosipuli.retiisi.org.uk>
Em Mon, 12 Dec 2016 10:03:16 +0200
Sakari Ailus <sakari.ailus@iki.fi> escreveu:
> Hi Shuah,
>
> On Fri, Dec 09, 2016 at 09:52:44AM -0700, Shuah Khan wrote:
> > Hi Sakari,
> >
> > I am looking at omap3 isp_remove() closely and I think there are a few
> > issues there that could cause problems during unbind.
> >
> > isp_remove() tries to do media_entity_cleanup() after it unregisters
> > media_device
> >
> > isp_remove() calls isp_unregister_entities() followed by
> > isp_cleanup_modules() - cleanup routines call media_entity_cleanup()
> >
> > media_entity_cleanup() accesses csi2a->subdev.entity which should be gone
> > by now after media_device_unregister(). This is just one example. I think
> > all of these cleanup routines isp_cleanup_modules() call access subdev.entity.
> >
> > static void isp_cleanup_modules(struct isp_device *isp)
> > {
> > omap3isp_h3a_aewb_cleanup(isp);
> > omap3isp_h3a_af_cleanup(isp);
> > omap3isp_hist_cleanup(isp);
> > omap3isp_resizer_cleanup(isp);
> > omap3isp_preview_cleanup(isp);
> > omap3isp_ccdc_cleanup(isp);
> > omap3isp_ccp2_cleanup(isp);
> > omap3isp_csi2_cleanup(isp);
> > }
> >
> > This is all done after media_device_cleanup() which does
> > ida_destroy(&mdev->entity_internal_idx); and mutex_destroy(&mdev->graph_mutex);
>
> Calling media_entity_cleanup() is not a source of the current problems in
> any way. The function is defined in media-entity.h and it does nothing:
>
> static inline void media_entity_cleanup(struct media_entity *entity) {};
>
> We could later discuss when media_entity_cleanup() should be called though.
> The existing drivers do call it in their remove() handler.
I kept it per Laurent's request, because he believed that we might
need it on some future, and keeping it would make easier to add usage
for it again, provided that it is called at the right place.
Well, as it is not been called at the right place anyway and, whatever we do
to fix the issues with data lifetime media_entity_cleanup() logic will
be affected, I suggest to just get rid of it.
Regards,
Mauro
next prev parent reply other threads:[~2016-12-12 9:04 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-09 16:52 Omap3-isp isp_remove() access subdev.entity after media_device_cleanup() Shuah Khan
2016-12-12 8:03 ` Sakari Ailus
2016-12-12 9:04 ` Mauro Carvalho Chehab [this message]
2016-12-12 16:41 ` Shuah Khan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161212070434.7a73b454@vento.lan \
--to=mchehab@osg.samsung.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=sakari.ailus@iki.fi \
--cc=shuahkh@osg.samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox