Re: [rcu:rcu/next 51/58] mm/mmu_notifier.c:259:14: error: 'struct srcu_struct' has no member named 'per_cpu_ref'

From: Paul E. McKenney
Date: Tue Apr 11 2017 - 21:47:36 EST


On Wed, Apr 12, 2017 at 07:44:53AM +0800, kbuild test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/next
> head: b9d38ad8ef2a0ae0ba6e03ac6bf8085382a9c98c
> commit: 89489e6fa42785b3fc4c78f46c78cb73b9a164d3 [51/58] srcu: Create a tiny SRCU
> config: x86_64-randconfig-ne0-04120549 (attached as .config)
> compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> reproduce:
> git checkout 89489e6fa42785b3fc4c78f46c78cb73b9a164d3
> # save the attached .config to linux build tree
> make ARCH=x86_64
>
> Note: the rcu/rcu/next HEAD b9d38ad8ef2a0ae0ba6e03ac6bf8085382a9c98c builds fine.
> It only hurts bisectibility.

Commits in wrong order, fixed!

Thanx, Paul

> All error/warnings (new ones prefixed by >>):
>
> In file included from include/uapi/linux/stddef.h:1:0,
> from include/linux/stddef.h:4,
> from include/uapi/linux/posix_types.h:4,
> from include/uapi/linux/types.h:13,
> from include/linux/types.h:5,
> from include/linux/list.h:4,
> from include/linux/rculist.h:9,
> from mm/mmu_notifier.c:12:
> mm/mmu_notifier.c: In function 'do_mmu_notifier_register':
> >> mm/mmu_notifier.c:259:14: error: 'struct srcu_struct' has no member named 'per_cpu_ref'
> BUG_ON(!srcu.per_cpu_ref);
> ^
> include/linux/compiler.h:179:42: note: in definition of macro 'unlikely'
> # define unlikely(x) __builtin_expect(!!(x), 0)
> ^
> >> mm/mmu_notifier.c:259:2: note: in expansion of macro 'BUG_ON'
> BUG_ON(!srcu.per_cpu_ref);
> ^~~~~~
>
> vim +259 mm/mmu_notifier.c
>
> cddb8a5c Andrea Arcangeli 2008-07-28 253 BUG_ON(atomic_read(&mm->mm_users) <= 0);
> cddb8a5c Andrea Arcangeli 2008-07-28 254
> 21a92735 Sagi Grimberg 2012-10-08 255 /*
> 21a92735 Sagi Grimberg 2012-10-08 256 * Verify that mmu_notifier_init() already run and the global srcu is
> 21a92735 Sagi Grimberg 2012-10-08 257 * initialized.
> 21a92735 Sagi Grimberg 2012-10-08 258 */
> 21a92735 Sagi Grimberg 2012-10-08 @259 BUG_ON(!srcu.per_cpu_ref);
> 21a92735 Sagi Grimberg 2012-10-08 260
> 35cfa2b0 Gavin Shan 2012-10-25 261 ret = -ENOMEM;
> 35cfa2b0 Gavin Shan 2012-10-25 262 mmu_notifier_mm = kmalloc(sizeof(struct mmu_notifier_mm), GFP_KERNEL);
>
> :::::: The code at line 259 was first introduced by commit
> :::::: 21a92735f660eaecf69a6f2e777f18463760ec32 mm: mmu_notifier: have mmu_notifiers use a global SRCU so they may safely schedule
>
> :::::: TO: Sagi Grimberg <sagig@xxxxxxxxxxxxxx>
> :::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation