From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S378494AbdD3Ddf (ORCPT ); Sat, 29 Apr 2017 23:33:35 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:46454 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1036604AbdD3DdZ (ORCPT ); Sat, 29 Apr 2017 23:33:25 -0400 Date: Sat, 29 Apr 2017 20:33:20 -0700 From: "Paul E. McKenney" To: kbuild test robot Cc: kbuild-all@01.org, linux-kernel@vger.kernel.org Subject: Re: [rcu:dev.2017.04.28a 41/45] include/linux/notifier.h:77:21: error: field 'srcu' has incomplete type Reply-To: paulmck@linux.vnet.ibm.com References: <201704300701.Q1l6R9fl%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201704300701.Q1l6R9fl%fengguang.wu@intel.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-GCONF: 00 x-cbid: 17043003-2213-0000-0000-000001A666CE X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00006998; HX=3.00000240; KW=3.00000007; PH=3.00000004; SC=3.00000208; SDB=6.00854135; UDB=6.00422524; IPR=6.00633198; BA=6.00005316; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00015243; XFM=3.00000014; UTC=2017-04-30 03:33:22 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17043003-2214-0000-0000-000055DC2492 Message-Id: <20170430033320.GN3956@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-04-30_01:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1704300033 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Apr 30, 2017 at 07:32:17AM +0800, kbuild test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2017.04.28a > head: 1205059ca5d4835e9213ff943ce3a51980718b5d > commit: e01ef0529ed548c1b30206058c2b5eecbbc07998 [41/45] srcu: Make SRCU be once again optional > config: sparc64-allnoconfig (attached as .config) > compiler: sparc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705 > reproduce: > wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > git checkout e01ef0529ed548c1b30206058c2b5eecbbc07998 > # save the attached .config to linux build tree > make.cross ARCH=sparc64 > > All errors (new ones prefixed by >>): > > In file included from include/linux/memory_hotplug.h:6:0, > from include/linux/mmzone.h:749, > from include/linux/gfp.h:5, > from include/linux/kmod.h:22, > from include/linux/module.h:13, > from init/main.c:16: > >> include/linux/notifier.h:77:21: error: field 'srcu' has incomplete type > struct srcu_struct srcu; > ^~~~ Hmmm... This sort of thing has been legal for quite some time, so I am taking the crude step of providing an empty definition for srcu_struct when building with CONFIG_SRCU=n. Thanx, Paul > vim +/srcu +77 include/linux/notifier.h > > e041c6834 Alan Stern 2006-03-27 61 struct atomic_notifier_head { > e041c6834 Alan Stern 2006-03-27 62 spinlock_t lock; > 374a8e0dc Arnd Bergmann 2010-02-24 63 struct notifier_block __rcu *head; > e041c6834 Alan Stern 2006-03-27 64 }; > e041c6834 Alan Stern 2006-03-27 65 > e041c6834 Alan Stern 2006-03-27 66 struct blocking_notifier_head { > e041c6834 Alan Stern 2006-03-27 67 struct rw_semaphore rwsem; > 374a8e0dc Arnd Bergmann 2010-02-24 68 struct notifier_block __rcu *head; > e041c6834 Alan Stern 2006-03-27 69 }; > e041c6834 Alan Stern 2006-03-27 70 > e041c6834 Alan Stern 2006-03-27 71 struct raw_notifier_head { > 374a8e0dc Arnd Bergmann 2010-02-24 72 struct notifier_block __rcu *head; > e041c6834 Alan Stern 2006-03-27 73 }; > e041c6834 Alan Stern 2006-03-27 74 > eabc06940 Alan Stern 2006-10-04 75 struct srcu_notifier_head { > eabc06940 Alan Stern 2006-10-04 76 struct mutex mutex; > eabc06940 Alan Stern 2006-10-04 @77 struct srcu_struct srcu; > 374a8e0dc Arnd Bergmann 2010-02-24 78 struct notifier_block __rcu *head; > eabc06940 Alan Stern 2006-10-04 79 }; > eabc06940 Alan Stern 2006-10-04 80 > e041c6834 Alan Stern 2006-03-27 81 #define ATOMIC_INIT_NOTIFIER_HEAD(name) do { \ > e041c6834 Alan Stern 2006-03-27 82 spin_lock_init(&(name)->lock); \ > e041c6834 Alan Stern 2006-03-27 83 (name)->head = NULL; \ > e041c6834 Alan Stern 2006-03-27 84 } while (0) > e041c6834 Alan Stern 2006-03-27 85 #define BLOCKING_INIT_NOTIFIER_HEAD(name) do { \ > > :::::: The code at line 77 was first introduced by commit > :::::: eabc069401bcf45bcc3f19e643017bf761780aa8 [PATCH] Add SRCU-based notifier chains > > :::::: TO: Alan Stern > :::::: CC: Linus Torvalds > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation