[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Thu, 8 Aug 2013 00:25:14 -0700
From: Tony Lindgren <tony@...mide.com>
To: Pantelis Antoniou <panto@...oniou-consulting.com>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Russell King <linux@....linux.org.uk>,
BenoƮt Coussno <b-cousson@...com>,
Paul Walmsley <paul@...an.com>,
Sourav Poddar <sourav.poddar@...com>,
Russ Dill <Russ.Dill@...com>, Felipe Balbi <balbi@...com>,
Koen Kooi <koen@...cuitco.com>, linux-omap@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 5/5] arm: omap: Proper cleanups for omap_device
* Pantelis Antoniou <panto@...oniou-consulting.com> [130807 09:31]:
> Hi Tony,
>
> On Aug 7, 2013, at 7:15 PM, Tony Lindgren wrote:
>
> > * Pantelis Antoniou <panto@...oniou-consulting.com> [130806 02:44]:
> >> On Aug 6, 2013, at 12:33 PM, Greg Kroah-Hartman wrote:
> >>> On Tue, Aug 06, 2013 at 10:53:44AM +0300, Pantelis Antoniou wrote:
> >>>> +
> >>>> static int _omap_device_notifier_call(struct notifier_block *nb,
> >>>> unsigned long event, void *dev)
> >>>> {
> >>>> @@ -185,9 +211,13 @@ static int _omap_device_notifier_call(struct notifier_block *nb,
> >>>> struct omap_device *od;
> >>>>
> >>>> switch (event) {
> >>>> - case BUS_NOTIFY_DEL_DEVICE:
> >>>> + case BUS_NOTIFY_UNBOUND_DRIVER:
> >>>> + /* NOTIFY_DEL_DEVICE is not the right call...
> >>>> + * we use a callback here, to make sure no-one is going to
> >>>> + * try to use the omap_device data after they're deleted
> >>>> + */
> >>>> if (pdev->archdata.od)
> >>>> - omap_device_delete(pdev->archdata.od);
> >>>> + device_schedule_callback(dev, _omap_device_cleanup);
> >>>
> >>> Really? This is one sign that you are totally using the driver core
> >>> incorrectly. You shouldn't have to rely on notifier callbacks to handle
> >>> device removals, your bus code should do that for you directly.
> >>>
> >>> I don't like this at all, sorry.
> >>>
> >>
> >> Don't shoot the messenger please...
> >
> > As you're inititalizing capebus with DT, let's figure out what if
> > anything you actually need from omap_device. I'd much rather remove
> > dependencies than add more.
> >
>
> There is no such thing as capebus anymore. This is just the path of
> removing a platform device, which happens to also be an omap_device.
OK, so let's figure out the minimal fixes needed.
> >> This is all about fixing a crash without messing too many things.
> >
> > It seems this fix is only needed for supporting out-of-tree code?
> > These features with omap_device we may not even want to support in
> > the mainline tree as is being discussed..
> >
>
> What out of tree code? The only thing this patch does is make sure we
> don't crash when a perfectly valid call to platform_device_unregister() happens.
>
> Drivers that don't use omap_device work just fine.
So what's the minimal set of fixes then?
Regards,
Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists