From: Steven Rostedt rcu_batches_completed and rcu_patches_completed_bh are both declared in rcuclassic.h and rcupreempt.h. This patch removes the extra prototypes for them from rcupdate.h. rcu_batches_completed_bh is defined as a static inline in the rcupreempt.h header file. Trying to export this as EXPORT_SYMBOL_GPL causes section problems with the powerpc compiler. There's no need to export a static inlined function. Modules must be compiled with the same type of RCU implementation as the kernel they are for. Signed-off-by: Steven Rostedt Acked-by: "Paul E. McKenney" Signed-off-by: Andrew Morton --- include/linux/rcupdate.h | 2 -- kernel/rcupreempt.c | 2 -- 2 files changed, 4 deletions(-) diff -puN include/linux/rcupdate.h~rcu_batches_completed-prototype-cleanup include/linux/rcupdate.h --- a/include/linux/rcupdate.h~rcu_batches_completed-prototype-cleanup +++ a/include/linux/rcupdate.h @@ -256,8 +256,6 @@ extern void call_rcu_bh(struct rcu_head /* Exported common interfaces */ extern void synchronize_rcu(void); extern void rcu_barrier(void); -extern long rcu_batches_completed(void); -extern long rcu_batches_completed_bh(void); /* Internal to kernel */ extern void rcu_init(void); diff -puN kernel/rcupreempt.c~rcu_batches_completed-prototype-cleanup kernel/rcupreempt.c --- a/kernel/rcupreempt.c~rcu_batches_completed-prototype-cleanup +++ a/kernel/rcupreempt.c @@ -217,8 +217,6 @@ long rcu_batches_completed(void) } EXPORT_SYMBOL_GPL(rcu_batches_completed); -EXPORT_SYMBOL_GPL(rcu_batches_completed_bh); - void __rcu_read_lock(void) { int idx; _