2019-01-15 00:57:38

by Jason A. Donenfeld

[permalink] [raw]
Subject: [PATCH] powerpc: PCI does not require PowerNV

Commit 0e759bd75285 moved around the declaration of pnv_npu2_init, but
did not conditionalize it inside of the PCI pSeries driver. This meant
that CONFIG_PCI && CONFIG_PPC_PSERIES && !CONFIG_PPC_POWERNV resulted
in:

powerpc64le-pc-linux-gnu-ld: arch/powerpc/platforms/pseries/pci.o: in function `pSeries_final_fixup':
pci.c:(.init.text+0x1b0): undefined reference to `pnv_npu2_init'

This commit therefore wraps that line in an ifdef, so that PCI works
without PowerNV.

Signed-off-by: Jason A. Donenfeld <[email protected]>
Fixes: 0e759bd75285 ("powerpc/powernv/npu: Move OPAL calls away from context manipulation")
Cc: Alexey Kardashevskiy <[email protected]>
Cc: Michael Ellerman <[email protected]>
---
arch/powerpc/platforms/pseries/pci.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/powerpc/platforms/pseries/pci.c b/arch/powerpc/platforms/pseries/pci.c
index 7725825d887d..37a77e57893e 100644
--- a/arch/powerpc/platforms/pseries/pci.c
+++ b/arch/powerpc/platforms/pseries/pci.c
@@ -264,7 +264,9 @@ void __init pSeries_final_fixup(void)
if (!of_device_is_compatible(nvdn->parent,
"ibm,power9-npu"))
continue;
+#ifdef CONFIG_PPC_POWERNV
WARN_ON_ONCE(pnv_npu2_init(hose));
+#endif
break;
}
}
--
2.20.1



2019-01-15 06:26:52

by Alexey Kardashevskiy

[permalink] [raw]
Subject: Re: [PATCH] powerpc: PCI does not require PowerNV



On 15/01/2019 11:47, Jason A. Donenfeld wrote:
> Commit 0e759bd75285 moved around the declaration of pnv_npu2_init, but
> did not conditionalize it inside of the PCI pSeries driver. This meant
> that CONFIG_PCI && CONFIG_PPC_PSERIES && !CONFIG_PPC_POWERNV resulted
> in:
>
> powerpc64le-pc-linux-gnu-ld: arch/powerpc/platforms/pseries/pci.o: in function `pSeries_final_fixup':
> pci.c:(.init.text+0x1b0): undefined reference to `pnv_npu2_init'
>
> This commit therefore wraps that line in an ifdef, so that PCI works
> without PowerNV.
>
> Signed-off-by: Jason A. Donenfeld <[email protected]>
> Fixes: 0e759bd75285 ("powerpc/powernv/npu: Move OPAL calls away from context manipulation")
> Cc: Alexey Kardashevskiy <[email protected]>
> Cc: Michael Ellerman <[email protected]>



Reviewed-by: Alexey Kardashevskiy <[email protected]>



> ---
> arch/powerpc/platforms/pseries/pci.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/powerpc/platforms/pseries/pci.c b/arch/powerpc/platforms/pseries/pci.c
> index 7725825d887d..37a77e57893e 100644
> --- a/arch/powerpc/platforms/pseries/pci.c
> +++ b/arch/powerpc/platforms/pseries/pci.c
> @@ -264,7 +264,9 @@ void __init pSeries_final_fixup(void)
> if (!of_device_is_compatible(nvdn->parent,
> "ibm,power9-npu"))
> continue;
> +#ifdef CONFIG_PPC_POWERNV
> WARN_ON_ONCE(pnv_npu2_init(hose));
> +#endif
> break;
> }
> }
>

--
Alexey

2019-01-15 10:33:46

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] powerpc: PCI does not require PowerNV

Hi Jason,

Thanks for the patch.

"Jason A. Donenfeld" <[email protected]> writes:
> Commit 0e759bd75285 moved around the declaration of pnv_npu2_init, but
> did not conditionalize it inside of the PCI pSeries driver. This meant
> that CONFIG_PCI && CONFIG_PPC_PSERIES && !CONFIG_PPC_POWERNV resulted
> in:
>
> powerpc64le-pc-linux-gnu-ld: arch/powerpc/platforms/pseries/pci.o: in function `pSeries_final_fixup':
> pci.c:(.init.text+0x1b0): undefined reference to `pnv_npu2_init'
>
> This commit therefore wraps that line in an ifdef, so that PCI works
> without PowerNV.
>
> Signed-off-by: Jason A. Donenfeld <[email protected]>
> Fixes: 0e759bd75285 ("powerpc/powernv/npu: Move OPAL calls away from context manipulation")

I think this should actually be:

Fixes: 3be2df00e299 ("powerpc/pseries/npu: Enable platform support")

Because that's the commit that added the call to pnv_npu2_init() in the
pseries code. Prior to that it was only called from powernv code.

I'll update the change log to reflect that, unless you disagree.

cheers

> diff --git a/arch/powerpc/platforms/pseries/pci.c b/arch/powerpc/platforms/pseries/pci.c
> index 7725825d887d..37a77e57893e 100644
> --- a/arch/powerpc/platforms/pseries/pci.c
> +++ b/arch/powerpc/platforms/pseries/pci.c
> @@ -264,7 +264,9 @@ void __init pSeries_final_fixup(void)
> if (!of_device_is_compatible(nvdn->parent,
> "ibm,power9-npu"))
> continue;
> +#ifdef CONFIG_PPC_POWERNV
> WARN_ON_ONCE(pnv_npu2_init(hose));
> +#endif
> break;
> }
> }
> --
> 2.20.1

2019-01-17 01:28:20

by Michael Ellerman

[permalink] [raw]
Subject: Re: powerpc: PCI does not require PowerNV

On Tue, 2019-01-15 at 00:47:45 UTC, "Jason A. Donenfeld" wrote:
> Commit 0e759bd75285 moved around the declaration of pnv_npu2_init, but
> did not conditionalize it inside of the PCI pSeries driver. This meant
> that CONFIG_PCI && CONFIG_PPC_PSERIES && !CONFIG_PPC_POWERNV resulted
> in:
>
> powerpc64le-pc-linux-gnu-ld: arch/powerpc/platforms/pseries/pci.o: in function `pSeries_final_fixup':
> pci.c:(.init.text+0x1b0): undefined reference to `pnv_npu2_init'
>
> This commit therefore wraps that line in an ifdef, so that PCI works
> without PowerNV.
>
> Signed-off-by: Jason A. Donenfeld <[email protected]>
> Fixes: 0e759bd75285 ("powerpc/powernv/npu: Move OPAL calls away from context manipulation")
> Cc: Alexey Kardashevskiy <[email protected]>
> Cc: Michael Ellerman <[email protected]>
> Reviewed-by: Alexey Kardashevskiy <[email protected]>

Applied to powerpc fixes, thanks.

https://git.kernel.org/powerpc/c/da727097a482a93645ba5beea8d389eb

cheers