From: Linus Torvalds <torvalds@linux-foundation.org>
To: Rene Herman <rene.herman@keyaccess.nl>
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>,
Jesse Barnes <jbarnes@virtuousgeek.org>,
Len Brown <lenb@kernel.org>, Frans Pop <elendil@planet.nl>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
linux-acpi@vger.kernel.org, Adam Belay <abelay@mit.edu>,
Avuton Olrich <avuton@gmail.com>,
Karl Bellve <karl.bellve@umassmed.edu>,
Willem Riede <wriede@riede.org>,
Matthew Hall <mhall@mhcomputing.net>
Subject: Re: [patch 2/2] PNP: don't check disabled PCI BARs for conflicts in quirk_system_pci_resources()
Date: Tue, 30 Sep 2008 09:29:44 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.2.00.0809300904530.3389@nehalem.linux-foundation.org> (raw)
In-Reply-To: <48E24C6F.3030903@keyaccess.nl>
On Tue, 30 Sep 2008, Rene Herman wrote:
>
> > Of course, it may be that the PnP code runs too early, and we have only
> > parsed the PCI resources, not inserted them into the resource tree yet. If
> > so, none of this will work, of course.
>
> It doesn't. With the test negated it triggers for all PCI resources (and
> ofcourse my soundcard driver fails again).
Oh, ok. Looking at it, it does seem that we actually _insert_ the PCI
resources too late. We do it in pcibios_allocate_resources(), and there we
even take care to look at whether it was enabled or disabled (we
prioritize enabled resources, so that a disabled one will never be
requested before an enabled one and if they clash, it's always the
disabled one that loses the resource).
But pcibios_allocate_resources() is called from pcibios_resource_survey(),
which is called from pcibios_init(), which in turn is caled from
pci_subsys_init() that is a "subsys_initcall()".
In contrast, the PnP fixup thing is called from pnp_fixup_device, called
from __pnp_add_device(), called from pnp_add_device() (and
pnp_add_card(), but that should be later), and those in turn from
pnpacpi_add_device and pnpacpi_init().
And pnpacpi_init is _also_ a subsys_initcall, but arch/x86/pci/built-in.o
gets linked in _after_ drivers/built-in.o. That, in turn, is because it's
marked as a "driver" in the x86 Makefile, and the main Makefile actually
ends up forcing "drivers-y" to have drivers/ first.
Just for fun, does this patch make a difference and allow you to just
take the "is it registered" thing into account?
It's a scary change right now, and I wouldn't commit it as is (I think
that for 2.6.27 the thing to do is to just do the minimal "zero means
disabled" thing), but having some random driver level initialize before
the core architecture-specific PCI code does smell. So something like this
sounds conceptually right anyway.
Linus
---
arch/x86/Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index f5631da..97d0e86 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -159,7 +159,7 @@ core-$(CONFIG_IA32_EMULATION) += arch/x86/ia32/
# drivers-y are linked after core-y
drivers-$(CONFIG_MATH_EMULATION) += arch/x86/math-emu/
-drivers-$(CONFIG_PCI) += arch/x86/pci/
+core-$(CONFIG_PCI) += arch/x86/pci/
# must be linked after kernel/
drivers-$(CONFIG_OPROFILE) += arch/x86/oprofile/
next prev parent reply other threads:[~2008-09-30 16:29 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-29 15:53 [patch 0/2] don't check disabled PCI BARs for conflicts with PNP devices Bjorn Helgaas
2008-09-29 15:56 ` [patch 1/2] PCI: add pci_resource_enabled() Bjorn Helgaas
2008-09-29 15:57 ` [patch 2/2] PNP: don't check disabled PCI BARs for conflicts in quirk_system_pci_resources() Bjorn Helgaas
2008-09-29 16:34 ` Linus Torvalds
2008-09-29 18:31 ` Rene Herman
2008-09-29 19:13 ` Linus Torvalds
2008-09-30 9:19 ` Rene Herman
2008-09-30 14:48 ` Linus Torvalds
2008-09-30 15:57 ` Rene Herman
2008-09-30 16:29 ` Linus Torvalds [this message]
2008-09-30 17:10 ` Linus Torvalds
2008-09-30 17:21 ` Linus Torvalds
2008-09-30 19:29 ` Rene Herman
2008-09-30 19:37 ` Rene Herman
2008-09-30 19:44 ` Linus Torvalds
2008-09-30 20:48 ` Rene Herman
2008-09-30 19:38 ` Ingo Molnar
2008-09-30 19:51 ` Linus Torvalds
2008-09-30 19:54 ` Arjan van de Ven
2008-09-30 20:01 ` Ingo Molnar
2008-10-01 6:13 ` Grant Grundler
2008-10-01 8:26 ` Ingo Molnar
2008-10-06 5:34 ` Grant Grundler
2008-10-01 15:14 ` Linus Torvalds
2008-10-01 16:21 ` Yinghai Lu
2008-09-30 20:05 ` Rolf Eike Beer
2008-10-01 8:52 ` Ingo Molnar
2008-09-30 18:01 ` Linus Torvalds
2008-09-30 18:13 ` Linus Torvalds
2008-09-30 19:51 ` Rene Herman
2008-09-30 19:16 ` Bjorn Helgaas
2008-09-30 19:12 ` Bjorn Helgaas
2008-10-01 20:18 ` 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=alpine.LFD.2.00.0809300904530.3389@nehalem.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=abelay@mit.edu \
--cc=avuton@gmail.com \
--cc=bjorn.helgaas@hp.com \
--cc=elendil@planet.nl \
--cc=jbarnes@virtuousgeek.org \
--cc=karl.bellve@umassmed.edu \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mhall@mhcomputing.net \
--cc=rene.herman@keyaccess.nl \
--cc=rjw@sisk.pl \
--cc=wriede@riede.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