linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bjorn Helgaas <bjorn.helgaas@hp.com>
To: Yinghai Lu <yinghai.lu@oracle.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>,
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Graham Ramsey <ramsey.graham@ntlworld.com>,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
	Robert Richter <robert.richter@amd.com>,
	Harald Welte <HaraldWelte@viatech.com>,
	Joseph Chan <JosephChan@via.com.tw>, Jiri Slaby <jslaby@suse.cz>,
	Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Dominik Brodowski <linux@dominikbrodowski.net>
Subject: Re: [PATCH -v2] x86, pci: Handle fallout pci devices with peer root bus
Date: Mon, 14 Jun 2010 12:34:17 -0600	[thread overview]
Message-ID: <201006141234.17912.bjorn.helgaas@hp.com> (raw)
In-Reply-To: <4C166B4F.90308@oracle.com>

On Monday, June 14, 2010 11:47:59 am Yinghai Lu wrote:
> 
> Graham bisected
> |    commit 3e3da00c01d050307e753fb7b3e84aefc16da0d0
> |    x86/pci: AMD one chain system to use pci read out res
> 
> cause the SND_HDA_INTEL doesn't work anymore.
> 
> https://bugzilla.kernel.org/show_bug.cgi?id=16007
> 
> It turns out that his system with via chipset only have one hypertransport
> chain, but does have one extra orphan device 80:01.0
> 
>  PCI: Probing PCI hardware (bus 00)
>  PCI: Discovered primary peer bus 80 [IRQ]
> 
>  node 0 link 0: io port [1000, ffffff]
>  TOM: 0000000080000000 aka 2048M
>  node 0 link 0: mmio [e0000000, efffffff]
>  node 0 link 0: mmio [a0000, bffff]
>  node 0 link 0: mmio [80000000, ffffffff]
>  bus: [00, ff] on node 0 link 0
> 
> Try to make peer root buses to share same mmio/io resources if those peer root
> buses fall into the same bus range.

Yinghai, did you read https://bugzilla.kernel.org/show_bug.cgi?id=16007#c15 ?

I made the point there that an HT chain may contain multiple HT/PCI
host bridges, but you are stuck on the idea that "one HT chain == one
PCI root bus."

I have not found the "one PCI host bridge per HT chain" requirement
in the HT spec (if you find it, please point me to it).

If an HT chain may contain multiple HT/PCI host bridges, then it's
obvious that the HT host bridge registers read by amd_bus.c don't
contain enough information to correctly assign address space to the
PCI root buses.

> Also need to update insert_resource to avoid insert same resource two times.
> 
> We need this patch for 2.6.34 stable.

No, we don't!  Not yet, anyway.  We need to find the root cause of this
problem, not just paper over it and wait for it to pop up again somewhere
else.

> Reported-by: Graham Ramsey <ramsey.graham@ntlworld.com>
> Bisected-by: Graham Ramsey <ramsey.graham@ntlworld.com>
> Tested-by: Graham Ramsey <ramsey.graham@ntlworld.com>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> Cc: stable@kernel.org
> 
> ---
>  arch/x86/pci/bus_numa.c |    3 ++-
>  kernel/resource.c       |    2 +-
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> Index: linux-2.6/arch/x86/pci/bus_numa.c
> ===================================================================
> --- linux-2.6.orig/arch/x86/pci/bus_numa.c
> +++ linux-2.6/arch/x86/pci/bus_numa.c
> @@ -22,7 +22,8 @@ void x86_pci_root_bus_res_quirks(struct
>  		return;
>  
>  	for (i = 0; i < pci_root_num; i++) {
> -		if (pci_root_info[i].bus_min == b->number)
> +		if (pci_root_info[i].bus_min <= b->number &&
> +		    pci_root_info[i].bus_max >= b->number)
>  			break;
>  	}
>  
> Index: linux-2.6/kernel/resource.c
> ===================================================================
> --- linux-2.6.orig/kernel/resource.c
> +++ linux-2.6/kernel/resource.c
> @@ -451,7 +451,7 @@ static struct resource * __insert_resour
>  		if (!first)
>  			return first;
>  
> -		if (first == parent)
> +		if (first == parent || first == new)
>  			return first;
>  
>  		if ((first->start > new->start) || (first->end < new->end))
> 

  parent reply	other threads:[~2010-06-14 18:34 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-19 15:13 x86/pci Oops with CONFIG_SND_HDA_INTEL Graham Ramsey
2010-05-19 16:44 ` Bjorn Helgaas
2010-05-19 17:16   ` Graham Ramsey
2010-05-19 18:01     ` Yinghai
2010-05-19 22:47       ` Graham Ramsey
2010-05-20  0:03         ` Yinghai
2010-05-20  0:22           ` Jesse Barnes
2010-05-20  0:36             ` Yinghai
2010-05-20 17:08               ` [Bug 16007] " Bjorn Helgaas
2010-06-02 16:58                 ` Bjorn Helgaas
2010-06-11 21:49                   ` Bjorn Helgaas
2010-06-11 22:08                     ` Yinghai Lu
2010-06-11 23:06                     ` Yinghai Lu
2010-06-14 14:18                       ` Bjorn Helgaas
2010-06-14 17:47                       ` [PATCH -v2] x86, pci: Handle fallout pci devices with peer root bus Yinghai Lu
2010-06-14 18:14                         ` Jesse Barnes
2010-06-14 18:22                           ` Yinghai Lu
2010-06-14 18:34                         ` Bjorn Helgaas [this message]
2010-06-14 18:39                           ` H. Peter Anvin
2010-06-14 18:55                             ` Yinghai Lu
2010-06-14 20:00                               ` Bjorn Helgaas
2010-06-14 20:08                                 ` H. Peter Anvin
2010-06-14 20:20                                   ` Bjorn Helgaas
2010-06-14 21:10                                     ` H. Peter Anvin
2010-06-15  1:49                                       ` Bjorn Helgaas
2010-06-15  1:56                                         ` H. Peter Anvin
2010-06-15 15:30                                           ` Bjorn Helgaas
2010-06-14 19:43                             ` Bjorn Helgaas
2010-06-21 17:28                       ` [Bug 16007] x86/pci Oops with CONFIG_SND_HDA_INTEL Bjorn Helgaas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201006141234.17912.bjorn.helgaas@hp.com \
    --to=bjorn.helgaas@hp.com \
    --cc=HaraldWelte@viatech.com \
    --cc=JosephChan@via.com.tw \
    --cc=akpm@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=jbarnes@virtuousgeek.org \
    --cc=jslaby@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@dominikbrodowski.net \
    --cc=mingo@elte.hu \
    --cc=ramsey.graham@ntlworld.com \
    --cc=robert.richter@amd.com \
    --cc=seto.hidetoshi@jp.fujitsu.com \
    --cc=tglx@linutronix.de \
    --cc=yinghai.lu@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).