Message ID | 20200821205115.50333-1-shawn@anastas.io (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | powerpc/pseries: Add pcibios_default_alignment implementation | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch powerpc/merge (d4ecce4dcc8f8820286cf4e0859850c555e89854) |
snowpatch_ozlabs/build-ppc64le | warning | Upstream build failed, couldn't test patch |
snowpatch_ozlabs/build-ppc64be | warning | Upstream build failed, couldn't test patch |
snowpatch_ozlabs/build-ppc64e | warning | Upstream build failed, couldn't test patch |
snowpatch_ozlabs/build-pmac32 | warning | Upstream build failed, couldn't test patch |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 19 lines checked |
snowpatch_ozlabs/needsstable | success | Patch has no Fixes tags |
On Sat, Aug 22, 2020 at 6:51 AM Shawn Anastasio <shawn@anastas.io> wrote: > > Implement pcibios_default_alignment for pseries so that > resources are page-aligned. The main benefit of this is being > able to map any resource from userspace via mechanisms like VFIO. Reviewed-by: Oliver O'Halloran <oohall@gmail.com> That said, there's nothing power specific about this so we should probably drop the pcibios hacks and fix the default alignment in the PCI core. > This is identical to powernv's implementation. > > Signed-off-by: Shawn Anastasio <shawn@anastas.io> > --- > arch/powerpc/platforms/pseries/pci.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/arch/powerpc/platforms/pseries/pci.c b/arch/powerpc/platforms/pseries/pci.c > index 911534b89c85..6d922c096354 100644 > --- a/arch/powerpc/platforms/pseries/pci.c > +++ b/arch/powerpc/platforms/pseries/pci.c > @@ -210,6 +210,11 @@ int pseries_pcibios_sriov_disable(struct pci_dev *pdev) > } > #endif > > +static resource_size_t pseries_pcibios_default_alignment(void) > +{ > + return PAGE_SIZE; > +} > + > static void __init pSeries_request_regions(void) > { > if (!isa_io_base) > @@ -231,6 +236,8 @@ void __init pSeries_final_fixup(void) > > eeh_show_enabled(); > > + ppc_md.pcibios_default_alignment = pseries_pcibios_default_alignment; > + > #ifdef CONFIG_PCI_IOV > ppc_md.pcibios_sriov_enable = pseries_pcibios_sriov_enable; > ppc_md.pcibios_sriov_disable = pseries_pcibios_sriov_disable; > -- > 2.28.0 >
diff --git a/arch/powerpc/platforms/pseries/pci.c b/arch/powerpc/platforms/pseries/pci.c index 911534b89c85..6d922c096354 100644 --- a/arch/powerpc/platforms/pseries/pci.c +++ b/arch/powerpc/platforms/pseries/pci.c @@ -210,6 +210,11 @@ int pseries_pcibios_sriov_disable(struct pci_dev *pdev) } #endif +static resource_size_t pseries_pcibios_default_alignment(void) +{ + return PAGE_SIZE; +} + static void __init pSeries_request_regions(void) { if (!isa_io_base) @@ -231,6 +236,8 @@ void __init pSeries_final_fixup(void) eeh_show_enabled(); + ppc_md.pcibios_default_alignment = pseries_pcibios_default_alignment; + #ifdef CONFIG_PCI_IOV ppc_md.pcibios_sriov_enable = pseries_pcibios_sriov_enable; ppc_md.pcibios_sriov_disable = pseries_pcibios_sriov_disable;
Implement pcibios_default_alignment for pseries so that resources are page-aligned. The main benefit of this is being able to map any resource from userspace via mechanisms like VFIO. This is identical to powernv's implementation. Signed-off-by: Shawn Anastasio <shawn@anastas.io> --- arch/powerpc/platforms/pseries/pci.c | 7 +++++++ 1 file changed, 7 insertions(+)