From: Roger Pau Monné Date: Mon, 26 Nov 2018 14:42:19 +0000 (+0100) Subject: pci: add a segment parameter to pci_hide_device X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=5278906d5db78b21736a769d9d33b232db39e9a9;p=people%2Froyger%2Fxen.git pci: add a segment parameter to pci_hide_device No functional change expected. Signed-off-by: Roger Pau Monné Reviewed-by: Jan Beulich --- diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c index d0071d3114..475dc41767 100644 --- a/xen/drivers/char/ehci-dbgp.c +++ b/xen/drivers/char/ehci-dbgp.c @@ -1362,7 +1362,7 @@ static void __init ehci_dbgp_init_postirq(struct serial_port *port) ehci_dbgp_setup_postirq(dbgp); - pci_hide_device(dbgp->bus, PCI_DEVFN(dbgp->slot, dbgp->func)); + pci_hide_device(0, 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 f32dbd3247..3c66e65b1c 100644 --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -761,7 +761,7 @@ static void __init ns16550_init_postirq(struct serial_port *port) if ( uart->bar || uart->ps_bdf_enable ) { if ( !uart->param ) - pci_hide_device(uart->ps_bdf[0], PCI_DEVFN(uart->ps_bdf[1], + pci_hide_device(0, uart->ps_bdf[0], PCI_DEVFN(uart->ps_bdf[1], uart->ps_bdf[2])); else { diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c index e5b9602762..7584ce2fbb 100644 --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -440,17 +440,23 @@ static void _pci_hide_device(struct pci_dev *pdev) list_add(&pdev->domain_list, &dom_xen->arch.pdev_list); } -int __init pci_hide_device(int bus, int devfn) +int __init pci_hide_device(unsigned int seg, unsigned int bus, + unsigned int devfn) { struct pci_dev *pdev; + struct pci_seg *pseg; int rc = -ENOMEM; pcidevs_lock(); - pdev = alloc_pdev(get_pseg(0), bus, devfn); - if ( pdev ) + pseg = alloc_pseg(seg); + if ( pseg ) { - _pci_hide_device(pdev); - rc = 0; + pdev = alloc_pdev(pseg, bus, devfn); + if ( pdev ) + { + _pci_hide_device(pdev); + rc = 0; + } } pcidevs_unlock(); diff --git a/xen/drivers/video/vga.c b/xen/drivers/video/vga.c index 7dc07b13ed..6a64fd9013 100644 --- a/xen/drivers/video/vga.c +++ b/xen/drivers/video/vga.c @@ -157,7 +157,7 @@ void __init video_endboot(void) { printk(XENLOG_INFO "Boot video device %02x:%02x.%u\n", bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); - pci_hide_device(bus, devfn); + pci_hide_device(0, bus, devfn); } } } diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h index 580e820a33..3c361cf0c0 100644 --- a/xen/include/xen/pci.h +++ b/xen/include/xen/pci.h @@ -150,7 +150,7 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn, const struct pci_dev_info *, nodeid_t node); int pci_remove_device(u16 seg, u8 bus, u8 devfn); int pci_ro_device(int seg, int bus, int devfn); -int pci_hide_device(int bus, int devfn); +int pci_hide_device(unsigned int seg, unsigned int bus, unsigned int devfn); struct pci_dev *pci_get_pdev(int seg, int bus, int devfn); struct pci_dev *pci_get_real_pdev(int seg, int bus, int devfn); struct pci_dev *pci_get_pdev_by_domain(const struct domain *, int seg,