diff options
author | Jan Beulich <jbeulich@suse.com> | 2012-09-11 16:01:15 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2012-09-11 16:01:15 +0200 |
commit | e46ea4d44dc0929d9e15dcde5c13b569278970d2 (patch) | |
tree | 6992a7be13ec2c6a58fe7c2e7e9d6b5f17bc0e58 /xen/drivers/char | |
parent | 510cbdf5edecc3a4898c87b02de9e4f3e9360eda (diff) | |
download | xen-e46ea4d44dc0929d9e15dcde5c13b569278970d2.tar.gz xen-e46ea4d44dc0929d9e15dcde5c13b569278970d2.tar.bz2 xen-e46ea4d44dc0929d9e15dcde5c13b569278970d2.zip |
PCI: don't allow guest assignment of devices used by Xen
This covers the devices used for the console and the AMD IOMMU ones (as
would be any others that might get passed to pci_ro_device()).
Boot video device determination cloned from similar Linux logic.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/drivers/char')
-rw-r--r-- | xen/drivers/char/ehci-dbgp.c | 2 | ||||
-rw-r--r-- | xen/drivers/char/ns16550.c | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c index 47b8405d30..6b7066081d 100644 --- a/xen/drivers/char/ehci-dbgp.c +++ b/xen/drivers/char/ehci-dbgp.c @@ -1364,6 +1364,8 @@ static void __init ehci_dbgp_init_postirq(struct serial_port *port) init_timer(&dbgp->timer, ehci_dbgp_poll, port, 0); ehci_dbgp_setup_postirq(dbgp); + + pci_hide_device(dbgp->bus, PCI_DEVFN(dbgp->slot, dbgp->func)); } static int ehci_dbgp_check_release(struct ehci_dbgp *dbgp) diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c index 2eb7f6cff7..c7c5b7cc03 100644 --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -334,6 +334,10 @@ static void __init ns16550_init_postirq(struct serial_port *port) } ns16550_setup_postirq(uart); + + if ( uart->bar || uart->ps_bdf_enable ) + pci_hide_device(uart->ps_bdf[0], PCI_DEVFN(uart->ps_bdf[1], + uart->ps_bdf[2])); } static void ns16550_suspend(struct serial_port *port) |