[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v1 1/6] vpci: rename and export vpci_modify_bars
From: Stewart Hildebrand <stewart.hildebrand@xxxxxxx> Export functions required for SR-IOV support. Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx> Signed-off-by: Mykyta Poturai <mykyta_poturai@xxxxxxxx> --- xen/drivers/vpci/header.c | 16 +++++++++------- xen/include/xen/vpci.h | 3 +++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c index bb76e70799..c4d8c45640 100644 --- a/xen/drivers/vpci/header.c +++ b/xen/drivers/vpci/header.c @@ -304,7 +304,7 @@ static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only) raise_softirq(SCHEDULE_SOFTIRQ); } -static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only) +int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only) { struct vpci_header *header = &pdev->vpci->header; struct pci_dev *tmp; @@ -545,7 +545,7 @@ static void cf_check cmd_write( * memory decoding bit has not been changed, so leave everything as-is, * hoping the guest will realize and try again. */ - modify_bars(pdev, cmd, false); + vpci_modify_bars(pdev, cmd, false); else pci_conf_write16(pdev->sbdf, reg, cmd); } @@ -713,13 +713,15 @@ static void cf_check rom_write( * Pass PCI_COMMAND_MEMORY or 0 to signal a map/unmap request, note that * this fabricated command is never going to be written to the register. */ - else if ( modify_bars(pdev, new_enabled ? PCI_COMMAND_MEMORY : 0, true) ) + else if ( vpci_modify_bars(pdev, + new_enabled ? PCI_COMMAND_MEMORY : 0, + true) ) /* * No memory has been added or removed from the p2m (because the actual * p2m changes are deferred in defer_map) and the ROM enable bit has * not been changed, so leave everything as-is, hoping the guest will * realize and try again. It's important to not update rom->addr in the - * unmap case if modify_bars has failed, or future attempts would + * unmap case if vpci_modify_bars has failed, or future attempts would * attempt to unmap the wrong address. */ return; @@ -894,8 +896,8 @@ static int cf_check init_header(struct pci_dev *pdev) /* * For DomUs, clear PCI_COMMAND_{MASTER,MEMORY,IO} and other * DomU-controllable bits in PCI_COMMAND. Devices assigned to DomUs will - * start with memory decoding disabled, and modify_bars() will not be called - * at the end of this function. + * start with memory decoding disabled, and vpci_modify_bars() will not be + * called at the end of this function. */ if ( !is_hwdom ) cmd &= ~(PCI_COMMAND_VGA_PALETTE | PCI_COMMAND_INVALIDATE | @@ -1020,7 +1022,7 @@ static int cf_check init_header(struct pci_dev *pdev) goto fail; } - return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false) : 0; + return (cmd & PCI_COMMAND_MEMORY) ? vpci_modify_bars(pdev, cmd, false) : 0; fail: pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd); diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h index 6a481a4e89..5ef35b23c7 100644 --- a/xen/include/xen/vpci.h +++ b/xen/include/xen/vpci.h @@ -286,6 +286,9 @@ bool vpci_ecam_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int len, bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int len, unsigned long *data); +/* Map/unmap the BARs of a vPCI device. */ +int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only); + #endif /* __XEN__ */ #else /* !CONFIG_HAS_VPCI */ -- 2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |