All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Jesse Barnes <jbarnes@virtuousgeek.org>,
	Yinghai Lu <yinghai@kernel.org>,
	"Ronciak, John" <john.ronciak@intel.com>,
	"Penner, Miles J" <miles.j.penner@intel.com>,
	Bruce Allan <bruce.w.allan@intel.com>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"x86@kernel.org" <x86@kernel.org>
Subject: Re: [PATCH 1/6] PCI: acpiphp: do not check for SLOT_ENABLED in enable_device()
Date: Mon, 1 Jul 2013 12:32:17 +0300	[thread overview]
Message-ID: <20130701093217.GG9294@intel.com> (raw)
In-Reply-To: <4600759.u0rXpSLd62@vostro.rjw.lan>

On Fri, Jun 28, 2013 at 08:54:45PM +0200, Rafael J. Wysocki wrote:
> On Friday, June 28, 2013 11:00:31 AM Bjorn Helgaas wrote:
> > On Fri, Jun 28, 2013 at 3:51 AM, Kirill A. Shutemov
> > <kirill.shutemov@linux.intel.com> wrote:
> > > Bjorn Helgaas wrote:
> > >> On Tue, Jun 25, 2013 at 10:22 AM, Mika Westerberg
> > >> <mika.westerberg@linux.intel.com> wrote:
> > >> > From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> > >> >
> > >> > With Thunderbolt you can chain devices: connect a new devices to plugged
> > >> > one. In this case the slot is already enabled, but we still want to look
> > >> > for new devices behind it.
> > >> >
> > >> > We're going to reuse enable_device() for rescan for new devices on the
> > >> > enabled slot. Let's push the check up by stack.
> > >> >
> > >> > Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> > >> > Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> > >> > ---
> > >> >  drivers/pci/hotplug/acpiphp_glue.c | 5 ++---
> > >> >  1 file changed, 2 insertions(+), 3 deletions(-)
> > >> >
> > >> > diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
> > >> > index 59df857..b983e29 100644
> > >> > --- a/drivers/pci/hotplug/acpiphp_glue.c
> > >> > +++ b/drivers/pci/hotplug/acpiphp_glue.c
> > >> > @@ -688,9 +688,6 @@ static int __ref enable_device(struct acpiphp_slot *slot)
> > >> >         int num, max, pass;
> > >> >         LIST_HEAD(add_list);
> > >> >
> > >> > -       if (slot->flags & SLOT_ENABLED)
> > >> > -               goto err_exit;
> > >> > -
> > >> >         list_for_each_entry(func, &slot->funcs, sibling)
> > >> >                 acpiphp_bus_add(func);
> > >> >
> > >> > @@ -1242,6 +1239,8 @@ int acpiphp_enable_slot(struct acpiphp_slot *slot)
> > >> >                 goto err_exit;
> > >> >
> > >> >         if (get_slot_status(slot) == ACPI_STA_ALL) {
> > >> > +               if (slot->flags & SLOT_ENABLED)
> > >> > +                       goto err_exit;
> > >>
> > >> Why do we check for SLOT_ENABLED at all?  I think we're handling a Bus
> > >> Check notification, which means "re-enumerate on the device tree
> > >> starting from the notification point."  It doesn't say anything about
> > >> skipping the re-enumeration if we find a device that's already
> > >> enabled.
> > >>
> > >> It seems like we ought to just re-enumerate all the way down in case a
> > >> device was added farther down in the tree (which is what it sounds
> > >> like Thunderbolt is doing).
> > >
> > > Currently (with patchset applied), we have two users of
> > > acpiphp_enable_slot():
> > >
> > > - /sys/bus/pci/slots/*/power
> > > - ACPI_NOTIFY_BUS_CHECK in _handle_hotplug_event_func().
> > >
> > > Both are not related to Thunderbolt.
> > >
> > > Although, I think remove the check is good idea, I prefer to keep it
> > > separate from Thunderbolt enabling patchset, since it will change sysfs
> > > ABI a bit and can potentially affect othe ACPI PCI hotplug
> > > implementations.
> > 
> > I'll think about this some more, but if we can make a change that
> > simplifies things and makes them more spec-compliant, and also happens
> > to make Thunderbolt work, that sounds better than fixing Thunderbolt
> > while leaving the wart there.
> > 
> > If we only fix Thunderbolt, it just feels like we're adding to an
> > ever-growing "deferred maintenance" list.
> 
> I agree.
> 
> That change may be done in a separate patch, but it should be included in the
> series.

Given the fact that SLOT_ENABLED is only checked in acpiphp_enable_slot()
(after this patch) and that /sys/bus/pci/slots/*/power uses SLOT_POWEREDON
anyway, should we remove the whole flag?

  reply	other threads:[~2013-07-01  9:28 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-25 16:22 [PATCH 0/6] Thunderbolt workarounds take 2 Mika Westerberg
2013-06-25 16:22 ` [PATCH 1/6] PCI: acpiphp: do not check for SLOT_ENABLED in enable_device() Mika Westerberg
2013-06-26 23:28   ` Bjorn Helgaas
2013-06-27 13:25     ` Kirill A. Shutemov
2013-06-28  9:51     ` Kirill A. Shutemov
2013-06-28 17:00       ` Bjorn Helgaas
2013-06-28 18:54         ` Rafael J. Wysocki
2013-07-01  9:32           ` Mika Westerberg [this message]
2013-07-01 14:01             ` Rafael J. Wysocki
2013-07-01 18:36               ` Mika Westerberg
2013-07-02  1:29                 ` Rafael J. Wysocki
2013-07-02 16:40                   ` Bjorn Helgaas
2013-07-02 20:29                     ` Rafael J. Wysocki
2013-07-02 20:31                       ` Mika Westerberg
2013-07-02 20:49                         ` Rafael J. Wysocki
2013-06-25 16:22 ` [PATCH 2/6] PCI: acpiphp: enable_device(): rescan even if no new devices on slot Mika Westerberg
2013-06-26 23:37   ` Bjorn Helgaas
2013-06-27 13:02     ` Mika Westerberg
2013-06-27 16:32       ` Mika Westerberg
2013-06-27 16:50         ` Bjorn Helgaas
2013-06-27 16:54         ` Bjorn Helgaas
2013-06-27  1:20   ` Yinghai Lu
2013-06-27 13:04     ` Mika Westerberg
2013-06-25 16:22 ` [PATCH 3/6] PCI: introduce pci_trim_stale_devices() Mika Westerberg
2013-06-25 17:47   ` Andy Shevchenko
2013-06-25 17:56     ` Kirill A. Shutemov
2013-06-28 19:59   ` Rafael J. Wysocki
2013-06-25 16:22 ` [PATCH 4/6] PCI: acpiphp: check for new devices on enabled host Mika Westerberg
2013-06-25 18:04   ` Andy Shevchenko
2013-06-26  9:39     ` Kirill A. Shutemov
2013-06-27 19:05   ` Yinghai Lu
2013-06-28  9:33     ` Kirill A. Shutemov
2013-06-28 16:22       ` Yinghai Lu
2013-06-28 20:04         ` Rafael J. Wysocki
2013-06-25 16:22 ` [PATCH 5/6] PCI: acpiphp: look _RMV method a bit deeper in the hierarhcy Mika Westerberg
2013-06-25 18:15   ` Andy Shevchenko
2013-06-25 18:31     ` Mika Westerberg
2013-06-25 18:31       ` Andy Shevchenko
2013-06-25 18:51         ` Mika Westerberg
2013-06-25 19:30           ` Andy Shevchenko
2013-07-02 10:44   ` Kirill A. Shutemov
2013-07-02 17:09     ` Bjorn Helgaas
2013-07-02 17:45       ` Kirill A. Shutemov
2013-07-02 20:48         ` Rafael J. Wysocki
2013-07-02 20:40       ` Rafael J. Wysocki
2013-06-25 16:22 ` [PATCH 6/6] x86/PCI: quirk Thunderbolt PCI-to-PCI bridges Mika Westerberg
2013-06-25 21:15   ` Jesse Barnes
2013-06-26 12:17     ` Mika Westerberg
2013-06-26 15:04       ` Greg Kroah-Hartman
2013-06-26 20:59       ` Bjorn Helgaas
2013-06-26 22:15         ` Alex Williamson
2013-06-27 13:09           ` Mika Westerberg
2013-06-26 22:18   ` Bjorn Helgaas
2013-06-26 22:26     ` Yinghai Lu
2013-06-26 22:31       ` Yinghai Lu
2013-06-26 22:44         ` Rafael J. Wysocki
2013-06-26 22:38           ` Yinghai Lu
2013-06-26 22:55         ` Bjorn Helgaas
2013-06-26 23:56           ` Yinghai Lu
2013-06-27 16:00             ` Bjorn Helgaas
2013-06-27 17:27               ` Yinghai Lu
2013-06-27 13:58       ` Mika Westerberg
2013-06-27 13:54     ` Mika Westerberg
2013-06-27 16:27       ` Mika Westerberg
2013-06-27 17:18         ` Yinghai Lu
2013-06-25 23:24 ` [PATCH 0/6] Thunderbolt workarounds take 2 Rafael J. Wysocki
2013-06-26  7:25   ` Mika Westerberg
2013-06-26 12:45     ` Rafael J. Wysocki
2013-06-26 19:48       ` Bjorn Helgaas
2013-06-26 20:01         ` Rafael J. Wysocki
2013-06-26 19:55           ` Bjorn Helgaas

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=20130701093217.GG9294@intel.com \
    --to=mika.westerberg@linux.intel.com \
    --cc=bhelgaas@google.com \
    --cc=bruce.w.allan@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=jbarnes@virtuousgeek.org \
    --cc=john.ronciak@intel.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=miles.j.penner@intel.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=rjw@sisk.pl \
    --cc=x86@kernel.org \
    --cc=yinghai@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.