powerpc/powernv: Override pcibios_default_alignment() to force PCI devices to be page aligned
Override pcibios_default_alignment() to set default alignment to PAGE_SIZE for all PCI devices on PowerNV platform. Thus sub-page BARs would not share a page and could be mapped into guest when VFIO passthrough them. Signed-off-by: Yongji Xie <elohimes@gmail.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
这个提交包含在:
@@ -3287,6 +3287,11 @@ static void pnv_pci_setup_bridge(struct pci_bus *bus, unsigned long type)
|
||||
}
|
||||
}
|
||||
|
||||
static resource_size_t pnv_pci_default_alignment(void)
|
||||
{
|
||||
return PAGE_SIZE;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PCI_IOV
|
||||
static resource_size_t pnv_pci_iov_resource_alignment(struct pci_dev *pdev,
|
||||
int resno)
|
||||
@@ -3820,6 +3825,8 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np,
|
||||
hose->controller_ops = pnv_pci_ioda_controller_ops;
|
||||
}
|
||||
|
||||
ppc_md.pcibios_default_alignment = pnv_pci_default_alignment;
|
||||
|
||||
#ifdef CONFIG_PCI_IOV
|
||||
ppc_md.pcibios_fixup_sriov = pnv_pci_ioda_fixup_iov_resources;
|
||||
ppc_md.pcibios_iov_resource_alignment = pnv_pci_iov_resource_alignment;
|
||||
|
在新工单中引用
屏蔽一个用户