From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: PCI Passthru: fn0 exported but not fn1 Date: Wed, 29 Aug 2007 15:26:41 +0100 Message-ID: References: <46D58037.7010007@netxen.com> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <46D58037.7010007@netxen.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Jambunathan K Cc: xen-devel , Stefan Neuwirth , Sanjeev Jorapur List-Id: xen-devel@lists.xenproject.org On 29/8/07 15:18, "Jambunathan K" wrote: > Just to be sure I 'fixed' > linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/pci.h and made a > clean build from xen source tar. I ensured that BACKEND_PASS is set to yes. > > I am using the same vmlinuz both on Dom0 and Dom1. I am seeing that > lspci in Dom1 *doesn't* report the exported non-zero function. Very odd. The tracing you provide clearly shows that the kernel is *not* scanning every fn. It is only scanning every fn==0. The function of interest here is, I think, linux/drivers/pci/probe.c:pci_scan_slot(). Notice how it iterates on every fn but bails early if no device is found at fn 0 and !scan_all_fns. I suggest you add some tracing to that function to check that: A. It is being called; and B. Exactly how it is bailing without checking fns != 0, if it ireally is the case that scan_all_fns==1. -- Keir