From: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
To: Rodolfo Giometti <giometti-AVVDYK/kqiJWk0Htik3J/w@public.gmane.org>
Cc: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>,
linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Kumar Gala
<galak-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>,
Peter Korsgaard <jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org>
Subject: Re: [PATCH 3/6] i2c: ignore active clients detaching during adapter removal.
Date: Fri, 6 Feb 2009 13:15:20 +0100 [thread overview]
Message-ID: <20090206131520.232b53c3@hyperion.delvare> (raw)
In-Reply-To: <20090206102220.GF28554-AVVDYK/kqiJWk0Htik3J/w@public.gmane.org>
On Fri, 6 Feb 2009 11:22:21 +0100, Rodolfo Giometti wrote:
> On Thu, Feb 05, 2009 at 04:02:43PM -0800, David Brownell wrote:
> > On Thursday 05 February 2009, Rodolfo Giometti wrote:
> > >
> > > When we are removing an adapter we decide to ignore any active client
> > > detaching faults for two reasons:
> > >
> > > 1) one (or more) active client may be switched off, so it cannot
> > > replay to the "adapter removed" event.
> > >
> > > 2) it shouldn't happen, and even if it happens it may be due a bus
> > > fault which can be resolved by resetting the adapter (most of them
> > > can be resetted simply by rmmod and then insmod the module again).
> >
> > This bothers me. If the client can't detach, it can't;
> > there may be all kinds of chaos introduced by trying
> > to fake success in such cases. Like resources that
> > suddenly just vanish, leaving breakage in their wake.
> >
> > If this is a shutdown() path, where it's basically
> > just a polite driver notification, that's one thing.
> >
> > But I2C gets used as a system control bus, so this
> > sort of "ignore the errors" stuff worries me a lot.
>
> If so I suppose we should take in account the
> adapter->client_unregister() return value also, which is currently
> ignored in i2c_unregister_device() function...
Taking the old, deprecated, notoriously broken i2c model as an example
doesn't necessarily serve your cause ;)
> However, since I2c is a bus it could be possible that a slave device
> stops functioning (or the user decides to turn it off), so aborting
> the adapter removal in these cases can be not right... moreover if the
> adapter should be logically separated from the i2c clients I suppose
> is better allowing the user to remove (and eventually replace) it and
> then resolving i2c client's stale states into the relative driver.
>
> I suppose this is the same behaviour of USB bus: we can remove an USB
> host adapter independently from USB devices.
The big difference, I presume, is that USB is never a system bus. But
even for USB, devices can't exist without the host. If you kill the
host and resurrect it later, you also kill the devices and resurrect
them later.
The debate about drivers failing device removal is an old one, not
specific to i2c. My opinion is that .remove() should succeed as much as
possible. It should really only fail if the problem is so serious that
the system's state would otherwise become a problem (e.g. freeing
memory which is still referenced.) This should be a rare case.
--
Jean Delvare
next prev parent reply other threads:[~2009-02-06 12:15 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-05 13:36 i2c bus multiplexing (Version 2) Rodolfo Giometti
[not found] ` <1233840973-13268-1-git-send-email-giometti-k2GhghHVRtY@public.gmane.org>
2009-02-05 13:36 ` [PATCH 1/6] i2c: put driver_unregister() out of core_lock protection Rodolfo Giometti
[not found] ` <1233840973-13268-2-git-send-email-giometti-k2GhghHVRtY@public.gmane.org>
2009-02-05 13:36 ` [PATCH 2/6] i2c: use rwsem instead of mutex Rodolfo Giometti
[not found] ` <1233840973-13268-3-git-send-email-giometti-k2GhghHVRtY@public.gmane.org>
2009-02-05 13:36 ` [PATCH 3/6] i2c: ignore active clients detaching during adapter removal Rodolfo Giometti
[not found] ` <1233840973-13268-4-git-send-email-giometti-k2GhghHVRtY@public.gmane.org>
2009-02-05 13:36 ` [PATCH 4/6] i2c: free adapters (de)registration from i2c "core_lock" mutex Rodolfo Giometti
[not found] ` <1233840973-13268-5-git-send-email-giometti-k2GhghHVRtY@public.gmane.org>
2009-02-05 13:36 ` [PATCH 5/6] i2c: Multiplexed I2C bus core support Rodolfo Giometti
[not found] ` <1233840973-13268-6-git-send-email-giometti-k2GhghHVRtY@public.gmane.org>
2009-02-05 13:36 ` [PATCH 6/6] i2c: driver for PCA954x I2C multiplexer series Rodolfo Giometti
2009-02-06 0:02 ` [PATCH 3/6] i2c: ignore active clients detaching during adapter removal David Brownell
[not found] ` <200902051602.44036.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2009-02-06 10:22 ` Rodolfo Giometti
[not found] ` <20090206102220.GF28554-AVVDYK/kqiJWk0Htik3J/w@public.gmane.org>
2009-02-06 12:15 ` Jean Delvare [this message]
[not found] ` <20090206131520.232b53c3-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-02-06 12:59 ` Rodolfo Giometti
[not found] ` <20090206125907.GA8581-AVVDYK/kqiJWk0Htik3J/w@public.gmane.org>
2009-02-06 21:15 ` Jean Delvare
[not found] ` <20090206221519.5fc3d2b9-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-02-09 13:06 ` Rodolfo Giometti
[not found] ` <20090209130642.GV7975-AVVDYK/kqiJWk0Htik3J/w@public.gmane.org>
2009-02-10 11:08 ` Jean Delvare
[not found] ` <20090210120839.23592e38-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-02-18 16:48 ` Rodolfo Giometti
[not found] ` <20090218164812.GA11217-AVVDYK/kqiJWk0Htik3J/w@public.gmane.org>
2009-05-28 7:50 ` Jean Delvare
[not found] ` <20090528095054.03fc2df3-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-05-28 7:58 ` Rodolfo Giometti
[not found] ` <20090528075835.GH20243-AVVDYK/kqiJWk0Htik3J/w@public.gmane.org>
2009-05-28 8:22 ` Jean Delvare
2009-05-29 7:28 ` Rodolfo Giometti
[not found] ` <20090529072835.GA4575-AVVDYK/kqiJWk0Htik3J/w@public.gmane.org>
2009-05-29 7:46 ` Jean Delvare
2009-05-28 11:50 ` [PATCH 2/6] i2c: use rwsem instead of mutex Jean Delvare
2009-12-11 22:41 ` i2c bus multiplexing (Version 2) Muralidharan Karicheri
[not found] ` <loom.20091211T234046-786-eS7Uydv5nfjZ+VzJOa5vwg@public.gmane.org>
2010-04-16 11:18 ` Jean Delvare
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=20090206131520.232b53c3@hyperion.delvare \
--to=khali-puyad+kwke1g9huczpvpmw@public.gmane.org \
--cc=david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org \
--cc=galak-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org \
--cc=giometti-AVVDYK/kqiJWk0Htik3J/w@public.gmane.org \
--cc=jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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;
as well as URLs for NNTP newsgroup(s).