linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc/pseries: Fix regression while building external modules
@ 2021-07-29  6:04 Srikar Dronamraju
  2021-08-01 13:13 ` Michael Ellerman
  0 siblings, 1 reply; 2+ messages in thread
From: Srikar Dronamraju @ 2021-07-29  6:04 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Srikar Dronamraju, Nicholas Piggin, marc.c.dionne, jforbes,
	yadayada, linuxppc-dev

With Commit c9f3401313a5 ("powerpc: Always enable queued spinlocks for
64s, disable for others") CONFIG_PPC_QUEUED_SPINLOCKS is always
enabled on ppc64le, external modules that use spinlock APIs are
failing.

ERROR: modpost: GPL-incompatible module XXX.ko uses GPL-only symbol
'shared_processor'

Before the above commit, modules were able to build without any
issues. Also this problem is not seen on other architectures. This
problem can be workaround if CONFIG_UNINLINE_SPIN_UNLOCK is enabled in
the config. However CONFIG_UNINLINE_SPIN_UNLOCK is not enabled by
default and only enabled in certain conditions like
CONFIG_DEBUG_SPINLOCKS is set in the kernel config.

 #include <linux/module.h>
spinlock_t spLock;

static int __init spinlock_test_init(void)
{
        spin_lock_init(&spLock);
        spin_lock(&spLock);
        spin_unlock(&spLock);
        return 0;
}

static void __exit spinlock_test_exit(void)
{
	printk("spinlock_test unloaded\n");
}
module_init(spinlock_test_init);
module_exit(spinlock_test_exit);

MODULE_DESCRIPTION ("spinlock_test");
MODULE_LICENSE ("non-GPL");
MODULE_AUTHOR ("Srikar Dronamraju");

Given that spin locks are one of the basic facilities for module code,
this effectively makes it impossible to build/load almost any non GPL
modules on ppc64le.

This was first reported at https://github.com/openzfs/zfs/issues/11172

Currently shared_processor is exported as GPL only symbol.
Fix this for parity with other architectures by exposing
shared_processor to non-GPL modules too.

Fixes: 14c73bd344da ("powerpc/vcpu: Assume dedicated processors as non-preempt")
Fixes: c9f3401313a5 ("powerpc: Always enable queued spinlocks for 64s, disable for others")
Reported-by: marc.c.dionne@gmail.com
Cc: linuxppc-dev@lists.ozlabs.org
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: marc.c.dionne@gmail.com
Cc: jforbes@redhat.com
Cc: yadayada@in.ibm.com
Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
---
 arch/powerpc/platforms/pseries/setup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index 754e493b7c05..0338f481c12b 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -77,7 +77,7 @@
 #include "../../../../drivers/pci/pci.h"
 
 DEFINE_STATIC_KEY_FALSE(shared_processor);
-EXPORT_SYMBOL_GPL(shared_processor);
+EXPORT_SYMBOL(shared_processor);
 
 int CMO_PrPSP = -1;
 int CMO_SecPSP = -1;

base-commit: adf3c31e18b765ea24eba7b0c1efc076b8ee3d55
-- 
2.18.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] powerpc/pseries: Fix regression while building external modules
  2021-07-29  6:04 [PATCH] powerpc/pseries: Fix regression while building external modules Srikar Dronamraju
@ 2021-08-01 13:13 ` Michael Ellerman
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Ellerman @ 2021-08-01 13:13 UTC (permalink / raw)
  To: Michael Ellerman, Srikar Dronamraju
  Cc: marc.c.dionne, linuxppc-dev, Nicholas Piggin, jforbes, yadayada

On Thu, 29 Jul 2021 11:34:49 +0530, Srikar Dronamraju wrote:
> With Commit c9f3401313a5 ("powerpc: Always enable queued spinlocks for
> 64s, disable for others") CONFIG_PPC_QUEUED_SPINLOCKS is always
> enabled on ppc64le, external modules that use spinlock APIs are
> failing.
> 
> ERROR: modpost: GPL-incompatible module XXX.ko uses GPL-only symbol
> 'shared_processor'
> 
> [...]

Applied to powerpc/fixes.

[1/1] powerpc/pseries: Fix regression while building external modules
      https://git.kernel.org/powerpc/c/333cf507465fbebb3727f5b53e77538467df312a

cheers

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-08-01 13:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-29  6:04 [PATCH] powerpc/pseries: Fix regression while building external modules Srikar Dronamraju
2021-08-01 13:13 ` Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).