|
|
|
|
|
|
|
|
|
|
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>
|
- [Xen-devel] Shouldn't remove device in pci_bus_probe_wrapper(),
Han, Weidong <=
|
|
|
|
|