On Mon, 29 Sep 2008, Bjorn Helgaas wrote:
I really don't think this is the right approach.
Maybe the PCI device has been turned off, but the *resource* may still be
valid.
Wouldn't it be much better to just check whether the resource is inserted
in the resource tree or not?
Quite frankly, it looks like your change will basically cause us to look
over *every* system PnP resource, and for each of them, it will look at
*every* PCI device, and for each PCI device it will look at *every* BAR,
and for each BAR it finds it will read the PCI status register, over and
over and over again.
Now, I doubt you'll be able to wear out the PCI bus, but doesn't this just
make you go "umm, that's not pretty, and it doesn't make much sense".
If we've detected the PCI resource as being valid by the PCI layer, why
not just use that information? And afaik, the easy way to check that is
just whether it's inserted into the resource tree, which in turn is most
trivially done by just checking whether the resource has a parent.
IOW, why isn't it just doing
struct resource *res = dev->resource[bar];
if (!res->parent)
continue;
or something? Or what was wrong with just checking the res->start for
being zero? Wherever PnP is relevant, resources that start at zero are
disabled, no?
Linus
--
| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Alan Stern | Re: 2.6.22-rc2-mm1 |
| Satyam Sharma | Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures |
| William Lee Irwin III | Re: [Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS] |
git: | |
| Dale Farnsworth | Re: [PATCH 03/39] mv643xx_eth: shorten reg names |
| Jarek Poplawski | Re: HTB accuracy for high speed |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
