On Tue, Aug 30, 2016 at 10:21:02PM -0700, Guenter Roeck wrote:
> Peter,
> 
> The call to rcu_sync_is_idle() causes the following build error when building
> x86_64:allmodconfig.
> 
> ERROR: "rcu_sync_lockdep_assert" [kernel/locking/locktorture.ko] undefined!
> ERROR: "rcu_sync_lockdep_assert" [fs/ext4/ext4.ko] undefined!
> 
> I think this was also reported by the 0-day build bot.
> 
> The simple fix would of course be to export rcu_sync_lockdep_assert. Before I
> apply that change to the Android code (where the patch has been aplied and
> the problem is seen) - do you by any chance have a better solution in mind ?

Nope, that's exactly what Ingo did when he ran into this. If you look at
commit 80127a39681b ("locking/percpu-rwsem: Optimize readers and reduce
global impact"), you'll notice the last hunk:


diff --git a/kernel/rcu/sync.c b/kernel/rcu/sync.c
index be922c9f3d37..198473d90f81 100644
--- a/kernel/rcu/sync.c
+++ b/kernel/rcu/sync.c
@@ -68,6 +68,8 @@ void rcu_sync_lockdep_assert(struct rcu_sync *rsp)
        RCU_LOCKDEP_WARN(!gp_ops[rsp->gp_type].held(),
                         "suspicious rcu_sync_is_idle() usage");
 }
+
+EXPORT_SYMBOL_GPL(rcu_sync_lockdep_assert);
 #endif
 
 /**

Reply via email to