[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1375741219.10300.172.camel@misato.fc.hp.com>
Date: Mon, 05 Aug 2013 16:20:19 -0600
From: Toshi Kani <toshi.kani@...com>
To: "Rafael J. Wysocki" <rjw@...k.pl>
Cc: ACPI Devel Maling List <linux-acpi@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Bjorn Helgaas <bhelgaas@...gle.com>
Subject: Re: [PATCH] ACPI: Do not fail acpi_bind_one() if device is already
bound correctly
On Sun, 2013-08-04 at 16:03 +0200, Rafael J. Wysocki wrote:
> On Saturday, August 03, 2013 06:32:02 PM Toshi Kani wrote:
> > On Sat, 2013-08-03 at 02:47 +0200, Rafael J. Wysocki wrote:
> > > On Friday, August 02, 2013 04:38:38 PM Toshi Kani wrote:
> > > > On Fri, 2013-08-02 at 00:33 +0200, Rafael J. Wysocki wrote:
> > > > > From: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
> > > > >
> > > > > Modify acpi_bind_one() so that it doesn't fail if the device
> > > > > represented by its first argument has already been bound to the
> > > > > given ACPI handle (second argument), because that is not a good
> > > > > enough reason for returning an error code.
> > > >
> > > > While it seems reasonable to allow such case, I do not think we will hit
> > > > this case under the normal scenarios. So, I do not think we need to
> > > > make this change now unless it actually solves Yasuaki's issue (which I
> > > > am guessing not).
> > >
> > > In theory it should be possible to call acpi_bind_one() twice in a row
> > > for the same dev and the same handle without failure, that simply is
> > > logical. The patch may not fix any problems visible now, but returning an
> > > error code in such a case is simply incorrect.
> >
> > We changed acpi_bus_device_attach() to not call the handler or driver
> > again if it is already bound. So, I was under impression that we
> > prevent from attaching a same device twice. But I may be missing
> > something...
>
> acpi_bind_one() may be called in code paths that don't start from
> acpi_bus_device_attach(), like acpi_platform_notify(), where the result
> depends on how .find_device() is implemented by the the given bus type,
> for example.
acpi_bind_one() always returns with 0 when it sets a handle to the
device. So, acpi_platform_notify() should not call .find_device() in
this case. acpi_bus_check_add() is also protected from adding a same
device twice. But I see your point that the callers of acpi_bind_one()
could be changed / implementation dependent. So, I agree that it would
be prudent to have this change.
Acked-by: Toshi Kani <toshi.kani@...com>
Thanks,
-Toshi
--
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