Re: [PATCH v3 2/6] powerpc/powernv: simplify the calculation of iov resource alignment
From: Wei Yang <hidden>
Date: 2015-08-14 03:40:40
On Fri, Aug 14, 2015 at 11:04:58AM +1000, Gavin Shan wrote:
On Thu, Aug 13, 2015 at 10:11:07PM +0800, Wei Yang wrote:quoted
The alignment of IOV BAR on PowerNV platform is the total size of the IOV BAR. No matter whether the IOV BAR is extended with number of roundup_pow_of_two(total_vfs) or number of max PE number (256), the total size could be calculated by (vfs_expanded * VF_BAR_size). This patch simplifies the pnv_pci_iov_resource_alignment() by removing the first case. Signed-off-by: Wei Yang <redacted> Reviewed-by: Gavin Shan <redacted> --- arch/powerpc/platforms/powernv/pci-ioda.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c index 9ac324e..67b8f72 100644 --- a/arch/powerpc/platforms/powernv/pci-ioda.c +++ b/arch/powerpc/platforms/powernv/pci-ioda.c@@ -2987,12 +2987,16 @@ static resource_size_t pnv_pci_iov_resource_alignment(struct pci_dev *pdev,int resno) { struct pci_dn *pdn = pci_get_pdn(pdev); - resource_size_t align, iov_align; - - iov_align = resource_size(&pdev->resource[resno]); - if (iov_align) - return iov_align; + resource_size_t align; + /* + * On PowerNV platform, IOV BAR is mapped by M64 BAR to enable the + * SR-IOV. While from hardware perspective, the range mapped by M64 + * BAR should be size aligned. + * + * This function return the total IOV BAR size if expanded or just the + * individual size if not. + */s/return/returns
Thanks :-)
quoted
align = pci_iov_resource_size(pdev, resno); if (pdn->vfs_expanded) return pdn->vfs_expanded * align; -- 1.7.9.5
-- Richard Yang Help you, Help me