kernel/cgroup/cgroup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
When adding folio_memcg function call in the zram module for
Android16-6.12, the following error occurs during compilation:
ERROR: modpost: "cgroup_mutex" [../soc-repo/zram.ko] undefined!
This error is caused by the indirect call to lockdep_is_held(&cgroup_mutex)
within folio_memcg. The export setting for cgroup_mutex is controlled by
the CONFIG_PROVE_RCU macro. If CONFIG_LOCKDEP is enabled while
CONFIG_PROVE_RCU is not, this compilation error will occur.
To resolve this issue, add a parallel macro CONFIG_LOCKDEP control to
ensure cgroup_mutex is properly exported when needed.
Signed-off-by: gao xu <gaoxu2@honor.com>
---
kernel/cgroup/cgroup.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index 447ac857e..9e60ff629 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -90,7 +90,7 @@
DEFINE_MUTEX(cgroup_mutex);
DEFINE_SPINLOCK(css_set_lock);
-#ifdef CONFIG_PROVE_RCU
+#if (defined CONFIG_PROVE_RCU || defined CONFIG_LOCKDEP)
EXPORT_SYMBOL_GPL(cgroup_mutex);
EXPORT_SYMBOL_GPL(css_set_lock);
#endif
--
2.17.1
On Thu, Apr 17, 2025 at 07:30:00AM +0000, gaoxu wrote: > When adding folio_memcg function call in the zram module for > Android16-6.12, the following error occurs during compilation: > ERROR: modpost: "cgroup_mutex" [../soc-repo/zram.ko] undefined! > > This error is caused by the indirect call to lockdep_is_held(&cgroup_mutex) > within folio_memcg. The export setting for cgroup_mutex is controlled by > the CONFIG_PROVE_RCU macro. If CONFIG_LOCKDEP is enabled while > CONFIG_PROVE_RCU is not, this compilation error will occur. > > To resolve this issue, add a parallel macro CONFIG_LOCKDEP control to > ensure cgroup_mutex is properly exported when needed. > > Signed-off-by: gao xu <gaoxu2@honor.com> Applied to cgroup/for-6.15-fixes. Thanks. -- tejun
On 4/17/25 1:00 PM, gaoxu wrote: [...] > diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c > index 447ac857e..9e60ff629 100644 > --- a/kernel/cgroup/cgroup.c > +++ b/kernel/cgroup/cgroup.c > @@ -90,7 +90,7 @@ > DEFINE_MUTEX(cgroup_mutex); > DEFINE_SPINLOCK(css_set_lock); > > -#ifdef CONFIG_PROVE_RCU > +#if (defined CONFIG_PROVE_RCU || defined CONFIG_LOCKDEP) > EXPORT_SYMBOL_GPL(cgroup_mutex); > EXPORT_SYMBOL_GPL(css_set_lock); > #endif It can be triggered when CONFIG_LOCK_STAT=y is enabled, which selects CONFIG_LOCKDEP=y and sets CONFIG_PROVE_RCU=n. The patch looks good to me. You may also want to update the description above DEFINE_MUTEX(cgroup_mutex); to reflect the modifications introduced by this patch. -- Cheers, Kamalesh
> > On 4/17/25 1:00 PM, gaoxu wrote: > [...] > > > diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index > > 447ac857e..9e60ff629 100644 > > --- a/kernel/cgroup/cgroup.c > > +++ b/kernel/cgroup/cgroup.c > > @@ -90,7 +90,7 @@ > > DEFINE_MUTEX(cgroup_mutex); > > DEFINE_SPINLOCK(css_set_lock); > > > > -#ifdef CONFIG_PROVE_RCU > > +#if (defined CONFIG_PROVE_RCU || defined CONFIG_LOCKDEP) > > EXPORT_SYMBOL_GPL(cgroup_mutex); > > EXPORT_SYMBOL_GPL(css_set_lock); > > #endif > > > It can be triggered when CONFIG_LOCK_STAT=y is enabled, which selects > CONFIG_LOCKDEP=y and sets CONFIG_PROVE_RCU=n. The patch looks good to > me. > > You may also want to update the description above > DEFINE_MUTEX(cgroup_mutex); to reflect the modifications introduced by this > patch. Received, thanks! > > -- > Cheers, > Kamalesh
Thanks, Gao. On Thu, Apr 17, 2025 at 07:30:00AM +0000, gaoxu <gaoxu2@honor.com> wrote: > --- a/kernel/cgroup/cgroup.c > +++ b/kernel/cgroup/cgroup.c > @@ -90,7 +90,7 @@ > DEFINE_MUTEX(cgroup_mutex); > DEFINE_SPINLOCK(css_set_lock); > > -#ifdef CONFIG_PROVE_RCU > +#if (defined CONFIG_PROVE_RCU || defined CONFIG_LOCKDEP) #if defined(CONFIG_PROVE_RCU) || defined(CONFIG_LOCKDEP) seems more conventional wrt existing code. But in principle Acked-by: Michal Koutný <mkoutny@suse.com>
© 2016 - 2025 Red Hat, Inc.