WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Shouldn't remove device in pci_bus_probe_wrapper()

To: "'espen.skoglund@xxxxxxxxxxxxx'" <espen.skoglund@xxxxxxxxxxxxx>, "'joshua.levasseur@xxxxxxxxxxxxx'" <joshua.levasseur@xxxxxxxxxxxxx>
Subject: [Xen-devel] Shouldn't remove device in pci_bus_probe_wrapper()
From: "Han, Weidong" <weidong.han@xxxxxxxxx>
Date: Fri, 7 Nov 2008 15:59:16 +0800
Accept-language: en-US
Acceptlanguage: en-US
Cc: "'xen-devel@xxxxxxxxxxxxxxxxxxx'" <xen-devel@xxxxxxxxxxxxxxxxxxx>, 'Keir, "Kay, Allen M" <allen.m.kay@xxxxxxxxx>, "Zhao, Yu" <yu.zhao@xxxxxxxxx>, Fraser' <keir.fraser@xxxxxxxxxxxxx>
Delivery-date: Fri, 07 Nov 2008 00:00:00 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AclArrrl4dJq3BJJSr656JiS2BtexQ==
Thread-topic: [Xen-devel] Shouldn't remove device in pci_bus_probe_wrapper()
Hi,

In pci_bus_probe_wrapper(), it adds (assign) a device to dom0 firstly, but if 
pci_bus_probe() for the device fails (don't have driver), the device will be 
removed (deassigned) from dom0. For PCIe-to-PCI bridges, they are removed from 
dom0 when they are hooked by pci_bus_probe_wrapper(). That's to say they are 
not mapped in VT-d page table. Thus the PCI devices under these bridges cannot 
work. This situation happens when install pciback module, because pciback will 
probe these bridges and removed them from dom0. Built-in pciback won't result 
in this problem due to these bridges (for example 00:1e.0) are probed before 
their devices (for example 02:00.0). (When map a pci device (02:00.0) to VT-d, 
it will also map its pcie-to-pci bridge (00:1e.0) to VT-d)

So I think should not remove (deassign) devices from dom0 when pci_bus_probe() 
fails. Each device which can DMA should be mapped in VT-d when VT-d is enabled. 
But current code make it possible some these devices are not mapped into VT-d.


Following is the patch to don't remove device from dom0 when pci_bus_probe() 
fails.


diff -r 2fb13b8cbe13 drivers/xen/core/pci.c
--- a/drivers/xen/core/pci.c    Thu Oct 30 13:34:43 2008 +0000
+++ b/drivers/xen/core/pci.c    Thu Nov 06 10:15:26 2008 +0800
@@ -23,14 +23,6 @@ static int pci_bus_probe_wrapper(struct 
                return r;
 
        r = pci_bus_probe(dev);
-       if (r) {
-               int ret;
-
-               ret = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_remove,
-                                           &manage_pci);
-               WARN_ON(ret && ret != -ENOSYS);
-       }
-
        return r;
 }
 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>