linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Regression] PCI resources allocation problem on HP nx6325
@ 2009-08-02 14:19 Rafael J. Wysocki
  2009-08-02 16:39 ` Linus Torvalds
  2009-08-02 16:59 ` [Regression] PCI resources allocation problem on HP nx6325 Matthew Wilcox
  0 siblings, 2 replies; 29+ messages in thread
From: Rafael J. Wysocki @ 2009-08-02 14:19 UTC (permalink / raw)
  To: Matthew Wilcox; +Cc: Linus Torvalds, LKML, Linux PCI, Andrew Morton

Hi Matthew,

As reported at

http://bugzilla.kernel.org/show_bug.cgi?id=13891

there is a problem with allocating PCI resources on HP nx6325 introduced by
your commit a76117dfd687ec4be0a9a05214f3009cc5f73a42
(x86: Use pci_claim_resource).

On this particular box it causes the audio adapter's PCI memory space to
be allocated for something else.

Kernel messages from the failing kernel and from the kernel with commit
a76117dfd687ec4be0a9a05214f3009cc5f73a42 reverted, as well as the corresponding
contents of /proc/iomem and /proc/ioports, are attached to the Bugzilla entry.

Thanks,
Rafael

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-02 14:19 [Regression] PCI resources allocation problem on HP nx6325 Rafael J. Wysocki
@ 2009-08-02 16:39 ` Linus Torvalds
  2009-08-02 17:15   ` Matthew Wilcox
                     ` (3 more replies)
  2009-08-02 16:59 ` [Regression] PCI resources allocation problem on HP nx6325 Matthew Wilcox
  1 sibling, 4 replies; 29+ messages in thread
From: Linus Torvalds @ 2009-08-02 16:39 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Matthew Wilcox, LKML, Linux PCI, Andrew Morton, Andrew Patterson



On Sun, 2 Aug 2009, Rafael J. Wysocki wrote:
>
> Hi Matthew,
> 
> As reported at
> 
> http://bugzilla.kernel.org/show_bug.cgi?id=13891
> 
> there is a problem with allocating PCI resources on HP nx6325 introduced by
> your commit a76117dfd687ec4be0a9a05214f3009cc5f73a42
> (x86: Use pci_claim_resource).

Ooh, interesting. I thought that patch was a functionally equivalent 
cleanup of

	pr = pci_find_parent_resource(dev, r);
	if (!pr || request_resource(pr, r) < 0) {

to

	if (pci_claim_resource(dev, idx) < 0) {

but yeah, it's not exactly the same. pci_claim_resource() uses 
'insert_resource()' rather than 'request_resource()'.

We could certainly revert the commit, but I also wonder whether we should 
just change 'pci_claim_resource()' to use request_resource() instead.

I _think_ the use of "insert_resource()" is purely historical, and is 
because that broken function _used_ to not look up the parent, but instead 
do that crazy "pcibios_select_root()" thing, and then it really does need 
to recurse down and "insert" the resource in the right place.

We should no longer _need_ to do the "insert_resource()" thing, since we 
are inserting it into the exact parent that we want (as of commit 
cebd78a8c: "Fix pci_claim_resource").

And if that "insert_resource()" in pci_claim_resource() ever does anything 
fancier than the raw "request_resource()", then that's a problem anyway.

Willy, comments? x86 historically has never used pci_claim_resource() at 
all (it always open-coded the above) except for some quirk handling. So 
I'm pretty sure that a patch like the below should be safe and correct. 
But it's parisc machines that always seem to break.

Added Andrew Patterson to the Cc, because his report was what caused us to 
originally look at pci_claim_resource() and make it use 
"pci_find_parent_resource()". We just never went whole hog, and we left 
that broken "insert_resource()" around.

So Rafael and AndrewP, does this work for you? (I also moved the "dtype" 
thing around, it bothered me).

			Linus

---
 drivers/pci/setup-res.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
index b711fb7..1898c7b 100644
--- a/drivers/pci/setup-res.c
+++ b/drivers/pci/setup-res.c
@@ -100,16 +100,16 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
 {
 	struct resource *res = &dev->resource[resource];
 	struct resource *root;
-	char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
 	int err;
 
 	root = pci_find_parent_resource(dev, res);
 
 	err = -EINVAL;
 	if (root != NULL)
-		err = insert_resource(root, res);
+		err = request_resource(root, res);
 
 	if (err) {
+		const char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
 		dev_err(&dev->dev, "BAR %d: %s of %s %pR\n",
 			resource,
 			root ? "address space collision on" :

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-02 14:19 [Regression] PCI resources allocation problem on HP nx6325 Rafael J. Wysocki
  2009-08-02 16:39 ` Linus Torvalds
@ 2009-08-02 16:59 ` Matthew Wilcox
  2009-08-02 20:18   ` Rafael J. Wysocki
  1 sibling, 1 reply; 29+ messages in thread
From: Matthew Wilcox @ 2009-08-02 16:59 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Matthew Wilcox, Linus Torvalds, LKML, Linux PCI, Andrew Morton

On Sun, Aug 02, 2009 at 04:19:47PM +0200, Rafael J. Wysocki wrote:
> Hi Matthew,
> 
> As reported at
> 
> http://bugzilla.kernel.org/show_bug.cgi?id=13891
> 
> there is a problem with allocating PCI resources on HP nx6325 introduced by
> your commit a76117dfd687ec4be0a9a05214f3009cc5f73a42
> (x86: Use pci_claim_resource).
> 
> On this particular box it causes the audio adapter's PCI memory space to
> be allocated for something else.

Could you also attach lspci -v?  It seems that the 0000:00:12.0 resource
is nesting inside the 0000:00:14.2 resource, which is just not possible.

Also, could you boot -rc5 (without
a76117dfd687ec4be0a9a05214f3009cc5f73a42 reverted) with this patch
applied?  It may give us some idea of what's going wrong.

diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
index ec80b88..3f422db 100644
--- a/drivers/pci/setup-res.c
+++ b/drivers/pci/setup-res.c
@@ -105,6 +105,10 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
 
 	root = pci_find_parent_resource(dev, res);
 
+if (root)
+ printk("Inserting resource %s %pR (BAR %d) inside resource %s %pR\n", res->name, res, resource, root->name, root);
+else
+ printk("No parent found for resource %s %pR\n", res->name, res);
 	err = -EINVAL;
 	if (root != NULL)
 		err = insert_resource(root, res);

-- 
Matthew Wilcox				Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-02 16:39 ` Linus Torvalds
@ 2009-08-02 17:15   ` Matthew Wilcox
  2009-08-02 17:19     ` Linus Torvalds
  2009-08-02 20:16   ` Rafael J. Wysocki
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 29+ messages in thread
From: Matthew Wilcox @ 2009-08-02 17:15 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson

On Sun, Aug 02, 2009 at 09:39:58AM -0700, Linus Torvalds wrote:
> Ooh, interesting. I thought that patch was a functionally equivalent 
> cleanup of
> 
> 	pr = pci_find_parent_resource(dev, r);
> 	if (!pr || request_resource(pr, r) < 0) {
> 
> to
> 
> 	if (pci_claim_resource(dev, idx) < 0) {
> 
> but yeah, it's not exactly the same. pci_claim_resource() uses 
> 'insert_resource()' rather than 'request_resource()'.

Yeah, I thought it was going to be the same too.  One way in which it
will differ is if the BIOS has assigned two resources which conflict in
such a way that they will nest if we call insert_resource twice.  I guess
if we fail the allocation, it will get reallocated by the driver later.

> We could certainly revert the commit, but I also wonder whether we should 
> just change 'pci_claim_resource()' to use request_resource() instead.
> 
> I _think_ the use of "insert_resource()" is purely historical, and is 
> because that broken function _used_ to not look up the parent, but instead 
> do that crazy "pcibios_select_root()" thing, and then it really does need 
> to recurse down and "insert" the resource in the right place.
> 
> We should no longer _need_ to do the "insert_resource()" thing, since we 
> are inserting it into the exact parent that we want (as of commit 
> cebd78a8c: "Fix pci_claim_resource").
> 
> And if that "insert_resource()" in pci_claim_resource() ever does anything 
> fancier than the raw "request_resource()", then that's a problem anyway.
> 
> Willy, comments? x86 historically has never used pci_claim_resource() at 
> all (it always open-coded the above) except for some quirk handling. So 
> I'm pretty sure that a patch like the below should be safe and correct. 
> But it's parisc machines that always seem to break.

Oh, parisc won't break on this.  This is a part of the PCI resource
allocation; the parisc problem comes further up in the hierarchy while
we're still dealing with parisc devices.  Something like this:

f0800000 - f08fffff Bus 8
  f0800000 - f08fffff Bus 8/2
    f0800000 - f08fffff PCI Root 8/2/0
      f0800000 - f080ffff PCI Device 0000:0a:1.0

So once we find the PCI Root in pci_claim_resource (and we will), we
don't have to worry about using insert_resource vs request_resource.

Now, I do worry about there being resources requested by some other bit of
code (say ACPI or PNP or something) which will cause failures, when what
should happen is that it should be reparented to the new PCI resource.
But since x86 has never done this, it shouldn't be a problem on x86.
Will it be a problem on any other architecture?  No idea.  But it won't
be a problem on parisc -- all the PCI devices are subordinate to or
disjoint from parisc resources.

> Added Andrew Patterson to the Cc, because his report was what caused us to 
> originally look at pci_claim_resource() and make it use 
> "pci_find_parent_resource()". We just never went whole hog, and we left 
> that broken "insert_resource()" around.
> 
> So Rafael and AndrewP, does this work for you? (I also moved the "dtype" 
> thing around, it bothered me).

It *might* break HP's ia64 machines.  I have this feeling that the serial
ports may be claimed in the resource tree before the PCI resources are
claimed (and then they need to nest under a PCI bus).

How about this variant which will insert_resource for _bus_ resources,
but request_resource for _device_ resources?

(I also got rid of the spurious 'of' in the dev_err message)

diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
index ec80b88..8384cb3 100644
--- a/drivers/pci/setup-res.c
+++ b/drivers/pci/setup-res.c
@@ -100,17 +100,21 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
 {
 	struct resource *res = &dev->resource[resource];
 	struct resource *root;
-	char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
 	int err;
 
 	root = pci_find_parent_resource(dev, res);
 
 	err = -EINVAL;
-	if (root != NULL)
-		err = insert_resource(root, res);
+	if (root != NULL) {
+		if (resource < PCI_BRIDGE_RESOURCES)
+			err = request_resource(root, res);
+		else
+			err = insert_resource(root, res);
+	}
 
 	if (err) {
-		dev_err(&dev->dev, "BAR %d: %s of %s %pR\n",
+		const char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
+		dev_err(&dev->dev, "BAR %d: %s %s %pR\n",
 			resource,
 			root ? "address space collision on" :
 				"no parent found for",

-- 
Matthew Wilcox				Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-02 17:15   ` Matthew Wilcox
@ 2009-08-02 17:19     ` Linus Torvalds
  2009-08-02 17:25       ` Matthew Wilcox
  0 siblings, 1 reply; 29+ messages in thread
From: Linus Torvalds @ 2009-08-02 17:19 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson



On Sun, 2 Aug 2009, Matthew Wilcox wrote:
> 
> It *might* break HP's ia64 machines.  I have this feeling that the serial
> ports may be claimed in the resource tree before the PCI resources are
> claimed (and then they need to nest under a PCI bus).
> 
> How about this variant which will insert_resource for _bus_ resources,
> but request_resource for _device_ resources?

Ugh. Please no. Hackery like this will just lead to unmaintainable crud in 
the long run. Can you just fix ia64 instead? The firmware resources should 
be added _after_ the PCI resource tree has been walked, not before.

		Linus

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-02 17:19     ` Linus Torvalds
@ 2009-08-02 17:25       ` Matthew Wilcox
  0 siblings, 0 replies; 29+ messages in thread
From: Matthew Wilcox @ 2009-08-02 17:25 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson

On Sun, Aug 02, 2009 at 10:19:42AM -0700, Linus Torvalds wrote:
> On Sun, 2 Aug 2009, Matthew Wilcox wrote:
> > 
> > It *might* break HP's ia64 machines.  I have this feeling that the serial
> > ports may be claimed in the resource tree before the PCI resources are
> > claimed (and then they need to nest under a PCI bus).
> > 
> > How about this variant which will insert_resource for _bus_ resources,
> > but request_resource for _device_ resources?
> 
> Ugh. Please no. Hackery like this will just lead to unmaintainable crud in 
> the long run. Can you just fix ia64 instead? The firmware resources should 
> be added _after_ the PCI resource tree has been walked, not before.

I'll take a look later if Andrew doesn't beat me to it.  I still happen
to have two of those machines in my basement.  But my wife is hassling
me to go out now (it's not crazy 40C in Ottawa ...)

-- 
Matthew Wilcox				Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-02 16:39 ` Linus Torvalds
  2009-08-02 17:15   ` Matthew Wilcox
@ 2009-08-02 20:16   ` Rafael J. Wysocki
  2009-08-02 21:14     ` Linus Torvalds
  2009-08-03  3:10   ` Andrew Patterson
  2009-08-03 16:59   ` Manuel Lauss
  3 siblings, 1 reply; 29+ messages in thread
From: Rafael J. Wysocki @ 2009-08-02 20:16 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Matthew Wilcox, LKML, Linux PCI, Andrew Morton, Andrew Patterson

On Sunday 02 August 2009, Linus Torvalds wrote:
> 
> On Sun, 2 Aug 2009, Rafael J. Wysocki wrote:
> >
> > Hi Matthew,
> > 
> > As reported at
> > 
> > http://bugzilla.kernel.org/show_bug.cgi?id=13891
> > 
> > there is a problem with allocating PCI resources on HP nx6325 introduced by
> > your commit a76117dfd687ec4be0a9a05214f3009cc5f73a42
> > (x86: Use pci_claim_resource).
> 
> Ooh, interesting. I thought that patch was a functionally equivalent 
> cleanup of
> 
> 	pr = pci_find_parent_resource(dev, r);
> 	if (!pr || request_resource(pr, r) < 0) {
> 
> to
> 
> 	if (pci_claim_resource(dev, idx) < 0) {
> 
> but yeah, it's not exactly the same. pci_claim_resource() uses 
> 'insert_resource()' rather than 'request_resource()'.
> 
> We could certainly revert the commit, but I also wonder whether we should 
> just change 'pci_claim_resource()' to use request_resource() instead.
> 
> I _think_ the use of "insert_resource()" is purely historical, and is 
> because that broken function _used_ to not look up the parent, but instead 
> do that crazy "pcibios_select_root()" thing, and then it really does need 
> to recurse down and "insert" the resource in the right place.
> 
> We should no longer _need_ to do the "insert_resource()" thing, since we 
> are inserting it into the exact parent that we want (as of commit 
> cebd78a8c: "Fix pci_claim_resource").
> 
> And if that "insert_resource()" in pci_claim_resource() ever does anything 
> fancier than the raw "request_resource()", then that's a problem anyway.
> 
> Willy, comments? x86 historically has never used pci_claim_resource() at 
> all (it always open-coded the above) except for some quirk handling. So 
> I'm pretty sure that a patch like the below should be safe and correct. 
> But it's parisc machines that always seem to break.
> 
> Added Andrew Patterson to the Cc, because his report was what caused us to 
> originally look at pci_claim_resource() and make it use 
> "pci_find_parent_resource()". We just never went whole hog, and we left 
> that broken "insert_resource()" around.
> 
> So Rafael and AndrewP, does this work for you? (I also moved the "dtype" 
> thing around, it bothered me).

It works, ie. with this patch applied the PCI resources on the nx6325 look
exactly like with commit  a76117dfd687ec4be0a9a05214f3009cc5f73a42 reverted.

Thanks,
Rafael

 
> ---
>  drivers/pci/setup-res.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
> index b711fb7..1898c7b 100644
> --- a/drivers/pci/setup-res.c
> +++ b/drivers/pci/setup-res.c
> @@ -100,16 +100,16 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
>  {
>  	struct resource *res = &dev->resource[resource];
>  	struct resource *root;
> -	char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
>  	int err;
>  
>  	root = pci_find_parent_resource(dev, res);
>  
>  	err = -EINVAL;
>  	if (root != NULL)
> -		err = insert_resource(root, res);
> +		err = request_resource(root, res);
>  
>  	if (err) {
> +		const char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
>  		dev_err(&dev->dev, "BAR %d: %s of %s %pR\n",
>  			resource,
>  			root ? "address space collision on" :
> 
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-02 16:59 ` [Regression] PCI resources allocation problem on HP nx6325 Matthew Wilcox
@ 2009-08-02 20:18   ` Rafael J. Wysocki
  0 siblings, 0 replies; 29+ messages in thread
From: Rafael J. Wysocki @ 2009-08-02 20:18 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Matthew Wilcox, Linus Torvalds, LKML, Linux PCI, Andrew Morton

On Sunday 02 August 2009, Matthew Wilcox wrote:
> On Sun, Aug 02, 2009 at 04:19:47PM +0200, Rafael J. Wysocki wrote:
> > Hi Matthew,
> > 
> > As reported at
> > 
> > http://bugzilla.kernel.org/show_bug.cgi?id=13891
> > 
> > there is a problem with allocating PCI resources on HP nx6325 introduced by
> > your commit a76117dfd687ec4be0a9a05214f3009cc5f73a42
> > (x86: Use pci_claim_resource).
> > 
> > On this particular box it causes the audio adapter's PCI memory space to
> > be allocated for something else.
> 
> Could you also attach lspci -v?  It seems that the 0000:00:12.0 resource
> is nesting inside the 0000:00:14.2 resource, which is just not possible.

It only looks like that in the failing case, though.

> Also, could you boot -rc5 (without
> a76117dfd687ec4be0a9a05214f3009cc5f73a42 reverted) with this patch
> applied?  It may give us some idea of what's going wrong.

I tested the Linus' patch replacing insert_resource() with request_resource()
and it worked, so do you still want me to provide this information?

Rafael

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-02 20:16   ` Rafael J. Wysocki
@ 2009-08-02 21:14     ` Linus Torvalds
  0 siblings, 0 replies; 29+ messages in thread
From: Linus Torvalds @ 2009-08-02 21:14 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Matthew Wilcox, LKML, Linux PCI, Andrew Morton, Andrew Patterson



On Sun, 2 Aug 2009, Rafael J. Wysocki wrote:
> 
> It works, ie. with this patch applied the PCI resources on the nx6325 look
> exactly like with commit  a76117dfd687ec4be0a9a05214f3009cc5f73a42 reverted.

Ok, I'll commit it.

This leaves the issue of the serial ports on ia64 open. So it may be that 
we'll have to instead revert the use of pci_claim_resource() on x86, but 
it sounded like we'd have people looking at that. I'd rather make forward 
progress on something that looks this trivial than revert it just to get 
us back to the pre-regression thing.

			Linus

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-02 16:39 ` Linus Torvalds
  2009-08-02 17:15   ` Matthew Wilcox
  2009-08-02 20:16   ` Rafael J. Wysocki
@ 2009-08-03  3:10   ` Andrew Patterson
  2009-08-03 21:14     ` Andrew Patterson
  2009-08-03 16:59   ` Manuel Lauss
  3 siblings, 1 reply; 29+ messages in thread
From: Andrew Patterson @ 2009-08-03  3:10 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI, Andrew Morton

On Sun, 2009-08-02 at 09:39 -0700, Linus Torvalds wrote:
> 
> On Sun, 2 Aug 2009, Rafael J. Wysocki wrote:
> >
> > Hi Matthew,
> > 
> > As reported at
> > 
> > http://bugzilla.kernel.org/show_bug.cgi?id=13891
> > 
> > there is a problem with allocating PCI resources on HP nx6325 introduced by
> > your commit a76117dfd687ec4be0a9a05214f3009cc5f73a42
> > (x86: Use pci_claim_resource).
> 
> Ooh, interesting. I thought that patch was a functionally equivalent 
> cleanup of
> 
> 	pr = pci_find_parent_resource(dev, r);
> 	if (!pr || request_resource(pr, r) < 0) {
> 
> to
> 
> 	if (pci_claim_resource(dev, idx) < 0) {
> 
> but yeah, it's not exactly the same. pci_claim_resource() uses 
> 'insert_resource()' rather than 'request_resource()'.
> 
> We could certainly revert the commit, but I also wonder whether we should 
> just change 'pci_claim_resource()' to use request_resource() instead.
> 
> I _think_ the use of "insert_resource()" is purely historical, and is 
> because that broken function _used_ to not look up the parent, but instead 
> do that crazy "pcibios_select_root()" thing, and then it really does need 
> to recurse down and "insert" the resource in the right place.
> 
> We should no longer _need_ to do the "insert_resource()" thing, since we 
> are inserting it into the exact parent that we want (as of commit 
> cebd78a8c: "Fix pci_claim_resource").
> 
> And if that "insert_resource()" in pci_claim_resource() ever does anything 
> fancier than the raw "request_resource()", then that's a problem anyway.
> 
> Willy, comments? x86 historically has never used pci_claim_resource() at 
> all (it always open-coded the above) except for some quirk handling. So 
> I'm pretty sure that a patch like the below should be safe and correct. 
> But it's parisc machines that always seem to break.
> 
> Added Andrew Patterson to the Cc, because his report was what caused us to 
> originally look at pci_claim_resource() and make it use 
> "pci_find_parent_resource()". We just never went whole hog, and we left 
> that broken "insert_resource()" around.
> 
> So Rafael and AndrewP, does this work for you? (I also moved the "dtype" 
> thing around, it bothered me).

It works fine for me on the original hardware where the problem was
reported. I don't see any change between iomem/ioport layout between the
kernel without this patch and the kernel with this patch. I don't have
the problem card I had in the same slot, so I would like to move it and
run another test.

Andrew

> 
> 			Linus
> 
> ---
>  drivers/pci/setup-res.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
> index b711fb7..1898c7b 100644
> --- a/drivers/pci/setup-res.c
> +++ b/drivers/pci/setup-res.c
> @@ -100,16 +100,16 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
>  {
>  	struct resource *res = &dev->resource[resource];
>  	struct resource *root;
> -	char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
>  	int err;
>  
>  	root = pci_find_parent_resource(dev, res);
>  
>  	err = -EINVAL;
>  	if (root != NULL)
> -		err = insert_resource(root, res);
> +		err = request_resource(root, res);
>  
>  	if (err) {
> +		const char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
>  		dev_err(&dev->dev, "BAR %d: %s of %s %pR\n",
>  			resource,
>  			root ? "address space collision on" :
> 
-- 
Andrew Patterson
Hewlett-Packard


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-02 16:39 ` Linus Torvalds
                     ` (2 preceding siblings ...)
  2009-08-03  3:10   ` Andrew Patterson
@ 2009-08-03 16:59   ` Manuel Lauss
  2009-08-04 23:04     ` Linus Torvalds
  3 siblings, 1 reply; 29+ messages in thread
From: Manuel Lauss @ 2009-08-03 16:59 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson

Hello!

On Sun, Aug 02, 2009 at 09:39:58AM -0700, Linus Torvalds wrote:
> ---
>  drivers/pci/setup-res.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
> index b711fb7..1898c7b 100644
> --- a/drivers/pci/setup-res.c
> +++ b/drivers/pci/setup-res.c
> @@ -100,16 +100,16 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
>  {
>  	struct resource *res = &dev->resource[resource];
>  	struct resource *root;
> -	char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
>  	int err;
>  
>  	root = pci_find_parent_resource(dev, res);
>  
>  	err = -EINVAL;
>  	if (root != NULL)
> -		err = insert_resource(root, res);
> +		err = request_resource(root, res);
>  
>  	if (err) {
> +		const char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
>  		dev_err(&dev->dev, "BAR %d: %s of %s %pR\n",
>  			resource,
>  			root ? "address space collision on" :
> --


This patch introduces a warning on my system:

pci 0000:02:03.0: BAR 6: address space collision on of device [0xff680000-0xff69ffff]

Below are iomem and pci dev info in the bad and good cases (good = patch reverted).
This isn't fatal here:  the e1000's disabled expansion rom gets reassigned to elsewhere.

warning case:

00000000-0000ffff : reserved
00010000-0009fbff : System RAM
0009fc00-0009ffff : reserved  
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000e0000-000fffff : reserved 
  000f0000-000fffff : System ROM
00100000-3ff3ffff : System RAM  
  01000000-013a4d48 : Kernel code
  013a4d49-0155bb93 : Kernel data
  0159c000-015f054b : Kernel bss 
3ff40000-3ff4ffff : ACPI Tables  
3ff50000-3fffffff : ACPI Non-volatile Storage
40000000-400003ff : 0000:00:1f.1
44000000-47ffffff : PCI CardBus 0000:03
48000000-4bffffff : PCI CardBus 0000:03
ce900000-de9fffff : PCI Bus 0000:01
  d0000000-d7ffffff : 0000:01:00.0 
dea00000-deafffff : PCI Bus 0000:02
  dea00000-dea1ffff : 0000:02:03.0 
e0000000-efffffff : 0000:00:00.0   
fec00000-fec00fff : pnp 00:09      
fee00000-fee00fff : pnp 00:09      
ff500000-ff5fffff : PCI Bus 0000:01
  ff5c0000-ff5dffff : 0000:01:00.0 
  ff5f0000-ff5fffff : 0000:01:00.0 
ff600000-ff6fffff : PCI Bus 0000:02
  ff600000-ff600fff : 0000:02:01.0 
    ff600000-ff600fff : yenta_socket
  ff6a0000-ff6bffff : 0000:02:03.0  
    ff6a0000-ff6bffff : e1000
  ff6c0000-ff6dffff : 0000:02:03.0
    ff6c0000-ff6dffff : e1000
  ff6f7000-ff6f7fff : 0000:02:04.0
    ff6f7000-ff6f7fff : ohci_hcd  
  ff6f8000-ff6fbfff : 0000:02:01.2
  ff6fc000-ff6fcfff : 0000:02:04.1
    ff6fc000-ff6fcfff : ohci_hcd  
  ff6fd000-ff6fdfff : 0000:02:02.0
    ff6fd000-ff6fdfff : ipw2200   
  ff6fe400-ff6fe4ff : 0000:02:04.2
    ff6fe400-ff6fe4ff : ehci_hcd  
  ff6fe800-ff6fefff : 0000:02:01.2
    ff6fe800-ff6fefff : firewire_ohci
  ff6ff000-ff6fffff : 0000:02:01.3   
ff7ff400-ff7ff4ff : 0000:00:1f.5     
  ff7ff400-ff7ff4ff : Intel 82801DB-ICH4
ff7ff800-ff7ff9ff : 0000:00:1f.5
  ff7ff800-ff7ff9ff : Intel 82801DB-ICH4
ff7ffc00-ff7fffff : 0000:00:1d.7
  ff7ffc00-ff7fffff : ehci_hcd  
ff800000-ffbfffff : pnp 00:08   
ffc00000-ffffffff : pnp 00:08

02:03.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller
        Subsystem: Sony Corporation Device 818e
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 64 (63750ns min), Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 9
        Region 0: Memory at ff6c0000 (32-bit, non-prefetchable) [size=128K]
        Region 1: Memory at ff6a0000 (32-bit, non-prefetchable) [size=128K]
        Region 2: I/O ports at dc00 [size=64]
        Expansion ROM at dea00000 [disabled] [size=128K]
        Capabilities: [dc] Power Management version 2   
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=1 PME-
        Capabilities: [e4] PCI-X non-bridge device
                Command: DPERE- ERO+ RBC=512 OST=1
                Status: Dev=00:00.0 64bit- 133MHz- SCD- USC- DC=simple DMMRBC=2048 DMOST=1 DMCRS=8 RSCEM- 266MHz- 533MHz-
        Kernel driver in use: e1000



And in the working case (the patch reverted):

00000000-0000ffff : reserved
00010000-0009fbff : System RAM
0009fc00-0009ffff : reserved  
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000e0000-000fffff : reserved 
  000f0000-000fffff : System ROM
00100000-3ff3ffff : System RAM  
  01000000-013a4d48 : Kernel code
  013a4d49-0155bb93 : Kernel data
  0159c000-015f054b : Kernel bss 
3ff40000-3ff4ffff : ACPI Tables  
3ff50000-3fffffff : ACPI Non-volatile Storage
40000000-400003ff : 0000:00:1f.1
44000000-47ffffff : PCI CardBus 0000:03
48000000-4bffffff : PCI CardBus 0000:03
ce900000-de9fffff : PCI Bus 0000:01
  d0000000-d7ffffff : 0000:01:00.0 
dea00000-deafffff : PCI Bus 0000:02
e0000000-efffffff : 0000:00:00.0   
fec00000-fec00fff : pnp 00:09      
fee00000-fee00fff : pnp 00:09      
ff500000-ff5fffff : PCI Bus 0000:01
  ff5c0000-ff5dffff : 0000:01:00.0 
  ff5f0000-ff5fffff : 0000:01:00.0 
ff600000-ff6fffff : PCI Bus 0000:02
  ff600000-ff600fff : 0000:02:01.0 
    ff600000-ff600fff : yenta_socket
  ff680000-ff69ffff : 0000:02:03.0  
  ff6a0000-ff6bffff : 0000:02:03.0  
    ff6a0000-ff6bffff : e1000
  ff6c0000-ff6dffff : 0000:02:03.0
    ff6c0000-ff6dffff : e1000
  ff6f7000-ff6f7fff : 0000:02:04.0
    ff6f7000-ff6f7fff : ohci_hcd  
  ff6f8000-ff6fbfff : 0000:02:01.2
  ff6fc000-ff6fcfff : 0000:02:04.1
    ff6fc000-ff6fcfff : ohci_hcd  
  ff6fd000-ff6fdfff : 0000:02:02.0
    ff6fd000-ff6fdfff : ipw2200   
  ff6fe400-ff6fe4ff : 0000:02:04.2
    ff6fe400-ff6fe4ff : ehci_hcd  
  ff6fe800-ff6fefff : 0000:02:01.2
    ff6fe800-ff6fefff : firewire_ohci
  ff6ff000-ff6fffff : 0000:02:01.3   
ff7ff400-ff7ff4ff : 0000:00:1f.5     
  ff7ff400-ff7ff4ff : Intel 82801DB-ICH4
ff7ff800-ff7ff9ff : 0000:00:1f.5
  ff7ff800-ff7ff9ff : Intel 82801DB-ICH4
ff7ffc00-ff7fffff : 0000:00:1d.7
  ff7ffc00-ff7fffff : ehci_hcd  
ff800000-ffbfffff : pnp 00:08   
ffc00000-ffffffff : pnp 00:08

02:03.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller
        Subsystem: Sony Corporation Device 818e
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 64 (63750ns min), Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 9
        Region 0: Memory at ff6c0000 (32-bit, non-prefetchable) [size=128K]
        Region 1: Memory at ff6a0000 (32-bit, non-prefetchable) [size=128K]
        Region 2: I/O ports at dc00 [size=64]
        Expansion ROM at ff680000 [disabled] [size=128K]
        Capabilities: [dc] Power Management version 2   
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=1 PME-
        Capabilities: [e4] PCI-X non-bridge device
                Command: DPERE- ERO+ RBC=512 OST=1
                Status: Dev=00:00.0 64bit- 133MHz- SCD- USC- DC=simple DMMRBC=2048 DMOST=1 DMCRS=8 RSCEM- 266MHz- 533MHz-
        Kernel driver in use: e1000


Thanks!
	Manuel Lauss

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-03  3:10   ` Andrew Patterson
@ 2009-08-03 21:14     ` Andrew Patterson
  0 siblings, 0 replies; 29+ messages in thread
From: Andrew Patterson @ 2009-08-03 21:14 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI, Andrew Morton

On Sun, 2009-08-02 at 21:10 -0600, Andrew Patterson wrote:
> On Sun, 2009-08-02 at 09:39 -0700, Linus Torvalds wrote:
> > 
> > On Sun, 2 Aug 2009, Rafael J. Wysocki wrote:
> > >
> > > Hi Matthew,
> > > 
> > > As reported at
> > > 
> > > http://bugzilla.kernel.org/show_bug.cgi?id=13891
> > > 
> > > there is a problem with allocating PCI resources on HP nx6325 introduced by
> > > your commit a76117dfd687ec4be0a9a05214f3009cc5f73a42
> > > (x86: Use pci_claim_resource).
> > 
> > Ooh, interesting. I thought that patch was a functionally equivalent 
> > cleanup of
> > 
> > 	pr = pci_find_parent_resource(dev, r);
> > 	if (!pr || request_resource(pr, r) < 0) {
> > 
> > to
> > 
> > 	if (pci_claim_resource(dev, idx) < 0) {
> > 
> > but yeah, it's not exactly the same. pci_claim_resource() uses 
> > 'insert_resource()' rather than 'request_resource()'.
> > 
> > We could certainly revert the commit, but I also wonder whether we should 
> > just change 'pci_claim_resource()' to use request_resource() instead.
> > 
> > I _think_ the use of "insert_resource()" is purely historical, and is 
> > because that broken function _used_ to not look up the parent, but instead 
> > do that crazy "pcibios_select_root()" thing, and then it really does need 
> > to recurse down and "insert" the resource in the right place.
> > 
> > We should no longer _need_ to do the "insert_resource()" thing, since we 
> > are inserting it into the exact parent that we want (as of commit 
> > cebd78a8c: "Fix pci_claim_resource").
> > 
> > And if that "insert_resource()" in pci_claim_resource() ever does anything 
> > fancier than the raw "request_resource()", then that's a problem anyway.
> > 
> > Willy, comments? x86 historically has never used pci_claim_resource() at 
> > all (it always open-coded the above) except for some quirk handling. So 
> > I'm pretty sure that a patch like the below should be safe and correct. 
> > But it's parisc machines that always seem to break.
> > 
> > Added Andrew Patterson to the Cc, because his report was what caused us to 
> > originally look at pci_claim_resource() and make it use 
> > "pci_find_parent_resource()". We just never went whole hog, and we left 
> > that broken "insert_resource()" around.
> > 
> > So Rafael and AndrewP, does this work for you? (I also moved the "dtype" 
> > thing around, it bothered me).
> 
> It works fine for me on the original hardware where the problem was
> reported. I don't see any change between iomem/ioport layout between the
> kernel without this patch and the kernel with this patch. I don't have
> the problem card I had in the same slot, so I would like to move it and
> run another test.
> 

This change also works with the original "problem" card. I don't see any
issue with the serial port, but I have only tested on an rx6600.

> Andrew
> 
> > 
> > 			Linus
> > 
> > ---
> >  drivers/pci/setup-res.c |    4 ++--
> >  1 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
> > index b711fb7..1898c7b 100644
> > --- a/drivers/pci/setup-res.c
> > +++ b/drivers/pci/setup-res.c
> > @@ -100,16 +100,16 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
> >  {
> >  	struct resource *res = &dev->resource[resource];
> >  	struct resource *root;
> > -	char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
> >  	int err;
> >  
> >  	root = pci_find_parent_resource(dev, res);
> >  
> >  	err = -EINVAL;
> >  	if (root != NULL)
> > -		err = insert_resource(root, res);
> > +		err = request_resource(root, res);
> >  
> >  	if (err) {
> > +		const char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
> >  		dev_err(&dev->dev, "BAR %d: %s of %s %pR\n",
> >  			resource,
> >  			root ? "address space collision on" :
> > 
-- 
Andrew Patterson
Hewlett-Packard


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-03 16:59   ` Manuel Lauss
@ 2009-08-04 23:04     ` Linus Torvalds
  2009-08-05 15:51       ` Manuel Lauss
  0 siblings, 1 reply; 29+ messages in thread
From: Linus Torvalds @ 2009-08-04 23:04 UTC (permalink / raw)
  To: Manuel Lauss
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson



On Mon, 3 Aug 2009, Manuel Lauss wrote:
> 
> This patch introduces a warning on my system:
> 
> pci 0000:02:03.0: BAR 6: address space collision on of device [0xff680000-0xff69ffff]

Heh, that's funny. I suspect you have always had the error, it's just that 
back before the commit that started using "pci_claim_resource()", we did 
that "find_parent_resource()+request_resource()" by hand.

So before commit a76117dfd687ec4be0a9a05214f3009cc5f73a42, the ROM 
resources were done with:

	pr = pci_find_parent_resource(dev, r);
	if (!pr || request_resource(pr, r) < 0) {
		r->end -= r->start;
		r->start = 0;
	}

inside pcibios_assign_resources(), and it would never warn about it, it 
would just silently mark the resource unregistered (and then we'd 
re-allocate it later).

So I _think_ that you actually are getting the same layout as with 2.6.30, 
but with a warning that didn't exist in 2.6.30. Can you verify?

With the change to use "pci_claim_resource()", it initially changed things 
to use "insert_resource()", and that shouldn't have even succeeded, but 
apparently did! That's a bit scary. The patch to make it use 
pci_request_resource() should have made it have the same behavior as we 
had in 2.6.30 - albeit with the warning (that we didn't use to have).

I do wonder why the insert_resource() seems to have worked, though, so 
maybe I'm misdiagnosing this. Can you post your /proc/iomem from 2.6.30?

		Linus

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-04 23:04     ` Linus Torvalds
@ 2009-08-05 15:51       ` Manuel Lauss
  2009-08-05 16:25         ` Linus Torvalds
  0 siblings, 1 reply; 29+ messages in thread
From: Manuel Lauss @ 2009-08-05 15:51 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson

Hello!

On Tue, Aug 04, 2009 at 04:04:16PM -0700, Linus Torvalds wrote:
> On Mon, 3 Aug 2009, Manuel Lauss wrote:
> > 
> > This patch introduces a warning on my system:
> > 
> > pci 0000:02:03.0: BAR 6: address space collision on of device [0xff680000-0xff69ffff]
> 
> Heh, that's funny. I suspect you have always had the error, it's just that 
> back before the commit that started using "pci_claim_resource()", we did 
> that "find_parent_resource()+request_resource()" by hand.
> 
> So before commit a76117dfd687ec4be0a9a05214f3009cc5f73a42, the ROM 
> resources were done with:
> 
> 	pr = pci_find_parent_resource(dev, r);
> 	if (!pr || request_resource(pr, r) < 0) {
> 		r->end -= r->start;
> 		r->start = 0;
> 	}
> 
> inside pcibios_assign_resources(), and it would never warn about it, it 
> would just silently mark the resource unregistered (and then we'd 
> re-allocate it later).
> 
> So I _think_ that you actually are getting the same layout as with 2.6.30, 
> but with a warning that didn't exist in 2.6.30. Can you verify?

You're absolutely correct: /proc/iomem on 2.6.30 and 31-rc5+ are identical,
the only difference being 2.6.30 not complaining about any collisions.

 
> With the change to use "pci_claim_resource()", it initially changed things 
> to use "insert_resource()", and that shouldn't have even succeeded, but 
> apparently did! That's a bit scary. The patch to make it use 
> pci_request_resource() should have made it have the same behavior as we 
> had in 2.6.30 - albeit with the warning (that we didn't use to have).
> 
> I do wonder why the insert_resource() seems to have worked, though, so 
> maybe I'm misdiagnosing this. Can you post your /proc/iomem from 2.6.30?

Here it is.

00000000-0000ffff : reserved
00010000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000e0000-000fffff : reserved
  000f0000-000fffff : System ROM
00100000-3ff3ffff : System RAM
  01000000-013a071a : Kernel code
  013a071b-0155cc57 : Kernel data
  0159d000-015f070b : Kernel bss
3ff40000-3ff4ffff : ACPI Tables
3ff50000-3fffffff : ACPI Non-volatile Storage
50000000-500003ff : 0000:00:1f.1
54000000-57ffffff : PCI CardBus 0000:03
58000000-5bffffff : PCI CardBus 0000:03
ce900000-de9fffff : PCI Bus 0000:01
  d0000000-d7ffffff : 0000:01:00.0
dea00000-deafffff : PCI Bus 0000:02
  dea00000-dea1ffff : 0000:02:03.0
e0000000-efffffff : 0000:00:00.0
fec00000-fec00fff : pnp 00:09
fee00000-fee00fff : pnp 00:09
ff500000-ff5fffff : PCI Bus 0000:01
  ff5c0000-ff5dffff : 0000:01:00.0
  ff5f0000-ff5fffff : 0000:01:00.0
ff600000-ff6fffff : PCI Bus 0000:02
  ff600000-ff600fff : 0000:02:01.0
    ff600000-ff600fff : yenta_socket
  ff6a0000-ff6bffff : 0000:02:03.0
    ff6a0000-ff6bffff : e1000
  ff6c0000-ff6dffff : 0000:02:03.0
    ff6c0000-ff6dffff : e1000
  ff6f7000-ff6f7fff : 0000:02:04.0
    ff6f7000-ff6f7fff : ohci_hcd
  ff6f8000-ff6fbfff : 0000:02:01.2
  ff6fc000-ff6fcfff : 0000:02:04.1
    ff6fc000-ff6fcfff : ohci_hcd
  ff6fd000-ff6fdfff : 0000:02:02.0
    ff6fd000-ff6fdfff : ipw2200
  ff6fe400-ff6fe4ff : 0000:02:04.2
    ff6fe400-ff6fe4ff : ehci_hcd
  ff6fe800-ff6fefff : 0000:02:01.2
    ff6fe800-ff6fefff : firewire_ohci
  ff6ff000-ff6fffff : 0000:02:01.3
ff7ff400-ff7ff4ff : 0000:00:1f.5
  ff7ff400-ff7ff4ff : Intel 82801DB-ICH4
ff7ff800-ff7ff9ff : 0000:00:1f.5
  ff7ff800-ff7ff9ff : Intel 82801DB-ICH4
ff7ffc00-ff7fffff : 0000:00:1d.7
  ff7ffc00-ff7fffff : ehci_hcd
ff800000-ffbfffff : pnp 00:08
ffc00000-ffffffff : pnp 00:08


Thank you!
	Manuel Lauss

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-05 15:51       ` Manuel Lauss
@ 2009-08-05 16:25         ` Linus Torvalds
  2009-08-05 16:38           ` Linus Torvalds
  0 siblings, 1 reply; 29+ messages in thread
From: Linus Torvalds @ 2009-08-05 16:25 UTC (permalink / raw)
  To: Manuel Lauss
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson



On Wed, 5 Aug 2009, Manuel Lauss wrote:
> 
> On Tue, Aug 04, 2009 at 04:04:16PM -0700, Linus Torvalds wrote:
> > 
> > So I _think_ that you actually are getting the same layout as with 2.6.30, 
> > but with a warning that didn't exist in 2.6.30. Can you verify?
> 
> You're absolutely correct: /proc/iomem on 2.6.30 and 31-rc5+ are identical,
> the only difference being 2.6.30 not complaining about any collisions.

Ok.

So this is not a regression per se.

The warning looks a bit annoying, but in fact I believe that the warning 
is correct, and is showing us a real problem. Well, not "problem" exactly, 
but an issue.

I think that what is happening is that pci_find_parent_resource() may be 
in fact finding another parent resource than the one we strictly want (the 
pre-existing one).

And I think it's brought on by the fact that this is a ROM resource.

I bet that what is happening is:

 - the PCI bridge has a _prefetchable_ bus resource window at

	ff600000-ff6fffff : PCI Bus 0000:02

 - the PCI bridge is a transparent bridge

 - the BIOS has set up the ROM (BAR 6) at 

	ff680000-ff69ffff : 0000:02:03.0

 - We have for some reason marked the ROM as being non-prefetchable.

and what happens is:

 - pci_find_parent_resource() refuses to use the ff600000-ff6fffff PCI 
   bridge resource, because it is marked IORESOURCE_PREFETCH, and the ROM 
   resource is not so marked.

 - But because it's a transparent bridge, once we've iterated over the 
   bridge window resources, we have a couple of resources that point back 
   to the parent of the bridge - the PCI root resources. 

   So now pci_find_parent_resource() will return that instead

 - request_resource() will (correctly) notice that the root resource 
   already has other resources at that address (the PCI brige window!) and 
   will refuse to insert it - leading us to re-allocating the 
   BIOS-provided resource later (to the non-prefetchable bus window)

 - but when we for a short while (incorrectly) used 'insert_resource()' in 
   pci_claim_resource(), it would recurse back into the prefetchable 
   window, and everything would work - because a ROM resource is actually 
   perfectly happy to be in a prefetchable window.

So I think I understand the behavior on your box, and the warning was 
actually correct and useful - our PCI layer is being stupid. We should 
mark ROM resources as being prefetchable.

Hmm.. We do seem to _try_ do exactly that in pci_read_bases(). I wonder 
what I'm missing, and where that bit is then cleared. Or whether we're 
doing that ROM BAR probe somewhere else too..

		Linus

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-05 16:25         ` Linus Torvalds
@ 2009-08-05 16:38           ` Linus Torvalds
  2009-08-05 17:09             ` Manuel Lauss
  0 siblings, 1 reply; 29+ messages in thread
From: Linus Torvalds @ 2009-08-05 16:38 UTC (permalink / raw)
  To: Manuel Lauss
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson



On Wed, 5 Aug 2009, Linus Torvalds wrote:
> 
> So I think I understand the behavior on your box, and the warning was 
> actually correct and useful - our PCI layer is being stupid. We should 
> mark ROM resources as being prefetchable.
> 
> Hmm.. We do seem to _try_ do exactly that in pci_read_bases(). I wonder 
> what I'm missing, and where that bit is then cleared. Or whether we're 
> doing that ROM BAR probe somewhere else too..

Manuel, could you compile your kernel with CONFIG_PCI_DEBUG enabled, and
then boot it with "pci=earlydump", and send me the dmesg of a kernel boot? 

You may need to make sure that CONFIG_LOG_BUF_SHIFT is big enough to get 
it all, and perhaps use "dmesg -s 1000000" (some versions of dmesg will 
truncate the result to 64kB or something by default, and depending on just 
how verbose your boot ends up being, you migth lose things).

			Linus

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-05 16:38           ` Linus Torvalds
@ 2009-08-05 17:09             ` Manuel Lauss
  2009-08-07 18:15               ` Linus Torvalds
  0 siblings, 1 reply; 29+ messages in thread
From: Manuel Lauss @ 2009-08-05 17:09 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson

Hi Linus,

On Wed, Aug 05, 2009 at 09:38:52AM -0700, Linus Torvalds wrote:
> On Wed, 5 Aug 2009, Linus Torvalds wrote:
> > 
> > So I think I understand the behavior on your box, and the warning was 
> > actually correct and useful - our PCI layer is being stupid. We should 
> > mark ROM resources as being prefetchable.
> > 
> > Hmm.. We do seem to _try_ do exactly that in pci_read_bases(). I wonder 
> > what I'm missing, and where that bit is then cleared. Or whether we're 
> > doing that ROM BAR probe somewhere else too..
> 
> Manuel, could you compile your kernel with CONFIG_PCI_DEBUG enabled, and
> then boot it with "pci=earlydump", and send me the dmesg of a kernel boot? 

Linux version 2.6.31-rc5-00246-g90bc1a6 (mano@scarran) (gcc version 4.3.3 (Gentoo 4.3.3-r2 p1.1) ) #1 Wed Aug 5 18:57:04 CEST 2009
KERNEL supported cpus:
  Intel GenuineIntel
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003ff40000 (usable)
 BIOS-e820: 000000003ff40000 - 000000003ff50000 (ACPI data)
 BIOS-e820: 000000003ff50000 - 0000000040000000 (ACPI NVS)
pci 0000:00:00.0 config space:
  00: 86 80 40 33 06 00 90 20 03 00 00 06 00 00 00 00
  10: 08 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 87 81
  30: 00 00 00 00 e4 00 00 00 00 00 00 00 00 00 00 00
  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 27 00 00
  60: 08 10 18 20 00 00 00 00 00 00 00 00 00 00 00 00
  70: 03 03 00 00 00 00 00 00 08 00 02 2d 71 32 40 30
  80: 71 00 80 05 00 00 00 00 00 10 01 00 00 00 00 00
  90: 10 11 11 00 00 33 33 00 41 19 00 00 00 0a 38 00
  a0: 02 00 20 00 17 02 00 1f 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 44 40 50 11 00 40 05 06 00 00 00 00 00 00 00 00
  d0: 02 28 00 0e 0b 00 00 30 00 00 31 b5 00 00 02 00
  e0: 00 00 00 00 09 a0 04 41 00 00 00 00 00 00 00 00
  f0: 00 00 01 00 74 f8 20 80 38 0f 21 00 04 00 00 00
pci 0000:00:01.0 config space:
  00: 86 80 41 33 07 01 a0 00 03 00 04 06 00 40 01 00
  10: 00 00 00 00 00 00 00 00 00 01 01 40 c0 c0 a0 22
  20: 50 ff 50 ff 90 ce 90 de 00 00 00 00 00 00 00 00
  30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00
  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
pci 0000:00:1d.0 config space:
  00: 86 80 c2 24 05 00 80 02 03 00 03 0c 00 00 80 00
  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  20: 01 e8 00 00 00 00 00 00 00 00 00 00 4d 10 88 81
  30: 00 00 00 00 00 00 00 00 00 00 00 00 09 01 00 00
  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 30 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
pci 0000:00:1d.1 config space:
  00: 86 80 c4 24 05 00 80 02 03 00 03 0c 00 00 00 00
  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  20: 81 e8 00 00 00 00 00 00 00 00 00 00 4d 10 88 81
  30: 00 00 00 00 00 00 00 00 00 00 00 00 04 02 00 00
  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 30 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
pci 0000:00:1d.2 config space:
  00: 86 80 c7 24 05 00 80 02 03 00 03 0c 00 00 00 00
  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  20: 01 ec 00 00 00 00 00 00 00 00 00 00 4d 10 88 81
  30: 00 00 00 00 00 00 00 00 00 00 00 00 07 03 00 00
  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 30 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
pci 0000:00:1d.7 config space:
  00: 86 80 cd 24 06 00 90 02 03 20 03 0c 00 00 00 00
  10: 00 fc 7f ff 00 00 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 88 81
  30: 00 00 00 00 50 00 00 00 00 00 00 00 03 04 00 00
  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 01 58 c2 c9 00 00 00 00 0a 00 80 20 00 00 00 00
  60: 20 20 7f 00 00 00 00 00 01 00 00 00 00 00 00 c0
  70: 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 10 00 3f 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 78 bf 1f 00 88 83 00 00 60 0f 00 00 06 00 00 00
pci 0000:00:1e.0 config space:
  00: 86 80 48 24 07 01 80 80 83 00 04 06 00 00 01 00
  10: 00 00 00 00 00 00 00 00 00 02 02 40 d0 d0 80 22
  20: 60 ff 60 ff a0 de a0 de 00 00 00 00 00 00 00 00
  30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 02
  40: 02 28 20 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 02 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 10 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 01 00 02 00 00 00 c0 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 2c 4a
pci 0000:00:1f.0 config space:
  00: 86 80 cc 24 0f 00 80 02 03 00 01 06 00 00 80 00
  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  40: 01 04 00 00 10 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 01 05 00 00 10 00 00 00
  60: 09 09 07 04 90 00 00 00 09 80 05 03 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: ff fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 20 02 00 00 01 00 00 00 0d 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 fe 00 00 00 00 00 00 01 00 00 00
  d0: 06 20 00 00 02 cf 00 00 04 00 00 00 00 00 00 00
  e0: 10 00 00 ff 00 00 00 00 33 22 11 01 00 00 67 45
  f0: 00 00 00 00 00 00 00 00 60 0f 03 00 00 00 80 00
pci 0000:00:1f.1 config space:
  00: 86 80 ca 24 05 00 80 02 03 8a 01 01 00 00 00 00
  10: 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
  20: a1 ff 00 00 00 00 00 00 00 00 00 00 4d 10 88 81
  30: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00
  40: 07 e3 07 e3 00 00 00 00 05 00 01 02 00 00 00 00
  50: 00 00 00 00 31 14 00 00 00 00 00 00 00 00 00 00
  60: 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
pci 0000:00:1f.3 config space:
  00: 86 80 c3 24 01 00 80 02 03 00 05 0c 00 00 00 00
  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  20: 41 05 00 00 00 00 00 00 00 00 00 00 4d 10 88 81
  30: 00 00 00 00 00 00 00 00 00 00 00 00 09 02 00 00
  40: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
pci 0000:00:1f.5 config space:
  00: 86 80 c5 24 07 00 90 02 03 00 01 04 00 00 00 00
  10: 01 ee 00 00 01 e0 00 00 00 f8 7f ff 00 f4 7f ff
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 8b 81
  30: 00 00 00 00 50 00 00 00 00 00 00 00 09 02 00 00
  40: 09 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 01 00 c2 c9 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
pci 0000:00:1f.6 config space:
  00: 86 80 c6 24 05 00 90 02 03 00 03 07 00 00 00 00
  10: 01 e4 00 00 81 e0 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 8c 81
  30: 00 00 00 00 50 00 00 00 00 00 00 00 09 02 00 00
  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 01 00 c2 c9 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
pci 0000:01:00.0 config space:
  00: 02 10 50 4e 07 00 b0 02 00 00 00 03 10 40 00 00
  10: 08 00 00 d0 01 c8 00 00 00 00 5f ff 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 8a 81
  30: 00 00 5c ff 58 00 00 00 00 00 00 00 09 01 08 00
  40: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 8a 81
  50: 01 00 02 06 00 00 00 00 02 50 20 00 17 02 00 4f
  60: 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
pci 0000:02:01.0 config space:
  00: 4c 10 8e ac 07 00 10 02 00 00 07 06 10 40 82 00
  10: 00 00 00 00 a0 00 00 02 00 00 00 20 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  30: 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 40 03
  40: 4d 10 8f 81 e1 03 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 21 f0 44 28 19 00 90 05 00 00 1f 00 22 1b 00 01
  90: c0 02 64 60 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 01 00 22 7e 00 00 c0 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
pci 0000:02:01.2 config space:
  00: 4c 10 2e 80 16 00 10 02 00 10 00 0c 10 40 80 00
  10: 00 e8 6f ff 00 80 6f ff 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 8f 81
  30: 00 00 00 00 44 00 00 00 00 00 00 00 03 03 03 04
  40: 00 00 00 00 01 00 02 7e 00 80 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00
  f0: 00 00 00 00 82 10 00 00 4d 10 8f 81 00 00 00 00
pci 0000:02:01.3 config space:
  00: 4c 10 8f ac 06 00 10 02 00 00 80 01 10 40 80 00
  10: 00 f0 6f ff 00 00 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 90 81
  30: 00 00 00 00 44 00 00 00 00 00 00 00 05 02 07 04
  40: 00 00 00 00 01 00 02 7e 00 00 00 00 20 00 00 00
  50: 4d 10 90 81 05 03 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
pci 0000:02:02.0 config space:
  00: 86 80 20 42 16 00 90 02 05 00 80 02 10 40 00 00
  10: 00 d0 6f ff 00 00 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 53 27
  30: 00 00 00 00 dc 00 00 00 00 00 00 00 07 01 03 18
  40: 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 22 c8
  e0: 00 20 00 13 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
pci 0000:02:03.0 config space:
  00: 86 80 76 10 17 00 30 02 00 00 00 02 10 40 00 00
  10: 00 00 6c ff 00 00 6a ff 01 dc 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 8e 81
  30: 00 00 68 ff dc 00 00 00 00 00 00 00 09 01 ff 00
  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 e4 22 c8
  e0: 00 21 00 28 07 00 02 00 00 00 40 00 00 00 00 00
  f0: 05 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00
pci 0000:02:04.0 config space:
  00: 33 10 35 00 16 00 10 02 43 10 03 0c 10 40 80 00
  10: 00 70 6f ff 00 00 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 9a 81
  30: 00 00 00 00 40 00 00 00 00 00 00 00 09 01 01 2a
  40: 01 00 02 fe 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 05 33 b0 6c 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
pci 0000:02:04.1 config space:
  00: 33 10 35 00 16 00 10 02 43 10 03 0c 10 40 00 00
  10: 00 c0 6f ff 00 00 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 9a 81
  30: 00 00 00 00 40 00 00 00 00 00 00 00 09 02 01 2a
  40: 01 00 02 fe 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
pci 0000:02:04.2 config space:
  00: 33 10 e0 00 16 00 10 02 04 20 03 0c 10 40 00 00
  10: 00 e4 6f ff 00 00 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 9a 81
  30: 00 00 00 00 40 00 00 00 00 00 00 00 07 03 10 22
  40: 01 00 02 fe 00 00 00 00 00 00 00 00 00 00 00 00
  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  60: 20 20 3f 00 00 00 00 00 00 00 00 00 00 00 00 00
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 05 33 b0 6c 00 00 00 00 01 00 00 00 00 00 00 c0
  f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
DMI present.
AMI BIOS detected: BIOS may corrupt low RAM, working around it.
e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
last_pfn = 0x3ff40 max_arch_pfn = 0x100000
MTRR default type: uncachable
MTRR fixed ranges enabled:
  00000-9FFFF write-back
  A0000-BFFFF uncachable
  C0000-CFFFF write-protect
  D0000-EFFFF uncachable
  F0000-FFFFF write-protect
MTRR variable ranges enabled:
  0 base 000000000 mask FC0000000 write-back
  1 disabled
  2 disabled
  3 disabled
  4 disabled
  5 disabled
  6 disabled
  7 disabled
PAT not supported by CPU.
Scanning 0 areas for low memory corruption
modified physical RAM map:
 modified: 0000000000000000 - 0000000000010000 (reserved)
 modified: 0000000000010000 - 000000000009fc00 (usable)
 modified: 000000000009fc00 - 00000000000a0000 (reserved)
 modified: 00000000000e0000 - 0000000000100000 (reserved)
 modified: 0000000000100000 - 000000003ff40000 (usable)
 modified: 000000003ff40000 - 000000003ff50000 (ACPI data)
 modified: 000000003ff50000 - 0000000040000000 (ACPI NVS)
initial memory mapped : 0 - 01c00000
init_memory_mapping: 0000000000000000-000000003ff40000
 0000000000 - 0000400000 page 4k
 0000400000 - 003fc00000 page 2M
 003fc00000 - 003ff40000 page 4k
kernel direct mapping tables up to 3ff40000 @ 10000-15000
ACPI: RSDP 000f53f0 00014 (v00 SONY  )
ACPI: RSDT 3ff40000 0002C (v01   SONY       F1 20040928 MSFT 00000097)
ACPI: FACP 3ff40200 00084 (v02   SONY       F1 20040928 MSFT 00000097)
ACPI: DSDT 3ff40500 03B58 (v01   SONY       F1 20040928 MSFT 0100000D)
ACPI: FACS 3ff50000 00040
ACPI: OEMB 3ff50040 00053 (v01   SONY       F1 20040928 MSFT 00000097)
1023MB LOWMEM available.
  mapped low ram: 0 - 3ff40000
  low ram: 0 - 3ff40000
  node 0 low ram: 00000000 - 3ff40000
  node 0 bootmap 00011000 - 00018fe8
(6 early reservations) ==> bootmem [0000000000 - 003ff40000]
  #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
  #1 [0001000000 - 00016999b4]    TEXT DATA BSS ==> [0001000000 - 00016999b4]
  #2 [000009fc00 - 0000100000]    BIOS reserved ==> [000009fc00 - 0000100000]
  #3 [000169a000 - 00016a1104]              BRK ==> [000169a000 - 00016a1104]
  #4 [0000010000 - 0000011000]          PGTABLE ==> [0000010000 - 0000011000]
  #5 [0000011000 - 0000019000]          BOOTMAP ==> [0000011000 - 0000019000]
Zone PFN ranges:
  DMA      0x00000010 -> 0x00001000
  Normal   0x00001000 -> 0x0003ff40
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0: 0x00000010 -> 0x0000009f
    0: 0x00000100 -> 0x0003ff40
On node 0 totalpages: 261839
free_area_init_node: node 0, pgdat b159bea4, node_mem_map b16a2200
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 3951 pages, LIFO batch:0
  Normal zone: 2015 pages used for memmap
  Normal zone: 255841 pages, LIFO batch:31
Allocating PCI resources starting at 40000000 (gap: 40000000:c0000000)
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 259792
Kernel command line: root=/dev/sda2 rootfstype=xfs hpet=force dyntick=enable radeon.modeset=0 pci=earlydump
PID hash table entries: 4096 (order: 12, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
Memory: 1031336k/1047808k available (3914k kernel code, 15800k reserved, 1860k data, 252k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xfffe5000 - 0xfffff000   ( 104 kB)
    vmalloc : 0xf0740000 - 0xfffe3000   ( 248 MB)
    lowmem  : 0xb0000000 - 0xeff40000   (1023 MB)
      .init : 0xb15a6000 - 0xb15e5000   ( 252 kB)
      .data : 0xb13d2be9 - 0xb15a3cd0   (1860 kB)
      .text : 0xb1000000 - 0xb13d2be9   (3914 kB)
Checking if this processor honours the WP bit even in supervisor mode...Ok.
SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:16
Fast TSC calibration using PIT
Detected 1794.313 MHz processor.
Console: colour VGA+ 80x25
console [tty0] enabled
Calibrating delay loop (skipped), value calculated using timer frequency.. 3590.15 BogoMIPS (lpj=5981043)
Mount-cache hash table entries: 512
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 2048K
mce: CPU supports 5 MCE banks
CPU: Intel(R) Pentium(R) M processor 1.80GHz stepping 06
Checking 'hlt' instruction... OK.
ACPI: Core revision 20090521
ACPI: setting ELCR to 0200 (from 02b8)
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xf0031, last bus=2
PCI: Using configuration type 1 for base access
bio: create slab <bio-0> at 0
ACPI: EC: Look up EC in DSDT
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using PIC for interrupt routing
ACPI: EC: non-query interrupt received, switching to interrupt mode
ACPI: EC: GPE = 0x1c, I/O: command/status = 0x66, data = 0x62
ACPI: EC: driver started in interrupt mode
ACPI: No dock devices found.
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Scanning bus 0000:00
pci 0000:00:00.0: found [8086:3340] class 000600 header type 00
pci 0000:00:00.0: reg 10 32bit mmio: [0xe0000000-0xefffffff]
pci 0000:00:00.0: calling asus_hides_smbus_hostbridge+0x0/0x1f3
pci 0000:00:00.0: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:00.0: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:01.0: found [8086:3341] class 000604 header type 01
pci 0000:00:01.0: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:01.0: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1d.0: found [8086:24c2] class 000c03 header type 00
pci 0000:00:1d.0: reg 20 io port: [0xe800-0xe81f]
pci 0000:00:1d.0: calling asus_hides_smbus_hostbridge+0x0/0x1f3
pci 0000:00:1d.0: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:1d.0: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1d.1: found [8086:24c4] class 000c03 header type 00
pci 0000:00:1d.1: reg 20 io port: [0xe880-0xe89f]
pci 0000:00:1d.1: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:1d.1: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1d.2: found [8086:24c7] class 000c03 header type 00
pci 0000:00:1d.2: reg 20 io port: [0xec00-0xec1f]
pci 0000:00:1d.2: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:1d.2: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1d.7: found [8086:24cd] class 000c03 header type 00
pci 0000:00:1d.7: reg 10 32bit mmio: [0xff7ffc00-0xff7fffff]
pci 0000:00:1d.7: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:1d.7: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
pci 0000:00:1d.7: PME# disabled
pci 0000:00:1e.0: found [8086:2448] class 000604 header type 01
pci 0000:00:1e.0: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:1e.0: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1f.0: found [8086:24cc] class 000601 header type 00
pci 0000:00:1f.0: calling old_ich_force_enable_hpet_user+0x0/0xf
pci 0000:00:1f.0: Force enabled HPET at 0xfed00000
pci 0000:00:1f.0: calling asus_hides_smbus_lpc+0x0/0xa2
pci 0000:00:1f.0: calling quirk_ich4_lpc_acpi+0x0/0x5f
pci 0000:00:1f.0: quirk: region 0400-047f claimed by ICH4 ACPI/GPIO/TCO
pci 0000:00:1f.0: quirk: region 0500-053f claimed by ICH4 GPIO
pci 0000:00:1f.0: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:1f.0: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1f.1: found [8086:24ca] class 000101 header type 00
pci 0000:00:1f.1: reg 10 io port: [0x00-0x07]
pci 0000:00:1f.1: reg 14 io port: [0x00-0x03]
pci 0000:00:1f.1: reg 18 io port: [0x00-0x07]
pci 0000:00:1f.1: reg 1c io port: [0x00-0x03]
pci 0000:00:1f.1: reg 20 io port: [0xffa0-0xffaf]
pci 0000:00:1f.1: reg 24 32bit mmio: [0x000000-0x0003ff]
pci 0000:00:1f.1: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:1f.1: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1f.3: found [8086:24c3] class 000c05 header type 00
pci 0000:00:1f.3: reg 20 io port: [0x540-0x55f]
pci 0000:00:1f.3: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:1f.3: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1f.5: found [8086:24c5] class 000401 header type 00
pci 0000:00:1f.5: reg 10 io port: [0xee00-0xeeff]
pci 0000:00:1f.5: reg 14 io port: [0xe000-0xe03f]
pci 0000:00:1f.5: reg 18 32bit mmio: [0xff7ff800-0xff7ff9ff]
pci 0000:00:1f.5: reg 1c 32bit mmio: [0xff7ff400-0xff7ff4ff]
pci 0000:00:1f.5: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:1f.5: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1f.5: PME# supported from D0 D3hot D3cold
pci 0000:00:1f.5: PME# disabled
pci 0000:00:1f.6: found [8086:24c6] class 000703 header type 00
pci 0000:00:1f.6: reg 10 io port: [0xe400-0xe4ff]
pci 0000:00:1f.6: reg 14 io port: [0xe080-0xe0ff]
pci 0000:00:1f.6: calling quirk_resource_alignment+0x0/0x163
pci 0000:00:1f.6: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:00:1f.6: PME# supported from D0 D3hot D3cold
pci 0000:00:1f.6: PME# disabled
PCI: Fixups for bus 0000:00
pci 0000:00:01.0: scanning behind bridge, config 010100, pass 0
PCI: Scanning bus 0000:01
pci 0000:01:00.0: found [1002:4e50] class 000300 header type 00
pci 0000:01:00.0: calling quirk_no_ata_d3+0x0/0x20
pci 0000:01:00.0: reg 10 32bit mmio: [0xd0000000-0xd7ffffff]
pci 0000:01:00.0: reg 14 io port: [0xc800-0xc8ff]
pci 0000:01:00.0: reg 18 32bit mmio: [0xff5f0000-0xff5fffff]
pci 0000:01:00.0: reg 30 32bit mmio: [0xff5c0000-0xff5dffff]
pci 0000:01:00.0: calling quirk_resource_alignment+0x0/0x163
pci 0000:01:00.0: supports D1 D2
PCI: Fixups for bus 0000:01
pci 0000:00:01.0: bridge io port: [0xc000-0xcfff]
pci 0000:00:01.0: bridge 32bit mmio: [0xff500000-0xff5fffff]
pci 0000:00:01.0: bridge 32bit mmio pref: [0xce900000-0xde9fffff]
PCI: Bus scan for 0000:01 returning with max=01
pci 0000:00:1e.0: scanning behind bridge, config 020200, pass 0
PCI: Scanning bus 0000:02
pci 0000:02:01.0: found [104c:ac8e] class 000607 header type 02
pci 0000:02:01.0: reg 10 32bit mmio: [0x000000-0x000fff]
pci 0000:02:01.0: calling quirk_resource_alignment+0x0/0x163
pci 0000:02:01.0: supports D1 D2
pci 0000:02:01.0: PME# supported from D0 D1 D2 D3hot
pci 0000:02:01.0: PME# disabled
pci 0000:02:01.2: found [104c:802e] class 000c00 header type 00
pci 0000:02:01.2: reg 10 32bit mmio: [0xff6fe800-0xff6fefff]
pci 0000:02:01.2: reg 14 32bit mmio: [0xff6f8000-0xff6fbfff]
pci 0000:02:01.2: calling quirk_resource_alignment+0x0/0x163
pci 0000:02:01.2: supports D1 D2
pci 0000:02:01.2: PME# supported from D0 D1 D2 D3hot
pci 0000:02:01.2: PME# disabled
pci 0000:02:01.3: found [104c:ac8f] class 000180 header type 00
pci 0000:02:01.3: reg 10 32bit mmio: [0xff6ff000-0xff6fffff]
pci 0000:02:01.3: calling quirk_resource_alignment+0x0/0x163
pci 0000:02:01.3: supports D1 D2
pci 0000:02:01.3: PME# supported from D0 D1 D2 D3hot
pci 0000:02:01.3: PME# disabled
pci 0000:02:02.0: found [8086:4220] class 000280 header type 00
pci 0000:02:02.0: reg 10 32bit mmio: [0xff6fd000-0xff6fdfff]
pci 0000:02:02.0: calling quirk_resource_alignment+0x0/0x163
pci 0000:02:02.0: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:02:02.0: PME# supported from D0 D3hot D3cold
pci 0000:02:02.0: PME# disabled
pci 0000:02:03.0: found [8086:1076] class 000200 header type 00
pci 0000:02:03.0: reg 10 32bit mmio: [0xff6c0000-0xff6dffff]
pci 0000:02:03.0: reg 14 32bit mmio: [0xff6a0000-0xff6bffff]
pci 0000:02:03.0: reg 18 io port: [0xdc00-0xdc3f]
pci 0000:02:03.0: reg 30 32bit mmio: [0xff680000-0xff69ffff]
pci 0000:02:03.0: calling quirk_resource_alignment+0x0/0x163
pci 0000:02:03.0: calling pci_fixup_transparent_bridge+0x0/0x27
pci 0000:02:03.0: PME# supported from D0 D3hot D3cold
pci 0000:02:03.0: PME# disabled
pci 0000:02:04.0: found [1033:0035] class 000c03 header type 00
pci 0000:02:04.0: reg 10 32bit mmio: [0xff6f7000-0xff6f7fff]
pci 0000:02:04.0: calling quirk_resource_alignment+0x0/0x163
pci 0000:02:04.0: supports D1 D2
pci 0000:02:04.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:02:04.0: PME# disabled
pci 0000:02:04.1: found [1033:0035] class 000c03 header type 00
pci 0000:02:04.1: reg 10 32bit mmio: [0xff6fc000-0xff6fcfff]
pci 0000:02:04.1: calling quirk_resource_alignment+0x0/0x163
pci 0000:02:04.1: supports D1 D2
pci 0000:02:04.1: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:02:04.1: PME# disabled
pci 0000:02:04.2: found [1033:00e0] class 000c03 header type 00
pci 0000:02:04.2: reg 10 32bit mmio: [0xff6fe400-0xff6fe4ff]
pci 0000:02:04.2: calling quirk_resource_alignment+0x0/0x163
pci 0000:02:04.2: supports D1 D2
pci 0000:02:04.2: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:02:04.2: PME# disabled
PCI: Fixups for bus 0000:02
pci 0000:00:1e.0: transparent bridge
pci 0000:00:1e.0: bridge io port: [0xd000-0xdfff]
pci 0000:00:1e.0: bridge 32bit mmio: [0xff600000-0xff6fffff]
pci 0000:00:1e.0: bridge 32bit mmio pref: [0xdea00000-0xdeafffff]
pci 0000:02:01.0: scanning behind bridge, config 000000, pass 0
pci 0000:02:01.0: bus configuration invalid, reconfiguring
pci 0000:02:01.0: scanning behind bridge, config 000000, pass 1
PCI: Bus #03 (-#06) is partially hidden behind transparent bridge #02 (-#02)
PCI: Bus scan for 0000:02 returning with max=06
pci 0000:00:01.0: scanning behind bridge, config 010100, pass 1
pci 0000:00:1e.0: scanning behind bridge, config 020200, pass 1
PCI: Bus scan for 0000:00 returning with max=06
pci_bus 0000:00: on NUMA node 0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P1._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P2._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 *9)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *9)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 *7 9)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 *4 5 6 7 9)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 *9)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 *5 6 7 9)
ACPI: PCI Interrupt Link [LNKH] (IRQs *3 4 5 6 7 9)
SCSI subsystem initialized
libata version 3.00 loaded.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Using ACPI for IRQ routing
Bluetooth: Core ver 2.15
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
cfg80211: Calling CRDA to update world regulatory domain
hpet clockevent registered
hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
hpet0: 3 comparators, 64-bit 14.318180 MHz counter
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 11 devices
ACPI: ACPI bus type pnp unregistered
system 00:07: ioport range 0x4d0-0x4d1 has been reserved
system 00:07: ioport range 0xfe00-0xfe01 has been reserved
system 00:08: iomem range 0xff800000-0xffbfffff has been reserved
system 00:08: iomem range 0xffc00000-0xffffffff has been reserved
system 00:09: ioport range 0x400-0x47f has been reserved
system 00:09: ioport range 0x500-0x53f has been reserved
system 00:09: iomem range 0xfec00000-0xfec00fff has been reserved
system 00:09: iomem range 0xfee00000-0xfee00fff has been reserved
pci 0000:02:03.0: BAR 6: address space collision on of device [0xff680000-0xff69ffff]
pci 0000:00:1f.1: BAR 5: got res [0x40000000-0x400003ff] bus [0x40000000-0x400003ff] flags 0x20200
pci 0000:00:1f.1: BAR 5: moved to bus [0x40000000-0x400003ff] flags 0x20200
pci 0000:00:01.0: PCI bridge, secondary bus 0000:01
pci 0000:00:01.0:   IO window: 0xc000-0xcfff
pci 0000:00:01.0:   MEM window: 0xff500000-0xff5fffff
pci 0000:00:01.0:   PREFETCH window: 0xce900000-0xde9fffff
pci 0000:02:03.0: BAR 6: got res [0xdea00000-0xdea1ffff] bus [0xdea00000-0xdea1ffff] flags 0x27200
pci 0000:02:01.0: BAR 0: got res [0xff600000-0xff600fff] bus [0xff600000-0xff600fff] flags 0x20200
pci 0000:02:01.0: BAR 0: moved to bus [0xff600000-0xff600fff] flags 0x20200
pci 0000:02:01.0: CardBus bridge, secondary bus 0000:03
pci 0000:02:01.0:   IO window: 0x00d000-0x00d0ff
pci 0000:02:01.0:   IO window: 0x00d400-0x00d4ff
pci 0000:02:01.0:   PREFETCH window: 0x44000000-0x47ffffff
pci 0000:02:01.0:   MEM window: 0x48000000-0x4bffffff
pci 0000:00:1e.0: PCI bridge, secondary bus 0000:02
pci 0000:00:1e.0:   IO window: 0xd000-0xdfff
pci 0000:00:1e.0:   MEM window: 0xff600000-0xff6fffff
pci 0000:00:1e.0:   PREFETCH window: 0xdea00000-0xdeafffff
pci 0000:00:1e.0: setting latency timer to 64
ACPI: PCI Interrupt Link [LNKF] enabled at IRQ 9
PCI: setting IRQ 9 as level-triggered
pci 0000:02:01.0: PCI INT A -> Link[LNKF] -> GSI 9 (level, low) -> IRQ 9
pci_bus 0000:00: resource 0 io:  [0x00-0xffff]
pci_bus 0000:00: resource 1 mem: [0x000000-0xffffffff]
pci_bus 0000:01: resource 0 io:  [0xc000-0xcfff]
pci_bus 0000:01: resource 1 mem: [0xff500000-0xff5fffff]
pci_bus 0000:01: resource 2 pref mem [0xce900000-0xde9fffff]
pci_bus 0000:02: resource 0 io:  [0xd000-0xdfff]
pci_bus 0000:02: resource 1 mem: [0xff600000-0xff6fffff]
pci_bus 0000:02: resource 2 pref mem [0xdea00000-0xdeafffff]
pci_bus 0000:02: resource 3 io:  [0x00-0xffff]
pci_bus 0000:02: resource 4 mem: [0x000000-0xffffffff]
pci_bus 0000:03: resource 0 io:  [0xd000-0xd0ff]
pci_bus 0000:03: resource 1 io:  [0xd400-0xd4ff]
pci_bus 0000:03: resource 2 pref mem [0x44000000-0x47ffffff]
pci_bus 0000:03: resource 3 mem: [0x48000000-0x4bffffff]
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
NET: Registered protocol family 1
cpu0(1) debug files 135
microcode: CPU0 sig=0x6d6, pf=0x20, revision=0x17
Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
Scanning for low memory corruption every 60 seconds
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
SGI XFS with security attributes, no debug enabled
msgmni has been set to 2014
alg: No test for stdrng (krng)
alg: No test for stdrng (ansi_cprng)
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
pci 0000:00:00.0: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:00.0: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:00.0: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:00.0: calling pci_fixup_video+0x0/0x91
pci 0000:00:01.0: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:01.0: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:01.0: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:01.0: calling pci_fixup_video+0x0/0x91
pci 0000:00:1d.0: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:1d.0: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:1d.0: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:1d.0: calling pci_fixup_video+0x0/0x91
pci 0000:00:1d.1: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:1d.1: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:1d.1: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:1d.1: calling pci_fixup_video+0x0/0x91
pci 0000:00:1d.2: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:1d.2: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:1d.2: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:1d.2: calling pci_fixup_video+0x0/0x91
pci 0000:00:1d.7: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:1d.7: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:1d.7: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:1d.7: calling pci_fixup_video+0x0/0x91
pci 0000:00:1e.0: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:1e.0: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:1e.0: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:1e.0: calling pci_fixup_video+0x0/0x91
pci 0000:00:1f.0: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:1f.0: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:1f.0: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:1f.0: calling pci_fixup_video+0x0/0x91
pci 0000:00:1f.1: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:1f.1: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:1f.1: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:1f.1: calling pci_fixup_video+0x0/0x91
pci 0000:00:1f.3: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:1f.3: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:1f.3: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:1f.3: calling pci_fixup_video+0x0/0x91
pci 0000:00:1f.5: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:1f.5: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:1f.5: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:1f.5: calling pci_fixup_video+0x0/0x91
pci 0000:00:1f.6: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:00:1f.6: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:00:1f.6: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:00:1f.6: calling pci_fixup_video+0x0/0x91
pci 0000:01:00.0: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:01:00.0: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:01:00.0: calling pci_fixup_video+0x0/0x91
pci 0000:01:00.0: Boot video device
pci 0000:02:01.0: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:02:01.0: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:02:01.0: calling pci_fixup_video+0x0/0x91
pci 0000:02:01.2: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:02:01.2: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:02:01.2: calling pci_fixup_video+0x0/0x91
pci 0000:02:01.3: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:02:01.3: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:02:01.3: calling pci_fixup_video+0x0/0x91
pci 0000:02:02.0: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:02:02.0: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:02:02.0: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:02:02.0: calling pci_fixup_video+0x0/0x91
pci 0000:02:03.0: calling quirk_e100_interrupt+0x0/0x14f
pci 0000:02:03.0: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:02:03.0: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:02:03.0: calling pci_fixup_video+0x0/0x91
pci 0000:02:04.0: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:02:04.0: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:02:04.0: calling pci_fixup_video+0x0/0x91
pci 0000:02:04.1: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:02:04.1: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:02:04.1: calling pci_fixup_video+0x0/0x91
pci 0000:02:04.2: calling quirk_cardbus_legacy+0x0/0x1d
pci 0000:02:04.2: calling quirk_usb_early_handoff+0x0/0x55b
pci 0000:02:04.2: calling pci_fixup_video+0x0/0x91
ACPI: AC Adapter [ACAD] (on-line)
input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input0
ACPI: Power Button [PWRB]
input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input1
ACPI: Lid Switch [LID]
Marking TSC unstable due to TSC halts in idle
ACPI: CPU0 (power states: C1[C1] C2[C2])
processor LNXCPU:00: registered as cooling_device0
ACPI: Processor [CPU0] (supports 8 throttling states)
Switched to high resolution mode on CPU 0
thermal LNXTHERM:01: registered as thermal_zone0
ACPI: Thermal Zone [ATF0] (57 C)
sonypi: Sony Programmable I/O Controller Driver v1.26.
Platform driver 'sonypi' needs updating - please use dev_pm_ops
ACPI: Battery Slot [BAT1] (battery present)
sonypi: please try the sony-laptop module instead and report failures, see also http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
sonypi: detected type2 model, verbose = 0, fnkeyinit = off, camera = off, compat = off, mask = 0xffffffff, useinput = on, acpi = on
sonypi: enabled at irq=11, port1=0x1080, port2=0x1084
sonypi: device allocated minor is 61
input: Sony Vaio Jogdial as /devices/platform/sonypi/input/input2
input: Sony Vaio Keys as /devices/platform/sonypi/input/input3
Non-volatile memory driver v1.3
Linux agpgart interface v0.103
agpgart-intel 0000:00:00.0: Intel 855PM Chipset
agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xe0000000
[drm] Initialized drm 1.1.0 20060810
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 9
pci 0000:01:00.0: PCI INT A -> Link[LNKE] -> GSI 9 (level, low) -> IRQ 9
[drm] Initialized radeon 1.30.0 20080528 for 0000:01:00.0 on minor 0
loop: module loaded
ACPI: PCI Interrupt Link [LNKG] enabled at IRQ 5
PCI: setting IRQ 5 as level-triggered
tifm_7xx1 0000:02:01.3: PCI INT B -> Link[LNKG] -> GSI 5 (level, low) -> IRQ 5
ata_piix 0000:00:1f.1: version 2.13
ata_piix 0000:00:1f.1: enabling device (0005 -> 0007)
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 7
PCI: setting IRQ 7 as level-triggered
ata_piix 0000:00:1f.1: PCI INT A -> Link[LNKC] -> GSI 7 (level, low) -> IRQ 7
ata_piix 0000:00:1f.1: setting latency timer to 64
scsi0 : ata_piix
scsi1 : ata_piix
ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xffa0 irq 14
ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xffa8 irq 15
Intel(R) PRO/1000 Network Driver - version 7.3.21-k3-NAPI
Copyright (c) 1999-2006 Intel Corporation.
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 9
e1000 0000:02:03.0: PCI INT A -> Link[LNKB] -> GSI 9 (level, low) -> IRQ 9
tifm_core: MMC/SD card detected in socket 0:0
e1000: 0000:02:03.0: e1000_probe: (PCI:33MHz:32-bit) 08:00:46:d8:b6:1d
ata2.00: ATAPI: SONY    DVD RW DW-U55A, 2.5b, max UDMA/33
ata1.00: ATA-7: ST910021A, 3.04, max UDMA/100
ata1.00: 195371568 sectors, multi 16: LBA48 
ata2.00: configured for UDMA/33
ata1.00: configured for UDMA/100
scsi 0:0:0:0: Direct-Access     ATA      ST910021A        3.04 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 195371568 512-byte logical blocks: (100 GB/93.1 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda:
sd 0:0:0:0: Attached scsi generic sg0 type 0
scsi 1:0:0:0: CD-ROM            SONY     DVD RW DW-U55A   2.5b PQ: 0 ANSI: 5
sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
sr 1:0:0:0: Attached scsi CD-ROM sr0
sr 1:0:0:0: Attached scsi generic sg1 type 5
 sda1 sda2 sda3 sda4 < sda5 sda6 sda7 sda8 >
sd 0:0:0:0: [sda] Attached SCSI disk
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 3
PCI: setting IRQ 3 as level-triggered
firewire_ohci 0000:02:01.2: PCI INT C -> Link[LNKH] -> GSI 3 (level, low) -> IRQ 3
firewire_ohci: Added fw-ohci device 0000:02:01.2, OHCI version 1.10
yenta_cardbus 0000:02:01.0: CardBus bridge found [104d:818f]
yenta_cardbus 0000:02:01.0: Using CSCINT to route CSC interrupts to PCI
yenta_cardbus 0000:02:01.0: Routing CardBus interrupts to PCI
yenta_cardbus 0000:02:01.0: TI: mfunc 0x01001b22, devctl 0x64
yenta_cardbus 0000:02:01.0: ISA IRQ mask 0x0450, PCI irq 9
yenta_cardbus 0000:02:01.0: Socket status: 30000006
pci_bus 0000:02: Raising subordinate bus# of parent bus (#02) from #02 to #06
yenta_cardbus 0000:02:01.0: pcmcia: parent PCI bridge I/O window: 0xd000 - 0xdfff
yenta_cardbus 0000:02:01.0: pcmcia: parent PCI bridge Memory window: 0xff600000 - 0xff6fffff
yenta_cardbus 0000:02:01.0: pcmcia: parent PCI bridge Memory window: 0xdea00000 - 0xdeafffff
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci_hcd 0000:00:1d.7: PCI INT D -> Link[LNKH] -> GSI 3 (level, low) -> IRQ 3
ehci_hcd 0000:00:1d.7: setting latency timer to 64
ehci_hcd 0000:00:1d.7: EHCI Host Controller
ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:1d.7: debug port 1
ehci_hcd 0000:00:1d.7: cache line size of 32 is not supported
ehci_hcd 0000:00:1d.7: irq 3, io mem 0xff7ffc00
firewire_net: firewire0: IPv4 over FireWire on device 0800460301a42b6f
firewire_core: created device fw0: GUID 0800460301a42b6f, S400
ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: EHCI Host Controller
usb usb1: Manufacturer: Linux 2.6.31-rc5-00246-g90bc1a6 ehci_hcd
usb usb1: SerialNumber: 0000:00:1d.7
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 6 ports detected
ehci_hcd 0000:02:04.2: PCI INT C -> Link[LNKC] -> GSI 7 (level, low) -> IRQ 7
ehci_hcd 0000:02:04.2: EHCI Host Controller
ehci_hcd 0000:02:04.2: new USB bus registered, assigned bus number 2
ehci_hcd 0000:02:04.2: irq 7, io mem 0xff6fe400
ehci_hcd 0000:02:04.2: USB 2.0 started, EHCI 1.00
usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: EHCI Host Controller
usb usb2: Manufacturer: Linux 2.6.31-rc5-00246-g90bc1a6 ehci_hcd
usb usb2: SerialNumber: 0000:02:04.2
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 5 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 9
ohci_hcd 0000:02:04.0: PCI INT A -> Link[LNKA] -> GSI 9 (level, low) -> IRQ 9
ohci_hcd 0000:02:04.0: OHCI Host Controller
ohci_hcd 0000:02:04.0: new USB bus registered, assigned bus number 3
ohci_hcd 0000:02:04.0: irq 9, io mem 0xff6f7000
usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb3: Product: OHCI Host Controller
usb usb3: Manufacturer: Linux 2.6.31-rc5-00246-g90bc1a6 ohci_hcd
usb usb3: SerialNumber: 0000:02:04.0
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 3 ports detected
ohci_hcd 0000:02:04.1: PCI INT B -> Link[LNKB] -> GSI 9 (level, low) -> IRQ 9
ohci_hcd 0000:02:04.1: OHCI Host Controller
ohci_hcd 0000:02:04.1: new USB bus registered, assigned bus number 4
ohci_hcd 0000:02:04.1: irq 9, io mem 0xff6fc000
usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb4: Product: OHCI Host Controller
usb usb4: Manufacturer: Linux 2.6.31-rc5-00246-g90bc1a6 ohci_hcd
usb usb4: SerialNumber: 0000:02:04.1
usb usb4: configuration #1 chosen from 1 choice
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 2 ports detected
uhci_hcd: USB Universal Host Controller Interface driver
uhci_hcd 0000:00:1d.0: PCI INT A -> Link[LNKA] -> GSI 9 (level, low) -> IRQ 9
uhci_hcd 0000:00:1d.0: setting latency timer to 64
uhci_hcd 0000:00:1d.0: UHCI Host Controller
uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 5
uhci_hcd 0000:00:1d.0: irq 9, io base 0x0000e800
usb usb5: New USB device found, idVendor=1d6b, idProduct=0001
usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb5: Product: UHCI Host Controller
usb usb5: Manufacturer: Linux 2.6.31-rc5-00246-g90bc1a6 uhci_hcd
usb usb5: SerialNumber: 0000:00:1d.0
usb usb5: configuration #1 chosen from 1 choice
hub 5-0:1.0: USB hub found
hub 5-0:1.0: 2 ports detected
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 4
PCI: setting IRQ 4 as level-triggered
uhci_hcd 0000:00:1d.1: PCI INT B -> Link[LNKD] -> GSI 4 (level, low) -> IRQ 4
uhci_hcd 0000:00:1d.1: setting latency timer to 64
uhci_hcd 0000:00:1d.1: UHCI Host Controller
uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 6
uhci_hcd 0000:00:1d.1: irq 4, io base 0x0000e880
usb usb6: New USB device found, idVendor=1d6b, idProduct=0001
usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb6: Product: UHCI Host Controller
usb usb6: Manufacturer: Linux 2.6.31-rc5-00246-g90bc1a6 uhci_hcd
usb usb6: SerialNumber: 0000:00:1d.1
usb usb6: configuration #1 chosen from 1 choice
hub 6-0:1.0: USB hub found
hub 6-0:1.0: 2 ports detected
uhci_hcd 0000:00:1d.2: PCI INT C -> Link[LNKC] -> GSI 7 (level, low) -> IRQ 7
uhci_hcd 0000:00:1d.2: setting latency timer to 64
uhci_hcd 0000:00:1d.2: UHCI Host Controller
uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 7
uhci_hcd 0000:00:1d.2: irq 7, io base 0x0000ec00
usb usb7: New USB device found, idVendor=1d6b, idProduct=0001
usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb7: Product: UHCI Host Controller
usb usb7: Manufacturer: Linux 2.6.31-rc5-00246-g90bc1a6 uhci_hcd
usb usb7: SerialNumber: 0000:00:1d.2
usb usb7: configuration #1 chosen from 1 choice
hub 7-0:1.0: USB hub found
hub 7-0:1.0: 2 ports detected
PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
Platform driver 'i8042' needs updating - please use dev_pm_ops
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
rtc_cmos 00:02: RTC can wake from S4
rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
rtc0: alarms up to one month, y3k, 114 bytes nvram, hpet irqs
i2c /dev entries driver
i801_smbus 0000:00:1f.3: PCI INT B -> Link[LNKB] -> GSI 9 (level, low) -> IRQ 9
device-mapper: uevent: version 1.0.3
device-mapper: ioctl: 4.15.0-ioctl (2009-04-01) initialised: dm-devel@redhat.com
Bluetooth: Generic Bluetooth USB driver ver 0.5
usbcore: registered new interface driver btusb
cpuidle: using governor ladder
cpuidle: using governor menu
wacom driver registered
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.20.
Intel ICH 0000:00:1f.5: PCI INT B -> Link[LNKB] -> GSI 9 (level, low) -> IRQ 9
Intel ICH 0000:00:1f.5: setting latency timer to 64
input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
input: PS/2 Mouse as /devices/platform/i8042/serio1/input/input5
input: AlpsPS/2 ALPS GlidePoint as /devices/platform/i8042/serio1/input/input6
usb 3-1: new low speed USB device using ohci_hcd and address 2
usb 3-1: New USB device found, idVendor=046d, idProduct=c50a
usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-1: Product: USB Receiver
usb 3-1: Manufacturer: Logitech
usb 3-1: configuration #1 chosen from 1 choice
input: Logitech USB Receiver as /devices/pci0000:00/0000:00:1e.0/0000:02:04.0/usb3/3-1/3-1:1.0/input/input7
generic-usb 0003:046D:C50A.0001: input,hidraw0: USB HID v1.10 Mouse [Logitech USB Receiver] on usb-0000:02:04.0-1/input0
intel8x0_measure_ac97_clock: measured 53214 usecs (2564 samples)
intel8x0: clocking to 48000
ALSA device list:
  #0: Intel 82801DB-ICH4 with ALC203 at irq 9
NET: Registered protocol family 26
IPv4 over IPv4 tunneling driver
GRE over IPv4 tunneling driver
TCP cubic registered
TCP vegas registered
TCP scalable registered
TCP yeah registered
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
tunl0: Disabled Privacy Extensions
Mobile IPv6
IPv6 over IPv4 tunneling driver
sit0: Disabled Privacy Extensions
ip6tnl0: Disabled Privacy Extensions
NET: Registered protocol family 17
Bridge firewalling registered
Bluetooth: L2CAP ver 2.13
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO (Voice Link) ver 0.6
Bluetooth: SCO socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
lib80211: common routines for IEEE802.11 drivers
lib80211_crypt: registered algorithm 'NULL'
rtc_cmos 00:02: setting system clock to 2009-08-05 19:04:55 UTC (1249499095)
BIOS EDD facility v0.16 2004-Jun-25, 1 devices found
XFS mounting filesystem sda2
usb 3-2: new full speed USB device using ohci_hcd and address 3
Ending clean XFS mount for filesystem: sda2
VFS: Mounted root (xfs filesystem) readonly on device 8:2.
Freeing unused kernel memory: 252k freed
usb 3-2: New USB device found, idVendor=044e, idProduct=3007
usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-2: Product: UGX
usb 3-2: Manufacturer: ALPS
Clocksource tsc unstable (delta = -276686096 ns)
usb 3-2: configuration #1 chosen from 1 choice
udev: starting version 141
ieee80211: 802.11 data/management/control stack, git-1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
sony-laptop: Sony Notebook Control Driver v0.6.
input: Sony Vaio Keys as /devices/LNXSYSTM:00/device:00/PNP0A03:00/device:10/SNY5001:00/input/input8
input: Sony Vaio Jogdial as /devices/virtual/input/input9
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kdmprq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ipw2200 0000:02:02.0: PCI INT A -> Link[LNKC] -> GSI 7 (level, low) -> IRQ 7
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200 0000:02:02.0: firmware: requesting ipw2200-bss.fw
ipw2200: Detected geography ZZD (13 802.11bg channels, 0 802.11a channels)
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
Adding 987956k swap on /dev/sda6.  Priority:-1 extents:1 across:987956k 
ADDRCONF(NETDEV_UP): eth0: link is not ready
lib80211_crypt: registered algorithm 'WEP'
NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
NFSD: starting 90-second grace period
eth1: no IPv6 routers present

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-05 17:09             ` Manuel Lauss
@ 2009-08-07 18:15               ` Linus Torvalds
  2009-08-07 18:40                 ` Linus Torvalds
  0 siblings, 1 reply; 29+ messages in thread
From: Linus Torvalds @ 2009-08-07 18:15 UTC (permalink / raw)
  To: Manuel Lauss
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson



On Wed, 5 Aug 2009, Manuel Lauss wrote:
> 
> On Wed, Aug 05, 2009 at 09:38:52AM -0700, Linus Torvalds wrote:
> > 
> > Manuel, could you compile your kernel with CONFIG_PCI_DEBUG enabled, and
> > then boot it with "pci=earlydump", and send me the dmesg of a kernel boot? 
> 
> Linux version 2.6.31-rc5-00246-g90bc1a6 (mano@scarran) (gcc version 4.3.3 (Gentoo 4.3.3-r2 p1.1) ) #1 Wed Aug 5 18:57:04 CEST 2009

Thanks, sorry for the delay.

> pci 0000:00:1e.0 config space:
>   00: 86 80 48 24 07 01 80 80 83 00 04 06 00 00 01 00
>   10: 00 00 00 00 00 00 00 00 00 02 02 40 d0 d0 80 22
>   20: 60 ff 60 ff a0 de a0 de 00 00 00 00 00 00 00 00

Ok, this is your PCI-PCI bridge to Bus#2, and it has two memory windows:

	pci 0000:00:1e.0: transparent bridge
	pci 0000:00:1e.0: bridge io port: [0xd000-0xdfff]
	pci 0000:00:1e.0: bridge 32bit mmio: [0xff600000-0xff6fffff]
	pci 0000:00:1e.0: bridge 32bit mmio pref: [0xdea00000-0xdeafffff]

so I was wrong - that 0xff600000-0xff6fffff is non-prefetchable.

So I'm really not seeing why you then et that

	pci 0000:02:03.0: BAR 6: address space collision on of device [0xff680000-0xff69ffff]

because while we've marked the ROM window prefetchable, it should fit 
perfectly fine into a non-prefetchable PCI bus window.

Odd.

Mind trying this patch? It hacks up %pR to print out more of the resource 
information, and also makes your failure case print out the root resource 
we're trying to insert into. 

			Linus
---
 drivers/pci/setup-res.c |   19 ++++++++++---------
 lib/vsprintf.c          |    4 +++-
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
index 1898c7b..ab9ad65 100644
--- a/drivers/pci/setup-res.c
+++ b/drivers/pci/setup-res.c
@@ -98,23 +98,24 @@ void pci_update_resource(struct pci_dev *dev, int resno)
 
 int pci_claim_resource(struct pci_dev *dev, int resource)
 {
+	const char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
 	struct resource *res = &dev->resource[resource];
 	struct resource *root;
 	int err;
 
 	root = pci_find_parent_resource(dev, res);
 
-	err = -EINVAL;
-	if (root != NULL)
-		err = request_resource(root, res);
+	if (!root) {
+		dev_err(&dev->dev, "BAR %d: no parent resource for %s resource %pR\n",
+			resource, dtype, res);
+		return -EINVAL;
+	}
+
+	err = request_resource(root, res);
 
 	if (err) {
-		const char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
-		dev_err(&dev->dev, "BAR %d: %s of %s %pR\n",
-			resource,
-			root ? "address space collision on" :
-				"no parent found for",
-			dtype, res);
+		dev_err(&dev->dev, "BAR %d: unable to insert %s resource %pR in %pR\n",
+			resource, dtype, res, root);
 	}
 
 	return err;
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 756ccaf..aadf760 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -609,7 +609,7 @@ static char *resource_string(char *buf, char *end, struct resource *res,
 		.flags = SPECIAL | SMALL | ZEROPAD,
 	};
 	/* room for the actual numbers, the two "0x", -, [, ] and the final zero */
-	char sym[4*sizeof(resource_size_t) + 8];
+	char sym[4*sizeof(resource_size_t) + 8 + 9];
 	char *p = sym, *pend = sym + sizeof(sym);
 	int size = -1;
 
@@ -623,6 +623,8 @@ static char *resource_string(char *buf, char *end, struct resource *res,
 	p = number(p, pend, res->start, num_spec);
 	*p++ = '-';
 	p = number(p, pend, res->end, num_spec);
+	*p++ = ':';
+	p = number(p, pend, res->flags, num_spec);
 	*p++ = ']';
 	*p = 0;
 

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-07 18:15               ` Linus Torvalds
@ 2009-08-07 18:40                 ` Linus Torvalds
  2009-08-11 16:47                   ` Manuel Lauss
  0 siblings, 1 reply; 29+ messages in thread
From: Linus Torvalds @ 2009-08-07 18:40 UTC (permalink / raw)
  To: Manuel Lauss
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson



On Fri, 7 Aug 2009, Linus Torvalds wrote:
>
> Ok, this is your PCI-PCI bridge to Bus#2, and it has two memory windows:
> 
> 	pci 0000:00:1e.0: transparent bridge
> 	pci 0000:00:1e.0: bridge io port: [0xd000-0xdfff]
> 	pci 0000:00:1e.0: bridge 32bit mmio: [0xff600000-0xff6fffff]
> 	pci 0000:00:1e.0: bridge 32bit mmio pref: [0xdea00000-0xdeafffff]
> 
> so I was wrong - that 0xff600000-0xff6fffff is non-prefetchable.
> 
> So I'm really not seeing why you then get that
> 
> 	pci 0000:02:03.0: BAR 6: address space collision on of device [0xff680000-0xff69ffff]
> 
> because while we've marked the ROM window prefetchable, it should fit 
> perfectly fine into a non-prefetchable PCI bus window.
> 
> Odd.

Oh, not odd at all.

Just after sending that email, I go "Duh!", and realize what's going on.

So because ROM resources are marked as being prefetchable, we have 
pci_find_parent_resource() that _prefers_ a prefetchable window.

So what happens (and now I'm sure) is that 

 - we call 'pci_find_parent_resource()' with the ROM resource, and it does 
   see the parent resource that would match:

	pci 0000:00:1e.0: bridge 32bit mmio: [0xff600000-0xff6fffff]

   but because it's not an _exact_ match (the IORESOURCE_PREFETCH flag 
   doesn't match), it will just remember that bridge resource as being the 
   "best seen so far":

                if ((res->flags & IORESOURCE_PREFETCH) && !(r->flags & IORESOURCE_PREFETCH))
                        best = r;       /* Approximating prefetchable by non-prefetchable */

 - and then, because the bus is transparent, at the end of the bus 
   resources we'll find the parent resources, which are the whole PCI 
   address space.

   And now it will match things *again* - and set "best" to that 
   transparent parent resource, even if it's not really any better at all 
   (the PCI root resource won't be marked prefetchable either, afaik).

 - so 'pci_find_parent_resource()' will instead of returning that MMIO 
   window (0xff600000-0xff6fffff), it will return the PCI root window. 
   Which technically is correct, since that _is_ a "better" window for 
   something like that.

 - but now we can no longer actually insert the resource directly into 
   that PCI root window, because the existing address of the preferred ROM 
   base is already taken (by the PCI bridge window that we'd want to 
   insert it into!)

 - Then, later on, we'll actually assign the ROM address to another area 
   which is prefetchable (well, except it's not really).

So it all actually makes sense. I see what's going on, and the PCI layer 
actually technically does all the right things. Or at least there's not 
really anything technically _wrong_ going on. We have multiple 
'acceptable' resources, we just picked the wrong one.

Anyway, I think we can fix this by just picking the first 'best' resource. 
That said, I suspect that we should actually make 'pci_claim_resource()' 
do this loop over parents, so that if there are multiple acceptable 
resources, we'd try them all rather than pick one - and then perhaps 
failing.

So this patch is not something that I'm going to apply to my tree, but 
it's worth testing out to just verify that yes, I finally understand 
exactly what's going on. Because if I'm right, your warning will now go 
away (and it could be replaced by _other_ issues, of course ;).

			Linus

---
 drivers/pci/pci.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index dbd0f94..89efbb5 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -367,8 +367,12 @@ pci_find_parent_resource(const struct pci_dev *dev, struct resource *res)
 			continue;	/* Wrong type */
 		if (!((res->flags ^ r->flags) & IORESOURCE_PREFETCH))
 			return r;	/* Exact match */
-		if ((res->flags & IORESOURCE_PREFETCH) && !(r->flags & IORESOURCE_PREFETCH))
-			best = r;	/* Approximating prefetchable by non-prefetchable */
+		/* We can't insert a non-prefetch resource inside a prefetchable parent .. */
+		if (r->flags & IORESOURCE_PREFETCH)
+			continue;
+		/* .. but we can put a prefetchable resource inside a non-prefetchable one */
+		if (!best)
+			best = r;
 	}
 	return best;
 }

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-07 18:40                 ` Linus Torvalds
@ 2009-08-11 16:47                   ` Manuel Lauss
  2009-08-13 18:16                     ` Linus Torvalds
  0 siblings, 1 reply; 29+ messages in thread
From: Manuel Lauss @ 2009-08-11 16:47 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson

On Fri, 7 Aug 2009 11:40:19 -0700 (PDT)
Linus Torvalds <torvalds@linux-foundation.org> wrote:

[explanation snipped]

> So this patch is not something that I'm going to apply to my tree, but 
> it's worth testing out to just verify that yes, I finally understand 
> exactly what's going on. Because if I'm right, your warning will now go 
> away (and it could be replaced by _other_ issues, of course ;).


> ---
>  drivers/pci/pci.c |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index dbd0f94..89efbb5 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -367,8 +367,12 @@ pci_find_parent_resource(const struct pci_dev *dev, struct resource *res)
>  			continue;	/* Wrong type */
>  		if (!((res->flags ^ r->flags) & IORESOURCE_PREFETCH))
>  			return r;	/* Exact match */
> -		if ((res->flags & IORESOURCE_PREFETCH) && !(r->flags & IORESOURCE_PREFETCH))
> -			best = r;	/* Approximating prefetchable by non-prefetchable */
> +		/* We can't insert a non-prefetch resource inside a prefetchable parent .. */
> +		if (r->flags & IORESOURCE_PREFETCH)
> +			continue;
> +		/* .. but we can put a prefetchable resource inside a non-prefetchable one */
> +		if (!best)
> +			best = r;
>  	}
>  	return best;
>  }


The warning is gone, and /proc/iomem is identical to 2.6.30.
I'd say you've hit the nail on the head ;)

Thanks!
	Manuel Lauss

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-11 16:47                   ` Manuel Lauss
@ 2009-08-13 18:16                     ` Linus Torvalds
  2009-08-13 19:28                       ` Frans Pop
  0 siblings, 1 reply; 29+ messages in thread
From: Linus Torvalds @ 2009-08-13 18:16 UTC (permalink / raw)
  To: Manuel Lauss
  Cc: Rafael J. Wysocki, Matthew Wilcox, LKML, Linux PCI,
	Andrew Morton, Andrew Patterson



On Tue, 11 Aug 2009, Manuel Lauss wrote:
> 
> > So this patch is not something that I'm going to apply to my tree, but 
> > it's worth testing out to just verify that yes, I finally understand 
> > exactly what's going on. Because if I'm right, your warning will now go 
> > away (and it could be replaced by _other_ issues, of course ;).
> 
> The warning is gone, and /proc/iomem is identical to 2.6.30.
> I'd say you've hit the nail on the head ;)

Ok, thanks.

I'm not going to do anything about it right now, since clearly we've not 
changed any actual behavior from before. But if you remind me after 2.6.31 
is out, I'll look at perhaps making a better "pci_claim_resource()" that 
actually iterates over the different parent resources and doesn't just try 
to find one (and then fail if that particular one doesn't work out).

		Thanks,
			Linus

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-13 18:16                     ` Linus Torvalds
@ 2009-08-13 19:28                       ` Frans Pop
  2009-08-13 19:46                         ` Linus Torvalds
  2009-08-14  1:40                         ` PCI resources allocation problem on Toshiba Satellite A40 Frans Pop
  0 siblings, 2 replies; 29+ messages in thread
From: Frans Pop @ 2009-08-13 19:28 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: mano, rjw, willy, linux-kernel, linux-pci, akpm, andrew.patterson

Linus Torvalds wrote:
> I'm not going to do anything about it right now, since clearly we've
> not changed any actual behavior from before. But if you remind me after
> 2.6.31 is out, I'll look at perhaps making a better
> "pci_claim_resource()" that actually iterates over the different parent
> resources and doesn't just try to find one (and then fail if that
> particular one doesn't work out).

Just for your information, this issue also affects my (old) Toshiba
Satellite A40.

With pre-2.6.31 kernels I always had the following in dmesg:
pci 0000:00:1d.0: BAR 4: can't allocate resource
pci 0000:00:1d.1: BAR 4: can't allocate resource
[...]
pnp 00:08: io resource (0x10-0x1f) overlaps 0000:00:1d.0 BAR 4 (0x0-0x1f), disabling
pnp 00:08: io resource (0x10-0x1f) overlaps 0000:00:1d.1 BAR 4 (0x0-0x1f), disabling

I was very happy to see that for 2.6.31-rc2 those messages were gone.

But with .31-rc5 they are back again, with added "address space collision":
pci 0000:00:1d.0: BAR 4: address space collision on of device [0xcfe0-0xcfff]
pci 0000:00:1d.0: BAR 4: can't allocate resource
pci 0000:00:1d.1: BAR 4: address space collision on of device [0xcf80-0xcf9f]
pci 0000:00:1d.1: BAR 4: can't allocate resource
[...]
pnp 00:08: io resource (0x10-0x1f) overlaps 0000:00:1d.0 BAR 4 (0x0-0x1f), disabling
pnp 00:08: io resource (0x10-0x1f) overlaps 0000:00:1d.1 BAR 4 (0x0-0x1f), disabling

It's never resulted in things not working, but it would still be nice if
it got solved. Please let me know if you'd like anything tested.

Cheers,
FJP

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-13 19:28                       ` Frans Pop
@ 2009-08-13 19:46                         ` Linus Torvalds
  2009-08-13 20:35                           ` Frans Pop
  2009-08-14  1:40                         ` PCI resources allocation problem on Toshiba Satellite A40 Frans Pop
  1 sibling, 1 reply; 29+ messages in thread
From: Linus Torvalds @ 2009-08-13 19:46 UTC (permalink / raw)
  To: Frans Pop
  Cc: mano, rjw, willy, linux-kernel, linux-pci, akpm, andrew.patterson



On Thu, 13 Aug 2009, Frans Pop wrote:
> 
> It's never resulted in things not working, but it would still be nice if
> it got solved. Please let me know if you'd like anything tested.

Did you test the trial-balloon patch I sent to Manuel? It's not the one 
I'd ever commit, but behavior-wise it's likely very close in practice to a 
patch that would iterate over possible parent resources (ie there are 
differences in theory but probably not so many in practice).

So testing it on your machine would be sensible. And you might also remind 
me after 2.6.31 is out.

		Linus

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Regression] PCI resources allocation problem on HP nx6325
  2009-08-13 19:46                         ` Linus Torvalds
@ 2009-08-13 20:35                           ` Frans Pop
  0 siblings, 0 replies; 29+ messages in thread
From: Frans Pop @ 2009-08-13 20:35 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: mano, rjw, willy, linux-kernel, linux-pci, akpm, andrew.patterson

On Thursday 13 August 2009, Linus Torvalds wrote:
> On Thu, 13 Aug 2009, Frans Pop wrote:
> > It's never resulted in things not working, but it would still be nice
> > if it got solved. Please let me know if you'd like anything tested.
>
> Did you test the trial-balloon patch I sent to Manuel?

I had not, but I've tried it now. And it does not change anything: the 
errors are still there. So it probably isn't the same issue after all.

I'll try to find out exactly which commits made the errors go away 
with .31-rc2 and reappear with .31-rc5.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: PCI resources allocation problem on Toshiba Satellite A40
  2009-08-13 19:28                       ` Frans Pop
  2009-08-13 19:46                         ` Linus Torvalds
@ 2009-08-14  1:40                         ` Frans Pop
  2009-08-14  1:47                           ` Linus Torvalds
  1 sibling, 1 reply; 29+ messages in thread
From: Frans Pop @ 2009-08-14  1:40 UTC (permalink / raw)
  To: Frans Pop
  Cc: torvalds, mano, rjw, willy, linux-kernel, linux-pci, akpm,
	andrew.patterson

[-- Attachment #1: Type: text/plain, Size: 1535 bytes --]

Frans Pop wrote:
> With pre-2.6.31 kernels I always had the following in dmesg:
> pci 0000:00:1d.0: BAR 4: can't allocate resource
> pci 0000:00:1d.1: BAR 4: can't allocate resource
> [...]
> pnp 00:08: io resource (0x10-0x1f) overlaps 0000:00:1d.0 BAR 4 (0x0-0x1f), disabling
> pnp 00:08: io resource (0x10-0x1f) overlaps 0000:00:1d.1 BAR 4 (0x0-0x1f), disabling
> 
> I was very happy to see that for 2.6.31-rc2 those messages were gone.

The commit that resulted in the messages disappearing was:
commit a76117dfd687ec4be0a9a05214f3009cc5f73a42
Author: Matthew Wilcox <willy@linux.intel.com>
Date:   Wed Jun 17 16:33:35 2009 -0400
    x86: Use pci_claim_resource

> But with .31-rc5 they are back again, with added "address space collision":
> pci 0000:00:1d.0: BAR 4: address space collision on of device [0xcfe0-0xcfff]
> pci 0000:00:1d.0: BAR 4: can't allocate resource 
> pci 0000:00:1d.1: BAR 4: address space collision on of device [0xcf80-0xcf9f]
> pci 0000:00:1d.1: BAR 4: can't allocate resource 
> [...]
> pnp 00:08: io resource (0x10-0x1f) overlaps 0000:00:1d.0 BAR 4 (0x0-0x1f), disabling
> pnp 00:08: io resource (0x10-0x1f) overlaps 0000:00:1d.1 BAR 4 (0x0-0x1f), disabling

The commit that caused the messages to return is:
commit 79896cf42f6a96d7e14f2dc3473443d68d74031d
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Aug 2 14:04:19 2009 -0700
    Make pci_claim_resource() use request_resource() rather than insert_resource()

The affected devices are the two USB UHCI controllers.

Cheers,
FJP


[-- Attachment #2: lspci --]
[-- Type: text/plain, Size: 10382 bytes --]

00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
	Subsystem: Toshiba America Info Systems Device 0001
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
	Latency: 0
	Region 0: Memory at <unassigned> (32-bit, prefetchable)
	Capabilities: [40] Vendor Specific Information <?>
	Kernel driver in use: agpgart-intel
	Kernel modules: intel-agp

00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
	Subsystem: Toshiba America Info Systems Device 0001
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
	Subsystem: Toshiba America Info Systems Device 0001
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02) (prog-if 00 [VGA controller])
	Subsystem: Toshiba America Info Systems Device 0002
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 10
	Region 0: Memory at d8000000 (32-bit, prefetchable) [size=128M]
	Region 1: Memory at d0000000 (32-bit, non-prefetchable) [size=512K]
	Region 2: I/O ports at eff8 [size=8]
	Capabilities: [d0] Power Management version 1
		Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)
	Subsystem: Toshiba America Info Systems Device 0002
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Region 0: Memory at 20000000 (32-bit, prefetchable) [disabled] [size=128M]
	Region 1: Memory at 2c000000 (32-bit, non-prefetchable) [disabled] [size=512K]
	Capabilities: [d0] Power Management version 1
		Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03) (prog-if 00 [UHCI])
	Subsystem: Toshiba America Info Systems Device 0001
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 16
	Region 4: I/O ports at 18c0 [size=32]
	Kernel driver in use: uhci_hcd
	Kernel modules: uhci-hcd

00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03) (prog-if 00 [UHCI])
	Subsystem: Toshiba America Info Systems Device 0001
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin B routed to IRQ 19
	Region 4: I/O ports at 18e0 [size=32]
	Kernel driver in use: uhci_hcd
	Kernel modules: uhci-hcd

00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 03) (prog-if 20 [EHCI])
	Subsystem: Toshiba America Info Systems Device 0001
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin D routed to IRQ 23
	Region 0: Memory at 2c080000 (32-bit, non-prefetchable) [size=1K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Debug port: BAR=1 offset=0080
	Kernel driver in use: ehci_hcd
	Kernel modules: ehci-hcd

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 83) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR+ INTx-
	Latency: 0
	Bus: primary=00, secondary=01, subordinate=03, sec-latency=64
	I/O behind bridge: 0000c000-0000cfff
	Memory behind bridge: cff00000-cfffffff
	Prefetchable memory behind bridge: 28000000-2bffffff
	Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Kernel modules: shpchp

00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 03)
	Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Kernel modules: iTCO_wdt, intel-rng

00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 03) (prog-if 8a [Master SecP PriP])
	Subsystem: Toshiba America Info Systems Device 0001
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 18
	Region 0: I/O ports at 01f0 [size=8]
	Region 1: I/O ports at 03f4 [size=1]
	Region 2: I/O ports at 0170 [size=8]
	Region 3: I/O ports at 0374 [size=1]
	Region 4: I/O ports at bfa0 [size=16]
	Region 5: Memory at 2c080400 (32-bit, non-prefetchable) [size=1K]
	Kernel driver in use: PIIX_IDE
	Kernel modules: piix, ata_piix

00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)
	Subsystem: Toshiba America Info Systems Device 0241
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin B routed to IRQ 255
	Region 0: I/O ports at 1000 [disabled] [size=256]
	Region 1: I/O ports at 1880 [disabled] [size=64]
	Region 2: Memory at 2c080800 (32-bit, non-prefetchable) [disabled] [size=512]
	Region 3: Memory at 2c080a00 (32-bit, non-prefetchable) [disabled] [size=256]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03) (prog-if 00 [Generic])
	Subsystem: Toshiba America Info Systems Device 0001
	Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin B routed to IRQ 17
	Region 0: I/O ports at 1400 [size=256]
	Region 1: I/O ports at 1800 [size=128]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

01:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (MOB) Ethernet Controller (rev 83)
	Subsystem: Toshiba America Info Systems Device 0001
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64 (2000ns min, 14000ns max), Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 20
	Region 0: Memory at cffff000 (32-bit, non-prefetchable) [size=4K]
	Region 1: I/O ports at cf40 [size=64]
	Capabilities: [dc] Power Management version 2
		Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=2 PME-
	Kernel driver in use: e100

01:0b.0 CardBus bridge: Toshiba America Info Systems ToPIC100 PCI to Cardbus Bridge with ZV Support (rev 33)
	Subsystem: Toshiba America Info Systems Device 0001
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 168
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at cff00000 (32-bit, non-prefetchable) [size=4K]
	Bus: primary=01, secondary=02, subordinate=02, sec-latency=0
	Memory window 0: 28000000-2bfff000 (prefetchable)
	Memory window 1: 30000000-33fff000
	I/O window 0: 0000c000-0000c0ff
	I/O window 1: 0000c400-0000c4ff
	BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+
	16-bit legacy interface ports at 0001
	Kernel driver in use: yenta_cardbus
	Kernel modules: yenta_socket

02:00.0 Ethernet controller: Atheros Communications Inc. AR5212/AR5213 Multiprotocol MAC/baseband processor (rev 01)
	Subsystem: Global Sun Technology Inc Device 7103
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 168 (2500ns min, 7000ns max), Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at 30000000 (32-bit, non-prefetchable) [size=64K]
	Capabilities: [44] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=2 PME-
	Kernel driver in use: ath5k
	Kernel modules: ath5k


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: PCI resources allocation problem on Toshiba Satellite A40
  2009-08-14  1:40                         ` PCI resources allocation problem on Toshiba Satellite A40 Frans Pop
@ 2009-08-14  1:47                           ` Linus Torvalds
  2009-08-14 16:50                             ` Frans Pop
  0 siblings, 1 reply; 29+ messages in thread
From: Linus Torvalds @ 2009-08-14  1:47 UTC (permalink / raw)
  To: Frans Pop
  Cc: mano, rjw, willy, linux-kernel, linux-pci, akpm, andrew.patterson



On Fri, 14 Aug 2009, Frans Pop wrote:
> 
> The commit that resulted in the messages disappearing was:
> commit a76117dfd687ec4be0a9a05214f3009cc5f73a42
> Author: Matthew Wilcox <willy@linux.intel.com>
> Date:   Wed Jun 17 16:33:35 2009 -0400
>     x86: Use pci_claim_resource
> 
> The commit that caused the messages to return is:
> commit 79896cf42f6a96d7e14f2dc3473443d68d74031d
> Author: Linus Torvalds <torvalds@linux-foundation.org>
> Date:   Sun Aug 2 14:04:19 2009 -0700
>     Make pci_claim_resource() use request_resource() rather than insert_resource()
> 
> The affected devices are the two USB UHCI controllers.

Ok, it's the same behavior that mano had, but since the warning didn't go 
away with the trial patch, it's not exactly the same situation.

Can you send

 - output of /proc/ioports both with the current kernel (or the 2.6.30 
   kernel - they should be identical) and with one of the kernels in 
   between that didn't warn

 - send the full bootup dmesg with CONFIG_PCI_DEBUG enabled

and we can probably figure it out.

That said, since it's not a regression, I'm not going to _do_ anything 
about it until after 2.6.31, but I might have a test-patch for you to try 
ot something.

		Linus

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: PCI resources allocation problem on Toshiba Satellite A40
  2009-08-14  1:47                           ` Linus Torvalds
@ 2009-08-14 16:50                             ` Frans Pop
  2009-08-14 17:04                               ` Linus Torvalds
  0 siblings, 1 reply; 29+ messages in thread
From: Frans Pop @ 2009-08-14 16:50 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: mano, rjw, willy, linux-kernel, linux-pci, akpm, andrew.patterson

[-- Attachment #1: Type: text/plain, Size: 562 bytes --]

On Friday 14 August 2009, Linus Torvalds wrote:
> Can you send
>  - output of /proc/ioports both with the current kernel (or the 2.6.30
>    kernel - they should be identical) and with one of the kernels in
>    between that didn't warn
>  - send the full bootup dmesg with CONFIG_PCI_DEBUG enabled
>
> and we can probably figure it out.

Attached.

> That said, since it's not a regression, I'm not going to _do_ anything
> about it until after 2.6.31, but I might have a test-patch for you to
> try ot something.

No problem and that'd be great.

Thanks,
FJP


[-- Attachment #2: ioports.diff --]
[-- Type: text/x-diff, Size: 1899 bytes --]

--- ioports.a76117d	2009-08-14 18:44:42.000000000 +0200
+++ ioports.current-git	2009-08-14 18:44:42.000000000 +0200
@@ -1,68 +1,68 @@
 0000-001f : dma1
 0020-0021 : pic1
 0040-0043 : timer0
 0050-0053 : timer1
 0060-0060 : keyboard
 0064-0064 : keyboard
 0070-0071 : rtc0
 0080-008f : dma page reg
 00a0-00a1 : pic2
 00c0-00df : dma2
 00f0-00ff : fpu
 0170-0177 : 0000:00:1f.1
   0170-0177 : piix
 01e0-01ef : pnp 00:08
 01f0-01f7 : 0000:00:1f.1
   01f0-01f7 : piix
 0376-0376 : 0000:00:1f.1
   0376-0376 : piix
 0378-037a : parport0
 03c0-03df : vesafb
 03f6-03f6 : 0000:00:1f.1
   03f6-03f6 : piix
 0480-048f : pnp 00:08
 04d0-04d1 : pnp 00:08
 0680-06ff : pnp 00:08
 0778-077a : parport0
 0800-080f : pnp 00:08
 0cf8-0cff : PCI conf1
 1000-10ff : 0000:00:1f.5
 1400-14ff : 0000:00:1f.6
 1800-187f : 0000:00:1f.6
 1880-18bf : 0000:00:1f.5
+18c0-18df : 0000:00:1d.0
+  18c0-18df : uhci_hcd
+18e0-18ff : 0000:00:1d.1
+  18e0-18ff : uhci_hcd
 bfa0-bfaf : 0000:00:1f.1
   bfa0-bfaf : piix
 c000-cfff : PCI Bus 0000:01
   c000-c0ff : PCI CardBus 0000:02
   c400-c4ff : PCI CardBus 0000:02
   cf40-cf7f : 0000:01:08.0
     cf40-cf7f : e100
-  cf80-cf9f : 0000:00:1d.1
-    cf80-cf9f : uhci_hcd
-  cfe0-cfff : 0000:00:1d.0
-    cfe0-cfff : uhci_hcd
 d800-d87f : 0000:00:1f.0
   d800-d87f : pnp 00:08
     d800-d803 : ACPI PM1a_EVT_BLK
     d804-d805 : ACPI PM1a_CNT_BLK
     d808-d80b : ACPI PM_TMR
     d810-d815 : ACPI CPU throttle
     d820-d820 : ACPI PM2_CNT_BLK
     d828-d82f : ACPI GPE0_BLK
     d830-d833 : iTCO_wdt
     d860-d87f : iTCO_wdt
 d880-d89f : pnp 00:08
 d8a0-d8bf : pnp 00:08
 e000-e07f : pnp 00:08
 e080-e0ff : pnp 00:08
 e400-e47f : pnp 00:08
 e480-e4ff : pnp 00:08
 e800-e87f : pnp 00:08
 e880-e8ff : pnp 00:08
 ec00-ec7f : pnp 00:08
 ec80-ecff : pnp 00:08
 eeac-eeac : pnp 00:08
 eeb0-eebf : pnp 00:08
 eec0-eeff : 0000:00:1f.0
   eec0-eeff : pnp 00:08
 eff8-efff : 0000:00:02.0

[-- Attachment #3: dmesg.pci-debug --]
[-- Type: text/plain, Size: 33747 bytes --]

Linux version 2.6.31-rc5 (root@aragorn) (gcc version 4.3.4 (Debian 4.3.4-1) ) #16 SMP Fri Aug 14 18:30:07 CEST 2009
KERNEL supported cpus:
  Intel GenuineIntel
  AMD AuthenticAMD
  NSC Geode by NSC
  Cyrix CyrixInstead
  Centaur CentaurHauls
  Transmeta GenuineTMx86
  Transmeta TransmetaCPU
  UMC UMC UMC UMC
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e0000 - 00000000000eee00 (reserved)
 BIOS-e820: 00000000000eee00 - 00000000000ef000 (ACPI NVS)
 BIOS-e820: 00000000000ef000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000001ef40000 (usable)
 BIOS-e820: 000000001ef40000 - 000000001ef50000 (ACPI data)
 BIOS-e820: 000000001ef50000 - 000000001f000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fec10000 - 00000000fec20000 (reserved)
 BIOS-e820: 00000000feda0000 - 00000000fedc0000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffb00000 - 00000000ffc00000 (reserved)
 BIOS-e820: 00000000ffe80000 - 0000000100000000 (reserved)
DMI 2.3 present.
last_pfn = 0x1ef40 max_arch_pfn = 0x100000
MTRR default type: uncachable
MTRR fixed ranges enabled:
  00000-9FFFF write-back
  A0000-BFFFF uncachable
  C0000-CFFFF write-protect
  D0000-DFFFF uncachable
  E0000-E7FFF write-protect
  E8000-EFFFF write-back
  F0000-FFFFF write-protect
MTRR variable ranges enabled:
  0 base 0FEDA0000 mask FFFFE0000 write-back
  1 base 01F000000 mask FFF000000 uncachable
  2 base 0FFF00000 mask FFFF00000 uncachable
  3 base 000000000 mask FE0000000 write-back
  4 disabled
  5 disabled
  6 disabled
  7 disabled
x86 PAT enabled: cpu 0, old 0x7010600070106, new 0x7010600070106
e820 update range: 000000001f000000 - 00000000feda0000 (usable) ==> (reserved)
initial memory mapped : 0 - 01800000
init_memory_mapping: 0000000000000000-000000001ef40000
 0000000000 - 0000400000 page 4k
 0000400000 - 001ec00000 page 2M
 001ec00000 - 001ef40000 page 4k
kernel direct mapping tables up to 1ef40000 @ 7000-c000
RAMDISK: 1eb62000 - 1ef2f9c4
ACPI: RSDP 000f0180 00014 (v00 TOSHIB)
ACPI: RSDT 1ef40000 00038 (v01 TOSHIB 750      00970814 TASM 04010000)
ACPI: FACP 1ef40060 00084 (v02 TOSHIB 750      20030101 TASM 04010000)
ACPI: DSDT 1ef40558 04B72 (v01 TOSHIB A000C    20031216 MSFT 0100000E)
ACPI: FACS 000eee00 00040
ACPI: SSDT 1ef402ca 00082 (v01 TOSHIB A000C    20030917 MSFT 0100000E)
ACPI: DBGP 1ef400e4 00034 (v01 TOSHIB 750      00970814 TASM 04010000)
ACPI: BOOT 1ef40038 00028 (v01 TOSHIB 750      00970814 TASM 04010000)
ACPI: APIC 1ef40118 00062 (v01 TOSHIB 750      00970814 TASM 04010000)
ACPI: Local APIC address 0xfee00000
0MB HIGHMEM available.
495MB LOWMEM available.
  mapped low ram: 0 - 1ef40000
  low ram: 0 - 1ef40000
  node 0 low ram: 00000000 - 1ef40000
  node 0 bootmap 00002000 - 00005de8
(9 early reservations) ==> bootmem [0000000000 - 001ef40000]
  #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
  #1 [0000001000 - 0000002000]    EX TRAMPOLINE ==> [0000001000 - 0000002000]
  #2 [0000006000 - 0000007000]       TRAMPOLINE ==> [0000006000 - 0000007000]
  #3 [0001000000 - 000141fc94]    TEXT DATA BSS ==> [0001000000 - 000141fc94]
  #4 [001eb62000 - 001ef2f9c4]          RAMDISK ==> [001eb62000 - 001ef2f9c4]
  #5 [000009fc00 - 0000100000]    BIOS reserved ==> [000009fc00 - 0000100000]
  #6 [0001420000 - 00014261b0]              BRK ==> [0001420000 - 00014261b0]
  #7 [0000007000 - 0000008000]          PGTABLE ==> [0000007000 - 0000008000]
  #8 [0000002000 - 0000006000]          BOOTMAP ==> [0000002000 - 0000006000]
Zone PFN ranges:
  DMA      0x00000000 -> 0x00001000
  Normal   0x00001000 -> 0x0001ef40
  HighMem  0x0001ef40 -> 0x0001ef40
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0: 0x00000000 -> 0x0000009f
    0: 0x00000100 -> 0x0001ef40
On node 0 totalpages: 126687
free_area_init_node: node 0, pgdat c134abc0, node_mem_map c1427000
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 3967 pages, LIFO batch:0
  Normal zone: 959 pages used for memmap
  Normal zone: 121729 pages, LIFO batch:31
Using APIC driver default
ACPI: PM-Timer IO Port: 0xd808
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] disabled)
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
SMP: Allowing 2 CPUs, 1 hotplug CPUs
nr_irqs_gsi: 24
PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
PM: Registered nosave memory: 00000000000e0000 - 00000000000ee000
PM: Registered nosave memory: 00000000000ee000 - 00000000000ef000
PM: Registered nosave memory: 00000000000ef000 - 0000000000100000
Allocating PCI resources starting at 1f000000 (gap: 1f000000:dfc00000)
NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:2 nr_node_ids:1
PERCPU: Embedded 11 pages at c1809000, static data 21468 bytes
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 125696
Kernel command line: root=/dev/mapper/strider-root ro vga=791 quiet
PID hash table entries: 2048 (order: 11, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
Initializing HighMem for node 0 (00000000:00000000)
Memory: 493912k/507136k available (2288k kernel code, 12640k reserved, 1180k data, 312k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xfff1f000 - 0xfffff000   ( 896 kB)
    pkmap   : 0xff800000 - 0xffc00000   (4096 kB)
    vmalloc : 0xdf740000 - 0xff7fe000   ( 512 MB)
    lowmem  : 0xc0000000 - 0xdef40000   ( 495 MB)
      .init : 0xc136b000 - 0xc13b9000   ( 312 kB)
      .data : 0xc123c20a - 0xc1363338   (1180 kB)
      .text : 0xc1000000 - 0xc123c20a   (2288 kB)
Checking if this processor honours the WP bit even in supervisor mode...Ok.
NR_IRQS:512
Fast TSC calibration using PIT
Detected 2793.024 MHz processor.
Console: colour dummy device 80x25
console [tty0] enabled
Calibrating delay loop (skipped), value calculated using timer frequency.. 5586.04 BogoMIPS (lpj=11172096)
Security Framework initialized
SELinux:  Disabled at boot.
Mount-cache hash table entries: 512
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Hyper-Threading is disabled
mce: CPU supports 4 MCE banks
CPU0: Thermal monitoring enabled (TM1)
Checking 'hlt' instruction... OK.
SMP alternatives: switching to UP code
ACPI: Core revision 20090521
..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
CPU0: Mobile Intel(R) Pentium(R) 4     CPU 2.80GHz stepping 09
Brought up 1 CPUs
Total of 1 processors activated (5586.04 BogoMIPS).
CPU0 attaching NULL sched-domain.
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xfd2fe, last bus=3
PCI: Using configuration type 1 for base access
bio: create slab <bio-0> at 0
ACPI: EC: Look up EC in DSDT
ACPI Warning: Package List length (F) larger than NumElements count (2), truncated
 20090521 dsobject-502
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S4 S5)
ACPI: Using IOAPIC for interrupt routing
[Firmware Bug]: ACPI: ACPI brightness control misses _BQC function
ACPI: Power Resource [PFAN] (off)
ACPI: No dock devices found.
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Scanning bus 0000:00
pci 0000:00:00.0: found [8086:3580] class 000600 header type 00
pci 0000:00:00.0: calling asus_hides_smbus_hostbridge+0x0/0x20f
pci 0000:00:00.0: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:00.0: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:00.1: found [8086:3584] class 000880 header type 00
pci 0000:00:00.1: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:00.1: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:00.3: found [8086:3585] class 000880 header type 00
pci 0000:00:00.3: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:00.3: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:02.0: found [8086:3582] class 000300 header type 00
pci 0000:00:02.0: reg 10 32bit mmio: [0xd8000000-0xdfffffff]
pci 0000:00:02.0: reg 14 32bit mmio: [0xd0000000-0xd007ffff]
pci 0000:00:02.0: reg 18 io port: [0xeff8-0xefff]
pci 0000:00:02.0: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:02.0: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:02.0: supports D1
pci 0000:00:02.1: found [8086:3582] class 000380 header type 00
pci 0000:00:02.1: reg 10 32bit mmio: [0x20000000-0x27ffffff]
pci 0000:00:02.1: reg 14 32bit mmio: [0x2c000000-0x2c07ffff]
pci 0000:00:02.1: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:02.1: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:02.1: supports D1
pci 0000:00:1d.0: found [8086:24c2] class 000c03 header type 00
pci 0000:00:1d.0: reg 20 io port: [0xcfe0-0xcfff]
pci 0000:00:1d.0: calling asus_hides_smbus_hostbridge+0x0/0x20f
pci 0000:00:1d.0: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:1d.0: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:1d.1: found [8086:24c4] class 000c03 header type 00
pci 0000:00:1d.1: reg 20 io port: [0xcf80-0xcf9f]
pci 0000:00:1d.1: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:1d.1: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:1d.7: found [8086:24cd] class 000c03 header type 00
pci 0000:00:1d.7: reg 10 32bit mmio: [0x000000-0x0003ff]
pci 0000:00:1d.7: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:1d.7: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
pci 0000:00:1d.7: PME# disabled
pci 0000:00:1e.0: found [8086:2448] class 000604 header type 01
pci 0000:00:1e.0: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:1e.0: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:1f.0: found [8086:24cc] class 000601 header type 00
pci 0000:00:1f.0: calling old_ich_force_enable_hpet_user+0x0/0x33
pci 0000:00:1f.0: calling asus_hides_smbus_lpc+0x0/0xc1
pci 0000:00:1f.0: calling quirk_ich4_lpc_acpi+0x0/0x81
pci 0000:00:1f.0: quirk: region d800-d87f claimed by ICH4 ACPI/GPIO/TCO
pci 0000:00:1f.0: quirk: region eec0-eeff claimed by ICH4 GPIO
pci 0000:00:1f.0: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:1f.0: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:1f.1: found [8086:24ca] class 000101 header type 00
pci 0000:00:1f.1: reg 10 io port: [0xbff8-0xbfff]
pci 0000:00:1f.1: reg 14 io port: [0xbff4-0xbff7]
pci 0000:00:1f.1: reg 18 io port: [0xbfe8-0xbfef]
pci 0000:00:1f.1: reg 1c io port: [0xbfe4-0xbfe7]
pci 0000:00:1f.1: reg 20 io port: [0xbfa0-0xbfaf]
pci 0000:00:1f.1: reg 24 32bit mmio: [0x2c080400-0x2c0807ff]
pci 0000:00:1f.1: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:1f.1: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:1f.5: found [8086:24c5] class 000401 header type 00
pci 0000:00:1f.5: reg 10 io port: [0x00-0xff]
pci 0000:00:1f.5: reg 14 io port: [0x00-0x3f]
pci 0000:00:1f.5: reg 18 32bit mmio: [0x000000-0x0001ff]
pci 0000:00:1f.5: reg 1c 32bit mmio: [0x000000-0x0000ff]
pci 0000:00:1f.5: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:1f.5: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:1f.5: PME# supported from D0 D3hot D3cold
pci 0000:00:1f.5: PME# disabled
pci 0000:00:1f.6: found [8086:24c6] class 000703 header type 00
pci 0000:00:1f.6: reg 10 io port: [0x00-0xff]
pci 0000:00:1f.6: reg 14 io port: [0x00-0x7f]
pci 0000:00:1f.6: calling quirk_resource_alignment+0x0/0x182
pci 0000:00:1f.6: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:00:1f.6: PME# supported from D0 D3hot D3cold
pci 0000:00:1f.6: PME# disabled
PCI: Fixups for bus 0000:00
pci 0000:00:1e.0: scanning behind bridge, config 030100, pass 0
PCI: Scanning bus 0000:01
pci 0000:01:08.0: found [8086:103d] class 000200 header type 00
pci 0000:01:08.0: reg 10 32bit mmio: [0xcffff000-0xcfffffff]
pci 0000:01:08.0: reg 14 io port: [0xcf40-0xcf7f]
pci 0000:01:08.0: calling quirk_resource_alignment+0x0/0x182
pci 0000:01:08.0: calling pci_fixup_transparent_bridge+0x0/0x4a
pci 0000:01:08.0: supports D1 D2
pci 0000:01:08.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:01:08.0: PME# disabled
pci 0000:01:0b.0: found [1179:0617] class 000607 header type 02
pci 0000:01:0b.0: reg 10 32bit mmio: [0x000000-0x000fff]
pci 0000:01:0b.0: calling quirk_resource_alignment+0x0/0x182
PCI: Fixups for bus 0000:01
pci 0000:00:1e.0: transparent bridge
pci 0000:00:1e.0: bridge io port: [0xc000-0xcfff]
pci 0000:00:1e.0: bridge 32bit mmio: [0xcff00000-0xcfffffff]
pci 0000:01:0b.0: scanning behind bridge, config 030301, pass 0
pci 0000:01:0b.0: scanning behind bridge, config 030301, pass 1
PCI: Bus scan for 0000:01 returning with max=02
pci 0000:00:1e.0: scanning behind bridge, config 030100, pass 1
PCI: Bus scan for 0000:00 returning with max=03
pci_bus 0000:00: on NUMA node 0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIB._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs *10)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *11)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 *11)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *11)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 *11)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 *11)
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 *11)
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 *11)
PCI: Using ACPI for IRQ routing
pci 0000:00:1d.0: BAR 4: address space collision on of device [0xcfe0-0xcfff]
pci 0000:00:1d.0: BAR 4: can't allocate resource
pci 0000:00:1d.1: BAR 4: address space collision on of device [0xcf80-0xcf9f]
pci 0000:00:1d.1: BAR 4: can't allocate resource
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp 00:08: io resource (0x10-0x1f) overlaps 0000:00:1d.0 BAR 4 (0x0-0x1f), disabling
pnp 00:08: io resource (0x10-0x1f) overlaps 0000:00:1d.1 BAR 4 (0x0-0x1f), disabling
pnp: PnP ACPI: found 10 devices
ACPI: ACPI bus type pnp unregistered
PnPBIOS: Disabled by ACPI PNP
system 00:00: iomem range 0x0-0x9ffff could not be reserved
(The fact that a range could not be reserved is generally harmless.)
system 00:00: iomem range 0xe0000-0xeffff could not be reserved
system 00:00: iomem range 0xf0000-0xfffff could not be reserved
system 00:00: iomem range 0x100000-0x1ef3ffff could not be reserved
system 00:00: iomem range 0x1ef40000-0x1ef4ffff could not be reserved
system 00:00: iomem range 0x1ef50000-0x1effffff has been reserved
system 00:00: iomem range 0xfec10000-0xfec1ffff has been reserved
system 00:00: iomem range 0xfeda0000-0xfedbffff has been reserved
system 00:00: iomem range 0xfec00000-0xfec00fff could not be reserved
system 00:00: iomem range 0xfee00000-0xfee00fff has been reserved
system 00:00: iomem range 0xffb00000-0xffbfffff has been reserved
system 00:00: iomem range 0xffe80000-0xffffffff has been reserved
system 00:08: ioport range 0x1e0-0x1ef has been reserved
system 00:08: ioport range 0x480-0x48f has been reserved
system 00:08: ioport range 0x680-0x6ff has been reserved
system 00:08: ioport range 0x800-0x80f has been reserved
system 00:08: ioport range 0xd800-0xd87f has been reserved
system 00:08: ioport range 0xd880-0xd89f has been reserved
system 00:08: ioport range 0xd8a0-0xd8bf has been reserved
system 00:08: ioport range 0xe000-0xe07f has been reserved
system 00:08: ioport range 0xe080-0xe0ff has been reserved
system 00:08: ioport range 0xe400-0xe47f has been reserved
system 00:08: ioport range 0xe480-0xe4ff has been reserved
system 00:08: ioport range 0xe800-0xe87f has been reserved
system 00:08: ioport range 0xe880-0xe8ff has been reserved
system 00:08: ioport range 0xec00-0xec7f has been reserved
system 00:08: ioport range 0xec80-0xecff has been reserved
system 00:08: ioport range 0xeeac-0xeeac has been reserved
system 00:08: ioport range 0xeeb0-0xeebf has been reserved
system 00:08: ioport range 0xeec0-0xeeff has been reserved
system 00:08: ioport range 0x4d0-0x4d1 has been reserved
pci 0000:00:1d.7: BAR 0: got res [0x2c080000-0x2c0803ff] bus [0x2c080000-0x2c0803ff] flags 0x20200
pci 0000:00:1d.7: BAR 0: moved to bus [0x2c080000-0x2c0803ff] flags 0x20200
pci 0000:00:1f.5: BAR 2: got res [0x2c080800-0x2c0809ff] bus [0x2c080800-0x2c0809ff] flags 0x20200
pci 0000:00:1f.5: BAR 2: moved to bus [0x2c080800-0x2c0809ff] flags 0x20200
pci 0000:00:1f.5: BAR 0: got res [0x1000-0x10ff] bus [0x1000-0x10ff] flags 0x20101
pci 0000:00:1f.5: BAR 0: moved to bus [0x1000-0x10ff] flags 0x20101
pci 0000:00:1f.5: BAR 3: got res [0x2c080a00-0x2c080aff] bus [0x2c080a00-0x2c080aff] flags 0x20200
pci 0000:00:1f.5: BAR 3: moved to bus [0x2c080a00-0x2c080aff] flags 0x20200
pci 0000:00:1f.6: BAR 0: got res [0x1400-0x14ff] bus [0x1400-0x14ff] flags 0x20101
pci 0000:00:1f.6: BAR 0: moved to bus [0x1400-0x14ff] flags 0x20101
pci 0000:00:1f.6: BAR 1: got res [0x1800-0x187f] bus [0x1800-0x187f] flags 0x20101
pci 0000:00:1f.6: BAR 1: moved to bus [0x1800-0x187f] flags 0x20101
pci 0000:00:1f.5: BAR 1: got res [0x1880-0x18bf] bus [0x1880-0x18bf] flags 0x20101
pci 0000:00:1f.5: BAR 1: moved to bus [0x1880-0x18bf] flags 0x20101
pci 0000:00:1d.0: BAR 4: got res [0x18c0-0x18df] bus [0x18c0-0x18df] flags 0x20101
pci 0000:00:1d.0: BAR 4: moved to bus [0x18c0-0x18df] flags 0x20101
pci 0000:00:1d.1: BAR 4: got res [0x18e0-0x18ff] bus [0x18e0-0x18ff] flags 0x20101
pci 0000:00:1d.1: BAR 4: moved to bus [0x18e0-0x18ff] flags 0x20101
pci 0000:01:0b.0: BAR 0: got res [0xcff00000-0xcff00fff] bus [0xcff00000-0xcff00fff] flags 0x20200
pci 0000:01:0b.0: BAR 0: moved to bus [0xcff00000-0xcff00fff] flags 0x20200
pci 0000:01:0b.0: CardBus bridge, secondary bus 0000:02
pci 0000:01:0b.0:   IO window: 0x00c000-0x00c0ff
pci 0000:01:0b.0:   IO window: 0x00c400-0x00c4ff
pci 0000:01:0b.0:   PREFETCH window: 0x28000000-0x2bffffff
pci 0000:01:0b.0:   MEM window: 0x30000000-0x33ffffff
pci 0000:00:1e.0: PCI bridge, secondary bus 0000:01
pci 0000:00:1e.0:   IO window: 0xc000-0xcfff
pci 0000:00:1e.0:   MEM window: 0xcff00000-0xcfffffff
pci 0000:00:1e.0:   PREFETCH window: 0x28000000-0x2bffffff
pci 0000:00:1e.0: setting latency timer to 64
pci 0000:01:0b.0: enabling device (0000 -> 0003)
pci 0000:01:0b.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
pci 0000:01:0b.0: enabling bus mastering
pci_bus 0000:00: resource 0 io:  [0x00-0xffff]
pci_bus 0000:00: resource 1 mem: [0x000000-0xffffffff]
pci_bus 0000:01: resource 0 io:  [0xc000-0xcfff]
pci_bus 0000:01: resource 1 mem: [0xcff00000-0xcfffffff]
pci_bus 0000:01: resource 2 pref mem [0x28000000-0x2bffffff]
pci_bus 0000:01: resource 3 io:  [0x00-0xffff]
pci_bus 0000:01: resource 4 mem: [0x000000-0xffffffff]
pci_bus 0000:02: resource 0 io:  [0xc000-0xc0ff]
pci_bus 0000:02: resource 1 io:  [0xc400-0xc4ff]
pci_bus 0000:02: resource 2 pref mem [0x28000000-0x2bffffff]
pci_bus 0000:02: resource 3 mem: [0x30000000-0x33ffffff]
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 5, 131072 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
NET: Registered protocol family 1
Trying to unpack rootfs image as initramfs...
Freeing initrd memory: 3894k freed
Simple Boot Flag at 0x7c set to 0x1
audit: initializing netlink socket (disabled)
type=2000 audit(1250267810.288:1): initialized
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
msgmni has been set to 972
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
pci 0000:00:00.0: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:00.0: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:00.0: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:00.0: calling pci_fixup_video+0x0/0xae
pci 0000:00:00.1: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:00.1: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:00.1: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:00.1: calling pci_fixup_video+0x0/0xae
pci 0000:00:00.3: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:00.3: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:00.3: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:00.3: calling pci_fixup_video+0x0/0xae
pci 0000:00:02.0: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:02.0: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:02.0: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:02.0: calling pci_fixup_video+0x0/0xae
pci 0000:00:02.0: Boot video device
pci 0000:00:02.1: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:02.1: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:02.1: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:02.1: calling pci_fixup_video+0x0/0xae
pci 0000:00:1d.0: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:1d.0: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:1d.0: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:1d.0: calling pci_fixup_video+0x0/0xae
pci 0000:00:1d.1: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:1d.1: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:1d.1: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:1d.1: calling pci_fixup_video+0x0/0xae
pci 0000:00:1d.7: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:1d.7: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:1d.7: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:1d.7: calling pci_fixup_video+0x0/0xae
pci 0000:00:1e.0: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:1e.0: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:1e.0: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:1e.0: calling pci_fixup_video+0x0/0xae
pci 0000:00:1f.0: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:1f.0: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:1f.0: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:1f.0: calling pci_fixup_video+0x0/0xae
pci 0000:00:1f.1: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:1f.1: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:1f.1: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:1f.1: calling pci_fixup_video+0x0/0xae
pci 0000:00:1f.5: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:1f.5: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:1f.5: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:1f.5: calling pci_fixup_video+0x0/0xae
pci 0000:00:1f.6: calling quirk_e100_interrupt+0x0/0x174
pci 0000:00:1f.6: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:00:1f.6: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:00:1f.6: calling pci_fixup_video+0x0/0xae
pci 0000:01:08.0: calling quirk_e100_interrupt+0x0/0x174
pci 0000:01:08.0: Firmware left e100 interrupts enabled; disabling
pci 0000:01:08.0: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:01:08.0: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:01:08.0: calling pci_fixup_video+0x0/0xae
pci 0000:01:0b.0: calling quirk_cardbus_legacy+0x0/0x41
pci 0000:01:0b.0: calling quirk_usb_early_handoff+0x0/0x571
pci 0000:01:0b.0: calling pci_fixup_video+0x0/0xae
vesafb: framebuffer at 0xd8000000, mapped to 0xdf780000, using 3072k, total 16192k
vesafb: mode is 1024x768x16, linelength=2048, pages=9
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 128x48
fb0: VESA VGA frame buffer device
isapnp: Scanning for PnP cards...
Switched to high resolution mode on CPU 0
isapnp: No Plug & Play device found
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
Platform driver 'serial8250' needs updating - please use dev_pm_ops
serial 0000:00:1f.6: power state changed by ACPI to D0
serial 0000:00:1f.6: enabling device (0000 -> 0001)
serial 0000:00:1f.6: PCI INT B -> GSI 17 (level, low) -> IRQ 17
serial 0000:00:1f.6: PCI INT B disabled
brd: module loaded
e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
e100 0000:01:08.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
e100 0000:01:08.0: PME# disabled
e100: eth0: e100_probe: addr 0xcffff000, irq 20, MAC addr 00:08:0d:17:bf:f5
console [netcon0] enabled
netconsole: network logging started
PNP: PS/2 Controller [PNP0303:KBC,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
Platform driver 'i8042' needs updating - please use dev_pm_ops
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
cpuidle: using governor ladder
cpuidle: using governor menu
TCP bic registered
NET: Registered protocol family 17
Using IPI No-Shortcut mode
Freeing unused kernel memory: 312k freed
input: AT Translated Set 2 keyboard as /class/input/input0
fan PNP0C0B:00: registered as cooling_device0
ACPI: Fan [FAN] (off)
thermal LNXTHERM:01: registered as thermal_zone0
ACPI: Thermal Zone [THRM] (59 C)
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Uniform Multi-Platform E-IDE driver
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci_hcd 0000:00:1d.7: enabling device (0000 -> 0002)
ehci_hcd 0000:00:1d.7: PCI INT D -> GSI 23 (level, low) -> IRQ 23
ehci_hcd 0000:00:1d.7: enabling bus mastering
ehci_hcd 0000:00:1d.7: setting latency timer to 64
ehci_hcd 0000:00:1d.7: EHCI Host Controller
ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:1d.7: debug port 1
ehci_hcd 0000:00:1d.7: cache line size of 128 is not supported
ehci_hcd 0000:00:1d.7: irq 23, io mem 0x2c080000
ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 6 ports detected
uhci_hcd: USB Universal Host Controller Interface driver
piix 0000:00:1f.1: IDE controller (0x8086:0x24ca rev 0x03)
PIIX_IDE 0000:00:1f.1: PCI INT A -> GSI 18 (level, low) -> IRQ 18
piix 0000:00:1f.1: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xbfa0-0xbfa7
    ide1: BM-DMA at 0xbfa8-0xbfaf
Probing IDE interface ide0...
hda: HTS541080G9AT00, ATA DISK drive
hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
hda: UDMA/100 mode selected
Probing IDE interface ide1...
hdc: TOSHIBA DVD-ROM SD-R6112, ATAPI CD/DVD-ROM drive
hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
hdc: UDMA/33 mode selected
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
uhci_hcd 0000:00:1d.0: setting latency timer to 64
uhci_hcd 0000:00:1d.0: UHCI Host Controller
uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
uhci_hcd 0000:00:1d.0: irq 16, io base 0x000018c0
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19
uhci_hcd 0000:00:1d.1: setting latency timer to 64
uhci_hcd 0000:00:1d.1: UHCI Host Controller
uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
uhci_hcd 0000:00:1d.1: irq 19, io base 0x000018e0
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
SCSI subsystem initialized
libata version 3.00 loaded.
ide-gd driver 1.18
hda: max request size: 512KiB
ide-cd driver 5.00
hda: 156301488 sectors (80026 MB) w/7539KiB Cache, CHS=16383/255/63
hda: cache flushes supported
 hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 >
ide-cd: hdc: ATAPI 24X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache
Uniform CD-ROM driver Revision: 3.20
device-mapper: ioctl: 4.15.0-ioctl (2009-04-01) initialised: dm-devel@redhat.com
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
udevd version 125 started
Linux agpgart interface v0.103
agpgart-intel 0000:00:00.0: Intel 855GM Chipset
agpgart-intel 0000:00:00.0: detected 16252K stolen memory
agpgart-intel 0000:00:00.0: AGP aperture is 128M @ 0xd8000000
input: Power Button as /class/input/input1
ACPI: Power Button [PWRF]
input: Lid Switch as /class/input/input2
ACPI: Lid Switch [LID]
input: Power Button as /class/input/input3
ACPI: Power Button [PWRB]
ACPI Warning: \_SB_.BAT1._BIF: Return Package type mismatch at index 12 - found Integer, expected String/Buffer 20090521 nspredef-946
ACPI: Battery Slot [BAT1] (battery present)
Marking TSC unstable due to TSC halts in idle
ACPI: CPU0 (power states: C1[C1] C2[C2])
processor LNXCPU:00: registered as cooling_device1
ACPI: AC Adapter [ADP1] (on-line)
parport_pc 00:09: activated
parport_pc 00:09: reported by Plug and Play ACPI
parport0: PC-style at 0x378 (0x778), irq 7, dma 1 [PCSPP,TRISTATE,COMPAT,ECP,DMA]
iTCO_wdt: Intel TCO WatchDog Timer Driver v1.05
iTCO_wdt: Found a ICH4-M TCO device (Version=1, TCOBASE=0xd860)
iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
rtc_cmos 00:07: RTC can wake from S4
rtc_cmos 00:07: rtc core: registered rtc_cmos as rtc0
rtc0: alarms up to one year, 114 bytes nvram
[Firmware Bug]: ACPI: ACPI brightness control misses _BQC function
acpi device:0f: registered as cooling_device2
input: Video Bus as /class/input/input4
ACPI: Video Device [VGA] (multi-head: yes  rom: yes  post: no)
input: PC Speaker as /class/input/input5
input: Toshiba input device as /class/input/input6
toshiba_acpi: Toshiba Laptop ACPI Extras version 0.19
toshiba_acpi:     HCI method: \_SB_.VALZ.GHCI
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
yenta_cardbus 0000:01:0b.0: CardBus bridge found [1179:0001]
yenta_cardbus 0000:01:0b.0: ISA IRQ mask 0x0c38, PCI irq 18
yenta_cardbus 0000:01:0b.0: Socket status: 30000020
yenta_cardbus 0000:01:0b.0: pcmcia: parent PCI bridge I/O window: 0xc000 - 0xcfff
pcmcia_socket pcmcia_socket0: cs: IO port probe 0xc000-0xcfff: clean.
yenta_cardbus 0000:01:0b.0: pcmcia: parent PCI bridge Memory window: 0xcff00000 - 0xcfffffff
yenta_cardbus 0000:01:0b.0: pcmcia: parent PCI bridge Memory window: 0x28000000 - 0x2bffffff
input: PS/2 Mouse as /class/input/input7
input: AlpsPS/2 ALPS GlidePoint as /class/input/input8
pcmcia_socket pcmcia_socket0: pccard: CardBus card inserted into slot 0
pci 0000:02:00.0: found [168c:0013] class 000200 header type 00
pci 0000:02:00.0: reg 10 32bit mmio: [0x000000-0x00ffff]
pci 0000:02:00.0: calling quirk_resource_alignment+0x0/0x182
pci 0000:02:00.0: BAR 0: got res [0x30000000-0x3000ffff] bus [0x30000000-0x3000ffff] flags 0x20200
pci 0000:02:00.0: BAR 0: moved to bus [0x30000000-0x3000ffff] flags 0x20200
cfg80211: Using static regulatory domain info
cfg80211: Regulatory domain: EU
	(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
	(2402000 KHz - 2482000 KHz @ 40000 KHz), (600 mBi, 2000 mBm)
	(5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
	(5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
	(5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
	(5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2000 mBm)
	(5490000 KHz - 5710000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
cfg80211: Calling CRDA for country: EU
pcmcia_socket pcmcia_socket0: cs: IO port probe 0x100-0x3af: clean.
pcmcia_socket pcmcia_socket0: cs: IO port probe 0x3e0-0x4ff: clean.
pcmcia_socket pcmcia_socket0: cs: IO port probe 0x820-0x8ff: clean.
pcmcia_socket pcmcia_socket0: cs: IO port probe 0xc00-0xcf7: clean.
pcmcia_socket pcmcia_socket0: cs: IO port probe 0xa00-0xaff: clean.
ath5k 0000:02:00.0: enabling device (0000 -> 0002)
ath5k 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
ath5k 0000:02:00.0: enabling bus mastering
ath5k 0000:02:00.0: registered as 'phy0'
ath: EEPROM regdomain: 0x30
ath: EEPROM indicates we should expect a direct regpair map
ath: Country alpha2 being used: AM
ath: Regpair used: 0x30
phy0: Selected rate control algorithm 'minstrel'
ath5k phy0: Atheros AR5213A chip found (MAC: 0x59, PHY: 0x43)
ath5k phy0: RF2112B 2GHz radio found (0x46)
cfg80211: Calling CRDA for country: AM
udev: renamed network interface wlan0 to ath0
EXT3 FS on dm-1, internal journal
padlock: VIA PadLock not detected.
padlock: VIA PadLock Hash Engine not detected.
loop: module loaded
kjournald starting.  Commit interval 5 seconds
EXT3 FS on dm-7, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on dm-5, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on dm-2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on dm-3, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Adding 1048568k swap on /dev/mapper/strider-swap_crypt.  Priority:-1 extents:1 across:1048568k 
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
ath0: authenticate with AP 00:14:c1:38:e5:15
ath0: authenticated
ath0: associate with AP 00:14:c1:38:e5:15
ath0: RX AssocResp from 00:14:c1:38:e5:15 (capab=0x411 status=0 aid=2)
ath0: associated
lp0: using parport0 (interrupt-driven).
ppdev: user-space parallel port driver
Clocksource tsc unstable (delta = -138927951 ns)

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: PCI resources allocation problem on Toshiba Satellite A40
  2009-08-14 16:50                             ` Frans Pop
@ 2009-08-14 17:04                               ` Linus Torvalds
  2009-08-14 17:35                                 ` Frans Pop
  0 siblings, 1 reply; 29+ messages in thread
From: Linus Torvalds @ 2009-08-14 17:04 UTC (permalink / raw)
  To: Frans Pop
  Cc: mano, rjw, willy, linux-kernel, linux-pci, akpm, andrew.patterson



On Fri, 14 Aug 2009, Frans Pop wrote:

> On Friday 14 August 2009, Linus Torvalds wrote:
> > Can you send
> >  - output of /proc/ioports both with the current kernel (or the 2.6.30
> >    kernel - they should be identical) and with one of the kernels in
> >    between that didn't warn
> >  - send the full bootup dmesg with CONFIG_PCI_DEBUG enabled
> >
> > and we can probably figure it out.
> 
> Attached.

Ok, this one actually looks obvious from just the ioports thing:

	--- ioports.a76117d     2009-08-14 18:44:42.000000000 +0200
	+++ ioports.current-git 2009-08-14 18:44:42.000000000 +0200
	...
	+18c0-18df : 0000:00:1d.0
	+  18c0-18df : uhci_hcd
	+18e0-18ff : 0000:00:1d.1
	+  18e0-18ff : uhci_hcd
	 bfa0-bfaf : 0000:00:1f.1
	   bfa0-bfaf : piix
	 c000-cfff : PCI Bus 0000:01
	   c000-c0ff : PCI CardBus 0000:02
	   c400-c4ff : PCI CardBus 0000:02
	   cf40-cf7f : 0000:01:08.0
	     cf40-cf7f : e100
	-  cf80-cf9f : 0000:00:1d.1
	-    cf80-cf9f : uhci_hcd
	-  cfe0-cfff : 0000:00:1d.0
	-    cfe0-cfff : uhci_hcd

That old cf80-cf9f/cfe0-cfff location is just totally invalid. Your UHCI 
device is (as it shows) PCI device 0000:00:1d, functions 0/1. In other 
words, they are on PCI bus 0.

But the c000-cfff area is a window that has been set up for PCI bus 1.

The ioports.a76117d version is simply wrong. The Linux PCI layer did the 
right thing, and moved the silly device away from that PCI bus 1 window.

Now, it so happens that I bet it does _work_ in there, but that's likely 
because that 0000:00:1d.x device is on the southbridge chip itself, and it 
probably simply gets decoded before it any access is even sent out on the 
PCI bus and hits the bridge for bus#1. But the fact is, your BIOS has 
simply set up the devices in a totally insane way, and I think the kernel 
did everything right.

So the fact that it "worked" for a few kernels was simply due to a kernel 
bug, where "pci_claim_resource()" incorrectly allowed the resource to be 
inserted into a resource window that wasn't actually its parent, and a 
crazy BIOS that did crazy things, together with a chipset where those 
crazy things just _happened_ to work because of how decoding was done.

			Linus


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: PCI resources allocation problem on Toshiba Satellite A40
  2009-08-14 17:04                               ` Linus Torvalds
@ 2009-08-14 17:35                                 ` Frans Pop
  0 siblings, 0 replies; 29+ messages in thread
From: Frans Pop @ 2009-08-14 17:35 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: mano, rjw, willy, linux-kernel, linux-pci, akpm, andrew.patterson

On Friday 14 August 2009, Linus Torvalds wrote:
> So the fact that it "worked" for a few kernels was simply due to a
> kernel bug, where "pci_claim_resource()" incorrectly allowed the
> resource to be inserted into a resource window that wasn't actually its
> parent, and a crazy BIOS that did crazy things, together with a chipset
> where those crazy things just _happened_ to work because of how
> decoding was done.

OK. Thanks for taking a look. I'll happily ignore the error messages from 
now on. Luckily confirmation that things work correctly when faced with 
broken BIOSes can be useful too :-)

Cheers,
FJP

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2009-08-14 17:35 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-02 14:19 [Regression] PCI resources allocation problem on HP nx6325 Rafael J. Wysocki
2009-08-02 16:39 ` Linus Torvalds
2009-08-02 17:15   ` Matthew Wilcox
2009-08-02 17:19     ` Linus Torvalds
2009-08-02 17:25       ` Matthew Wilcox
2009-08-02 20:16   ` Rafael J. Wysocki
2009-08-02 21:14     ` Linus Torvalds
2009-08-03  3:10   ` Andrew Patterson
2009-08-03 21:14     ` Andrew Patterson
2009-08-03 16:59   ` Manuel Lauss
2009-08-04 23:04     ` Linus Torvalds
2009-08-05 15:51       ` Manuel Lauss
2009-08-05 16:25         ` Linus Torvalds
2009-08-05 16:38           ` Linus Torvalds
2009-08-05 17:09             ` Manuel Lauss
2009-08-07 18:15               ` Linus Torvalds
2009-08-07 18:40                 ` Linus Torvalds
2009-08-11 16:47                   ` Manuel Lauss
2009-08-13 18:16                     ` Linus Torvalds
2009-08-13 19:28                       ` Frans Pop
2009-08-13 19:46                         ` Linus Torvalds
2009-08-13 20:35                           ` Frans Pop
2009-08-14  1:40                         ` PCI resources allocation problem on Toshiba Satellite A40 Frans Pop
2009-08-14  1:47                           ` Linus Torvalds
2009-08-14 16:50                             ` Frans Pop
2009-08-14 17:04                               ` Linus Torvalds
2009-08-14 17:35                                 ` Frans Pop
2009-08-02 16:59 ` [Regression] PCI resources allocation problem on HP nx6325 Matthew Wilcox
2009-08-02 20:18   ` Rafael J. Wysocki

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).