[PATCH] powerpc/pseries: Add pcibios_default_alignment implementation

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE2208d

2 messages, 2 authors, 2020-08-23 · open the first message on its own page

[PATCH] powerpc/pseries: Add pcibios_default_alignment implementation

From: Shawn Anastasio <hidden>
Date: 2020-08-21 21:00:06

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 <redacted>
---
 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

Re: [PATCH] powerpc/pseries: Add pcibios_default_alignment implementation

From: "Oliver O'Halloran" <oohall@gmail.com>
Date: 2020-08-23 00:33:11

On Sat, Aug 22, 2020 at 6:51 AM Shawn Anastasio [off-list ref] 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.
quoted hunk
This is identical to powernv's implementation.

Signed-off-by: Shawn Anastasio <redacted>
---
 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help