All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, x86@kernel.org
Subject: [tip:tmp.tmp2 291/364] lib/test_sysctl.c:74:25: error: array type has incomplete element type 'struct ctl_table'
Date: Mon, 14 Jun 2021 12:07:40 +0800	[thread overview]
Message-ID: <202106141233.yph6M5wy-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 22727 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tmp.tmp2
head:   adcceb5eb7aee38e4a9c15bdf599655f0e1b1324
commit: 6601f8679da18dd112f11e39486b163d4ad976e2 [291/364] sched/headers, fs: Simplify <linux/fs.h> header dependencies
config: x86_64-kexec (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=6601f8679da18dd112f11e39486b163d4ad976e2
        git remote add tip https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
        git fetch --no-tags tip tmp.tmp2
        git checkout 6601f8679da18dd112f11e39486b163d4ad976e2
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from include/linux/xarray.h:16,
                    from include/linux/fs.h:12,
                    from lib/test_sysctl.c:31:
   include/linux/rcuwait.h: In function 'rcuwait_active':
   include/linux/rcupdate.h:364:9: error: dereferencing pointer to incomplete type 'struct task_struct'
     364 |  typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \
         |         ^
   include/linux/rcupdate.h:474:31: note: in expansion of macro '__rcu_access_pointer'
     474 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
         |                               ^~~~~~~~~~~~~~~~~~~~
   include/linux/rcuwait.h:33:11: note: in expansion of macro 'rcu_access_pointer'
      33 |  return !!rcu_access_pointer(w->task);
         |           ^~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c: At top level:
>> lib/test_sysctl.c:74:25: error: array type has incomplete element type 'struct ctl_table'
      74 | static struct ctl_table test_table[] = {
         |                         ^~~~~~~~~~
>> lib/test_sysctl.c:76:3: error: field name not in record or union initializer
      76 |   .procname = "int_0001",
         |   ^
   lib/test_sysctl.c:76:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:77:3: error: field name not in record or union initializer
      77 |   .data  = &test_data.int_0001,
         |   ^
   lib/test_sysctl.c:77:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:78:3: error: field name not in record or union initializer
      78 |   .maxlen  = sizeof(int),
         |   ^
   lib/test_sysctl.c:78:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:79:3: error: field name not in record or union initializer
      79 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:79:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:80:3: error: field name not in record or union initializer
      80 |   .proc_handler = proc_dointvec_minmax,
         |   ^
   lib/test_sysctl.c:80:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:80:19: error: 'proc_dointvec_minmax' undeclared here (not in a function)
      80 |   .proc_handler = proc_dointvec_minmax,
         |                   ^~~~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:81:3: error: field name not in record or union initializer
      81 |   .extra1  = &i_zero,
         |   ^
   lib/test_sysctl.c:81:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:82:3: error: field name not in record or union initializer
      82 |   .extra2         = &i_one_hundred,
         |   ^
   lib/test_sysctl.c:82:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:85:3: error: field name not in record or union initializer
      85 |   .procname = "int_0002",
         |   ^
   lib/test_sysctl.c:85:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:86:3: error: field name not in record or union initializer
      86 |   .data  = &test_data.int_0002,
         |   ^
   lib/test_sysctl.c:86:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:87:3: error: field name not in record or union initializer
      87 |   .maxlen  = sizeof(int),
         |   ^
   lib/test_sysctl.c:87:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:88:3: error: field name not in record or union initializer
      88 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:88:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:89:3: error: field name not in record or union initializer
      89 |   .proc_handler = proc_dointvec,
         |   ^
   lib/test_sysctl.c:89:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:89:19: error: 'proc_dointvec' undeclared here (not in a function)
      89 |   .proc_handler = proc_dointvec,
         |                   ^~~~~~~~~~~~~
   lib/test_sysctl.c:92:3: error: field name not in record or union initializer
      92 |   .procname = "int_0003",
         |   ^
   lib/test_sysctl.c:92:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:93:3: error: field name not in record or union initializer
      93 |   .data  = &test_data.int_0003,
         |   ^
   lib/test_sysctl.c:93:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:94:3: error: field name not in record or union initializer
      94 |   .maxlen  = sizeof(test_data.int_0003),
         |   ^
   lib/test_sysctl.c:94:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:95:3: error: field name not in record or union initializer
      95 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:95:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:96:3: error: field name not in record or union initializer
      96 |   .proc_handler = proc_dointvec,
         |   ^
   lib/test_sysctl.c:96:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:99:3: error: field name not in record or union initializer
      99 |   .procname = "boot_int",
         |   ^
   lib/test_sysctl.c:99:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:100:3: error: field name not in record or union initializer
     100 |   .data  = &test_data.boot_int,
         |   ^
   lib/test_sysctl.c:100:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:101:3: error: field name not in record or union initializer
     101 |   .maxlen  = sizeof(test_data.boot_int),
         |   ^
   lib/test_sysctl.c:101:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:102:3: error: field name not in record or union initializer
     102 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:102:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:103:3: error: field name not in record or union initializer
     103 |   .proc_handler = proc_dointvec,
         |   ^
   lib/test_sysctl.c:103:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:104:3: error: field name not in record or union initializer
     104 |   .extra1  = SYSCTL_ZERO,
         |   ^
   lib/test_sysctl.c:104:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:104:14: error: 'SYSCTL_ZERO' undeclared here (not in a function)
     104 |   .extra1  = SYSCTL_ZERO,
         |              ^~~~~~~~~~~
   lib/test_sysctl.c:105:3: error: field name not in record or union initializer
     105 |   .extra2         = SYSCTL_ONE,
         |   ^
   lib/test_sysctl.c:105:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:105:21: error: 'SYSCTL_ONE' undeclared here (not in a function)
     105 |   .extra2         = SYSCTL_ONE,
         |                     ^~~~~~~~~~
   lib/test_sysctl.c:108:3: error: field name not in record or union initializer
     108 |   .procname = "uint_0001",
         |   ^
   lib/test_sysctl.c:108:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:109:3: error: field name not in record or union initializer
     109 |   .data  = &test_data.uint_0001,
         |   ^
   lib/test_sysctl.c:109:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:110:3: error: field name not in record or union initializer
     110 |   .maxlen  = sizeof(unsigned int),
         |   ^
   lib/test_sysctl.c:110:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:111:3: error: field name not in record or union initializer
     111 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:111:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:112:3: error: field name not in record or union initializer
     112 |   .proc_handler = proc_douintvec,
         |   ^
   lib/test_sysctl.c:112:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:112:19: error: 'proc_douintvec' undeclared here (not in a function)
     112 |   .proc_handler = proc_douintvec,
         |                   ^~~~~~~~~~~~~~
   lib/test_sysctl.c:115:3: error: field name not in record or union initializer
     115 |   .procname = "string_0001",
         |   ^
   lib/test_sysctl.c:115:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:116:3: error: field name not in record or union initializer
     116 |   .data  = &test_data.string_0001,
         |   ^
   lib/test_sysctl.c:116:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:117:3: error: field name not in record or union initializer
     117 |   .maxlen  = sizeof(test_data.string_0001),
         |   ^
   lib/test_sysctl.c:117:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:118:3: error: field name not in record or union initializer
     118 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:118:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:119:3: error: field name not in record or union initializer
     119 |   .proc_handler = proc_dostring,
         |   ^
   lib/test_sysctl.c:119:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:119:19: error: 'proc_dostring' undeclared here (not in a function)
     119 |   .proc_handler = proc_dostring,
         |                   ^~~~~~~~~~~~~
   lib/test_sysctl.c:122:3: error: field name not in record or union initializer
     122 |   .procname = "bitmap_0001",
         |   ^
   lib/test_sysctl.c:122:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:123:3: error: field name not in record or union initializer
     123 |   .data  = &test_data.bitmap_0001,
         |   ^
   lib/test_sysctl.c:123:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:124:3: error: field name not in record or union initializer
     124 |   .maxlen  = SYSCTL_TEST_BITMAP_SIZE,
         |   ^
   lib/test_sysctl.c:124:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:125:3: error: field name not in record or union initializer
     125 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:125:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:126:3: error: field name not in record or union initializer
     126 |   .proc_handler = proc_do_large_bitmap,
         |   ^
   lib/test_sysctl.c:126:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:126:19: error: 'proc_do_large_bitmap' undeclared here (not in a function)
     126 |   .proc_handler = proc_do_large_bitmap,
         |                   ^~~~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:131:25: error: array type has incomplete element type 'struct ctl_table'
     131 | static struct ctl_table test_sysctl_table[] = {
         |                         ^~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:133:3: error: field name not in record or union initializer
     133 |   .procname = "test_sysctl",
         |   ^
   lib/test_sysctl.c:133:3: note: (near initialization for 'test_sysctl_table')
   lib/test_sysctl.c:134:3: error: field name not in record or union initializer
     134 |   .maxlen  = 0,
         |   ^
   lib/test_sysctl.c:134:3: note: (near initialization for 'test_sysctl_table')
   lib/test_sysctl.c:135:3: error: field name not in record or union initializer
     135 |   .mode  = 0555,
         |   ^
   lib/test_sysctl.c:135:3: note: (near initialization for 'test_sysctl_table')
   lib/test_sysctl.c:136:3: error: field name not in record or union initializer
     136 |   .child  = test_table,
         |   ^
   lib/test_sysctl.c:136:3: note: (near initialization for 'test_sysctl_table')
   lib/test_sysctl.c:141:25: error: array type has incomplete element type 'struct ctl_table'
     141 | static struct ctl_table test_sysctl_root_table[] = {
         |                         ^~~~~~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:143:3: error: field name not in record or union initializer
     143 |   .procname = "debug",
         |   ^
   lib/test_sysctl.c:143:3: note: (near initialization for 'test_sysctl_root_table')
   lib/test_sysctl.c:144:3: error: field name not in record or union initializer
     144 |   .maxlen  = 0,
         |   ^
   lib/test_sysctl.c:144:3: note: (near initialization for 'test_sysctl_root_table')
   lib/test_sysctl.c:145:3: error: field name not in record or union initializer
     145 |   .mode  = 0555,
         |   ^
   lib/test_sysctl.c:145:3: note: (near initialization for 'test_sysctl_root_table')
   lib/test_sysctl.c:146:3: error: field name not in record or union initializer
     146 |   .child  = test_sysctl_table,
         |   ^
   lib/test_sysctl.c:146:3: note: (near initialization for 'test_sysctl_root_table')
   lib/test_sysctl.c: In function 'test_sysctl_init':
>> lib/test_sysctl.c:158:23: error: implicit declaration of function 'register_sysctl_table' [-Werror=implicit-function-declaration]
     158 |  test_sysctl_header = register_sysctl_table(test_sysctl_root_table);
         |                       ^~~~~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c: In function 'test_sysctl_exit':
>> lib/test_sysctl.c:171:3: error: implicit declaration of function 'unregister_sysctl_table' [-Werror=implicit-function-declaration]
     171 |   unregister_sysctl_table(test_sysctl_header);
         |   ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/uaccess.h:11,
                    from lib/test_sysctl.c:34:
   lib/test_sysctl.c: At top level:
   arch/x86/include/asm/uaccess.h:46:20: warning: 'pagefault_disabled' used but never defined
      46 | static inline bool pagefault_disabled(void);
         |                    ^~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:141:25: warning: 'test_sysctl_root_table' defined but not used [-Wunused-variable]
     141 | static struct ctl_table test_sysctl_root_table[] = {
         |                         ^~~~~~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:131:25: warning: 'test_sysctl_table' defined but not used [-Wunused-variable]
     131 | static struct ctl_table test_sysctl_table[] = {
         |                         ^~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:74:25: warning: 'test_table' defined but not used [-Wunused-variable]
      74 | static struct ctl_table test_table[] = {
         |                         ^~~~~~~~~~
   cc1: some warnings being treated as errors


vim +74 lib/test_sysctl.c

9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   72  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   73  /* These are all under /proc/sys/debug/test_sysctl/ */
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  @74  static struct ctl_table test_table[] = {
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   75  	{
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  @76  		.procname	= "int_0001",
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   77  		.data		= &test_data.int_0001,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   78  		.maxlen		= sizeof(int),
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   79  		.mode		= 0644,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  @80  		.proc_handler	= proc_dointvec_minmax,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   81  		.extra1		= &i_zero,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   82  		.extra2         = &i_one_hundred,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   83  	},
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   84  	{
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   85  		.procname	= "int_0002",
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   86  		.data		= &test_data.int_0002,
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   87  		.maxlen		= sizeof(int),
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   88  		.mode		= 0644,
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12  @89  		.proc_handler	= proc_dointvec,
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   90  	},
7c43a657a4bead Luis R. Rodriguez 2017-07-12   91  	{
7c43a657a4bead Luis R. Rodriguez 2017-07-12   92  		.procname	= "int_0003",
7c43a657a4bead Luis R. Rodriguez 2017-07-12   93  		.data		= &test_data.int_0003,
7c43a657a4bead Luis R. Rodriguez 2017-07-12   94  		.maxlen		= sizeof(test_data.int_0003),
7c43a657a4bead Luis R. Rodriguez 2017-07-12   95  		.mode		= 0644,
7c43a657a4bead Luis R. Rodriguez 2017-07-12   96  		.proc_handler	= proc_dointvec,
7c43a657a4bead Luis R. Rodriguez 2017-07-12   97  	},
4f2f682d89d83f Vlastimil Babka   2020-06-07   98  	{
4f2f682d89d83f Vlastimil Babka   2020-06-07   99  		.procname	= "boot_int",
4f2f682d89d83f Vlastimil Babka   2020-06-07  100  		.data		= &test_data.boot_int,
4f2f682d89d83f Vlastimil Babka   2020-06-07  101  		.maxlen		= sizeof(test_data.boot_int),
4f2f682d89d83f Vlastimil Babka   2020-06-07  102  		.mode		= 0644,
4f2f682d89d83f Vlastimil Babka   2020-06-07  103  		.proc_handler	= proc_dointvec,
4f2f682d89d83f Vlastimil Babka   2020-06-07 @104  		.extra1		= SYSCTL_ZERO,
4f2f682d89d83f Vlastimil Babka   2020-06-07 @105  		.extra2         = SYSCTL_ONE,
4f2f682d89d83f Vlastimil Babka   2020-06-07  106  	},
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  107  	{
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  108  		.procname	= "uint_0001",
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  109  		.data		= &test_data.uint_0001,
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  110  		.maxlen		= sizeof(unsigned int),
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  111  		.mode		= 0644,
2920fad3a5d394 Luis R. Rodriguez 2017-07-12 @112  		.proc_handler	= proc_douintvec,
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  113  	},
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  114  	{
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  115  		.procname	= "string_0001",
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  116  		.data		= &test_data.string_0001,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  117  		.maxlen		= sizeof(test_data.string_0001),
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  118  		.mode		= 0644,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12 @119  		.proc_handler	= proc_dostring,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  120  	},
2ea622b887e744 Eric Sandeen      2019-05-14  121  	{
2ea622b887e744 Eric Sandeen      2019-05-14  122  		.procname	= "bitmap_0001",
2ea622b887e744 Eric Sandeen      2019-05-14  123  		.data		= &test_data.bitmap_0001,
2ea622b887e744 Eric Sandeen      2019-05-14  124  		.maxlen		= SYSCTL_TEST_BITMAP_SIZE,
2ea622b887e744 Eric Sandeen      2019-05-14  125  		.mode		= 0644,
2ea622b887e744 Eric Sandeen      2019-05-14 @126  		.proc_handler	= proc_do_large_bitmap,
2ea622b887e744 Eric Sandeen      2019-05-14  127  	},
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  128  	{ }
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  129  };
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  130  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  131  static struct ctl_table test_sysctl_table[] = {
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  132  	{
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  133  		.procname	= "test_sysctl",
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  134  		.maxlen		= 0,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  135  		.mode		= 0555,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  136  		.child		= test_table,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  137  	},
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  138  	{ }
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  139  };
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  140  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  141  static struct ctl_table test_sysctl_root_table[] = {
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  142  	{
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  143  		.procname	= "debug",
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  144  		.maxlen		= 0,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  145  		.mode		= 0555,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  146  		.child		= test_sysctl_table,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  147  	},
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  148  	{ }
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  149  };
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  150  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  151  static struct ctl_table_header *test_sysctl_header;
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  152  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  153  static int __init test_sysctl_init(void)
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  154  {
2ea622b887e744 Eric Sandeen      2019-05-14  155  	test_data.bitmap_0001 = kzalloc(SYSCTL_TEST_BITMAP_SIZE/8, GFP_KERNEL);
2ea622b887e744 Eric Sandeen      2019-05-14  156  	if (!test_data.bitmap_0001)
2ea622b887e744 Eric Sandeen      2019-05-14  157  		return -ENOMEM;
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12 @158  	test_sysctl_header = register_sysctl_table(test_sysctl_root_table);
2ea622b887e744 Eric Sandeen      2019-05-14  159  	if (!test_sysctl_header) {
2ea622b887e744 Eric Sandeen      2019-05-14  160  		kfree(test_data.bitmap_0001);
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  161  		return -ENOMEM;
2ea622b887e744 Eric Sandeen      2019-05-14  162  	}
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  163  	return 0;
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  164  }
2f56f84511367c Masami Hiramatsu  2020-05-28  165  module_init(test_sysctl_init);
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  166  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  167  static void __exit test_sysctl_exit(void)
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  168  {
2ea622b887e744 Eric Sandeen      2019-05-14  169  	kfree(test_data.bitmap_0001);
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  170  	if (test_sysctl_header)
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12 @171  		unregister_sysctl_table(test_sysctl_header);
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  172  }
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  173  

:::::: The code at line 74 was first introduced by commit
:::::: 9308f2f9e7f055cf3934645ec622bb5259dc1c14 test_sysctl: add dedicated proc sysctl test driver

:::::: TO: Luis R. Rodriguez <mcgrof@kernel.org>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28760 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [tip:tmp.tmp2 291/364] lib/test_sysctl.c:74:25: error: array type has incomplete element type 'struct ctl_table'
Date: Mon, 14 Jun 2021 12:07:40 +0800	[thread overview]
Message-ID: <202106141233.yph6M5wy-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 23119 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tmp.tmp2
head:   adcceb5eb7aee38e4a9c15bdf599655f0e1b1324
commit: 6601f8679da18dd112f11e39486b163d4ad976e2 [291/364] sched/headers, fs: Simplify <linux/fs.h> header dependencies
config: x86_64-kexec (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=6601f8679da18dd112f11e39486b163d4ad976e2
        git remote add tip https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
        git fetch --no-tags tip tmp.tmp2
        git checkout 6601f8679da18dd112f11e39486b163d4ad976e2
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from include/linux/xarray.h:16,
                    from include/linux/fs.h:12,
                    from lib/test_sysctl.c:31:
   include/linux/rcuwait.h: In function 'rcuwait_active':
   include/linux/rcupdate.h:364:9: error: dereferencing pointer to incomplete type 'struct task_struct'
     364 |  typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \
         |         ^
   include/linux/rcupdate.h:474:31: note: in expansion of macro '__rcu_access_pointer'
     474 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
         |                               ^~~~~~~~~~~~~~~~~~~~
   include/linux/rcuwait.h:33:11: note: in expansion of macro 'rcu_access_pointer'
      33 |  return !!rcu_access_pointer(w->task);
         |           ^~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c: At top level:
>> lib/test_sysctl.c:74:25: error: array type has incomplete element type 'struct ctl_table'
      74 | static struct ctl_table test_table[] = {
         |                         ^~~~~~~~~~
>> lib/test_sysctl.c:76:3: error: field name not in record or union initializer
      76 |   .procname = "int_0001",
         |   ^
   lib/test_sysctl.c:76:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:77:3: error: field name not in record or union initializer
      77 |   .data  = &test_data.int_0001,
         |   ^
   lib/test_sysctl.c:77:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:78:3: error: field name not in record or union initializer
      78 |   .maxlen  = sizeof(int),
         |   ^
   lib/test_sysctl.c:78:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:79:3: error: field name not in record or union initializer
      79 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:79:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:80:3: error: field name not in record or union initializer
      80 |   .proc_handler = proc_dointvec_minmax,
         |   ^
   lib/test_sysctl.c:80:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:80:19: error: 'proc_dointvec_minmax' undeclared here (not in a function)
      80 |   .proc_handler = proc_dointvec_minmax,
         |                   ^~~~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:81:3: error: field name not in record or union initializer
      81 |   .extra1  = &i_zero,
         |   ^
   lib/test_sysctl.c:81:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:82:3: error: field name not in record or union initializer
      82 |   .extra2         = &i_one_hundred,
         |   ^
   lib/test_sysctl.c:82:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:85:3: error: field name not in record or union initializer
      85 |   .procname = "int_0002",
         |   ^
   lib/test_sysctl.c:85:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:86:3: error: field name not in record or union initializer
      86 |   .data  = &test_data.int_0002,
         |   ^
   lib/test_sysctl.c:86:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:87:3: error: field name not in record or union initializer
      87 |   .maxlen  = sizeof(int),
         |   ^
   lib/test_sysctl.c:87:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:88:3: error: field name not in record or union initializer
      88 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:88:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:89:3: error: field name not in record or union initializer
      89 |   .proc_handler = proc_dointvec,
         |   ^
   lib/test_sysctl.c:89:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:89:19: error: 'proc_dointvec' undeclared here (not in a function)
      89 |   .proc_handler = proc_dointvec,
         |                   ^~~~~~~~~~~~~
   lib/test_sysctl.c:92:3: error: field name not in record or union initializer
      92 |   .procname = "int_0003",
         |   ^
   lib/test_sysctl.c:92:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:93:3: error: field name not in record or union initializer
      93 |   .data  = &test_data.int_0003,
         |   ^
   lib/test_sysctl.c:93:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:94:3: error: field name not in record or union initializer
      94 |   .maxlen  = sizeof(test_data.int_0003),
         |   ^
   lib/test_sysctl.c:94:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:95:3: error: field name not in record or union initializer
      95 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:95:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:96:3: error: field name not in record or union initializer
      96 |   .proc_handler = proc_dointvec,
         |   ^
   lib/test_sysctl.c:96:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:99:3: error: field name not in record or union initializer
      99 |   .procname = "boot_int",
         |   ^
   lib/test_sysctl.c:99:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:100:3: error: field name not in record or union initializer
     100 |   .data  = &test_data.boot_int,
         |   ^
   lib/test_sysctl.c:100:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:101:3: error: field name not in record or union initializer
     101 |   .maxlen  = sizeof(test_data.boot_int),
         |   ^
   lib/test_sysctl.c:101:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:102:3: error: field name not in record or union initializer
     102 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:102:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:103:3: error: field name not in record or union initializer
     103 |   .proc_handler = proc_dointvec,
         |   ^
   lib/test_sysctl.c:103:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:104:3: error: field name not in record or union initializer
     104 |   .extra1  = SYSCTL_ZERO,
         |   ^
   lib/test_sysctl.c:104:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:104:14: error: 'SYSCTL_ZERO' undeclared here (not in a function)
     104 |   .extra1  = SYSCTL_ZERO,
         |              ^~~~~~~~~~~
   lib/test_sysctl.c:105:3: error: field name not in record or union initializer
     105 |   .extra2         = SYSCTL_ONE,
         |   ^
   lib/test_sysctl.c:105:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:105:21: error: 'SYSCTL_ONE' undeclared here (not in a function)
     105 |   .extra2         = SYSCTL_ONE,
         |                     ^~~~~~~~~~
   lib/test_sysctl.c:108:3: error: field name not in record or union initializer
     108 |   .procname = "uint_0001",
         |   ^
   lib/test_sysctl.c:108:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:109:3: error: field name not in record or union initializer
     109 |   .data  = &test_data.uint_0001,
         |   ^
   lib/test_sysctl.c:109:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:110:3: error: field name not in record or union initializer
     110 |   .maxlen  = sizeof(unsigned int),
         |   ^
   lib/test_sysctl.c:110:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:111:3: error: field name not in record or union initializer
     111 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:111:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:112:3: error: field name not in record or union initializer
     112 |   .proc_handler = proc_douintvec,
         |   ^
   lib/test_sysctl.c:112:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:112:19: error: 'proc_douintvec' undeclared here (not in a function)
     112 |   .proc_handler = proc_douintvec,
         |                   ^~~~~~~~~~~~~~
   lib/test_sysctl.c:115:3: error: field name not in record or union initializer
     115 |   .procname = "string_0001",
         |   ^
   lib/test_sysctl.c:115:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:116:3: error: field name not in record or union initializer
     116 |   .data  = &test_data.string_0001,
         |   ^
   lib/test_sysctl.c:116:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:117:3: error: field name not in record or union initializer
     117 |   .maxlen  = sizeof(test_data.string_0001),
         |   ^
   lib/test_sysctl.c:117:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:118:3: error: field name not in record or union initializer
     118 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:118:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:119:3: error: field name not in record or union initializer
     119 |   .proc_handler = proc_dostring,
         |   ^
   lib/test_sysctl.c:119:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:119:19: error: 'proc_dostring' undeclared here (not in a function)
     119 |   .proc_handler = proc_dostring,
         |                   ^~~~~~~~~~~~~
   lib/test_sysctl.c:122:3: error: field name not in record or union initializer
     122 |   .procname = "bitmap_0001",
         |   ^
   lib/test_sysctl.c:122:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:123:3: error: field name not in record or union initializer
     123 |   .data  = &test_data.bitmap_0001,
         |   ^
   lib/test_sysctl.c:123:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:124:3: error: field name not in record or union initializer
     124 |   .maxlen  = SYSCTL_TEST_BITMAP_SIZE,
         |   ^
   lib/test_sysctl.c:124:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:125:3: error: field name not in record or union initializer
     125 |   .mode  = 0644,
         |   ^
   lib/test_sysctl.c:125:3: note: (near initialization for 'test_table')
   lib/test_sysctl.c:126:3: error: field name not in record or union initializer
     126 |   .proc_handler = proc_do_large_bitmap,
         |   ^
   lib/test_sysctl.c:126:3: note: (near initialization for 'test_table')
>> lib/test_sysctl.c:126:19: error: 'proc_do_large_bitmap' undeclared here (not in a function)
     126 |   .proc_handler = proc_do_large_bitmap,
         |                   ^~~~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:131:25: error: array type has incomplete element type 'struct ctl_table'
     131 | static struct ctl_table test_sysctl_table[] = {
         |                         ^~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:133:3: error: field name not in record or union initializer
     133 |   .procname = "test_sysctl",
         |   ^
   lib/test_sysctl.c:133:3: note: (near initialization for 'test_sysctl_table')
   lib/test_sysctl.c:134:3: error: field name not in record or union initializer
     134 |   .maxlen  = 0,
         |   ^
   lib/test_sysctl.c:134:3: note: (near initialization for 'test_sysctl_table')
   lib/test_sysctl.c:135:3: error: field name not in record or union initializer
     135 |   .mode  = 0555,
         |   ^
   lib/test_sysctl.c:135:3: note: (near initialization for 'test_sysctl_table')
   lib/test_sysctl.c:136:3: error: field name not in record or union initializer
     136 |   .child  = test_table,
         |   ^
   lib/test_sysctl.c:136:3: note: (near initialization for 'test_sysctl_table')
   lib/test_sysctl.c:141:25: error: array type has incomplete element type 'struct ctl_table'
     141 | static struct ctl_table test_sysctl_root_table[] = {
         |                         ^~~~~~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:143:3: error: field name not in record or union initializer
     143 |   .procname = "debug",
         |   ^
   lib/test_sysctl.c:143:3: note: (near initialization for 'test_sysctl_root_table')
   lib/test_sysctl.c:144:3: error: field name not in record or union initializer
     144 |   .maxlen  = 0,
         |   ^
   lib/test_sysctl.c:144:3: note: (near initialization for 'test_sysctl_root_table')
   lib/test_sysctl.c:145:3: error: field name not in record or union initializer
     145 |   .mode  = 0555,
         |   ^
   lib/test_sysctl.c:145:3: note: (near initialization for 'test_sysctl_root_table')
   lib/test_sysctl.c:146:3: error: field name not in record or union initializer
     146 |   .child  = test_sysctl_table,
         |   ^
   lib/test_sysctl.c:146:3: note: (near initialization for 'test_sysctl_root_table')
   lib/test_sysctl.c: In function 'test_sysctl_init':
>> lib/test_sysctl.c:158:23: error: implicit declaration of function 'register_sysctl_table' [-Werror=implicit-function-declaration]
     158 |  test_sysctl_header = register_sysctl_table(test_sysctl_root_table);
         |                       ^~~~~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c: In function 'test_sysctl_exit':
>> lib/test_sysctl.c:171:3: error: implicit declaration of function 'unregister_sysctl_table' [-Werror=implicit-function-declaration]
     171 |   unregister_sysctl_table(test_sysctl_header);
         |   ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/uaccess.h:11,
                    from lib/test_sysctl.c:34:
   lib/test_sysctl.c: At top level:
   arch/x86/include/asm/uaccess.h:46:20: warning: 'pagefault_disabled' used but never defined
      46 | static inline bool pagefault_disabled(void);
         |                    ^~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:141:25: warning: 'test_sysctl_root_table' defined but not used [-Wunused-variable]
     141 | static struct ctl_table test_sysctl_root_table[] = {
         |                         ^~~~~~~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:131:25: warning: 'test_sysctl_table' defined but not used [-Wunused-variable]
     131 | static struct ctl_table test_sysctl_table[] = {
         |                         ^~~~~~~~~~~~~~~~~
   lib/test_sysctl.c:74:25: warning: 'test_table' defined but not used [-Wunused-variable]
      74 | static struct ctl_table test_table[] = {
         |                         ^~~~~~~~~~
   cc1: some warnings being treated as errors


vim +74 lib/test_sysctl.c

9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   72  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   73  /* These are all under /proc/sys/debug/test_sysctl/ */
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  @74  static struct ctl_table test_table[] = {
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   75  	{
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  @76  		.procname	= "int_0001",
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   77  		.data		= &test_data.int_0001,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   78  		.maxlen		= sizeof(int),
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   79  		.mode		= 0644,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  @80  		.proc_handler	= proc_dointvec_minmax,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   81  		.extra1		= &i_zero,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   82  		.extra2         = &i_one_hundred,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12   83  	},
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   84  	{
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   85  		.procname	= "int_0002",
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   86  		.data		= &test_data.int_0002,
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   87  		.maxlen		= sizeof(int),
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   88  		.mode		= 0644,
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12  @89  		.proc_handler	= proc_dointvec,
eb965eda1cabf2 Luis R. Rodriguez 2017-07-12   90  	},
7c43a657a4bead Luis R. Rodriguez 2017-07-12   91  	{
7c43a657a4bead Luis R. Rodriguez 2017-07-12   92  		.procname	= "int_0003",
7c43a657a4bead Luis R. Rodriguez 2017-07-12   93  		.data		= &test_data.int_0003,
7c43a657a4bead Luis R. Rodriguez 2017-07-12   94  		.maxlen		= sizeof(test_data.int_0003),
7c43a657a4bead Luis R. Rodriguez 2017-07-12   95  		.mode		= 0644,
7c43a657a4bead Luis R. Rodriguez 2017-07-12   96  		.proc_handler	= proc_dointvec,
7c43a657a4bead Luis R. Rodriguez 2017-07-12   97  	},
4f2f682d89d83f Vlastimil Babka   2020-06-07   98  	{
4f2f682d89d83f Vlastimil Babka   2020-06-07   99  		.procname	= "boot_int",
4f2f682d89d83f Vlastimil Babka   2020-06-07  100  		.data		= &test_data.boot_int,
4f2f682d89d83f Vlastimil Babka   2020-06-07  101  		.maxlen		= sizeof(test_data.boot_int),
4f2f682d89d83f Vlastimil Babka   2020-06-07  102  		.mode		= 0644,
4f2f682d89d83f Vlastimil Babka   2020-06-07  103  		.proc_handler	= proc_dointvec,
4f2f682d89d83f Vlastimil Babka   2020-06-07 @104  		.extra1		= SYSCTL_ZERO,
4f2f682d89d83f Vlastimil Babka   2020-06-07 @105  		.extra2         = SYSCTL_ONE,
4f2f682d89d83f Vlastimil Babka   2020-06-07  106  	},
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  107  	{
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  108  		.procname	= "uint_0001",
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  109  		.data		= &test_data.uint_0001,
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  110  		.maxlen		= sizeof(unsigned int),
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  111  		.mode		= 0644,
2920fad3a5d394 Luis R. Rodriguez 2017-07-12 @112  		.proc_handler	= proc_douintvec,
2920fad3a5d394 Luis R. Rodriguez 2017-07-12  113  	},
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  114  	{
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  115  		.procname	= "string_0001",
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  116  		.data		= &test_data.string_0001,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  117  		.maxlen		= sizeof(test_data.string_0001),
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  118  		.mode		= 0644,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12 @119  		.proc_handler	= proc_dostring,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  120  	},
2ea622b887e744 Eric Sandeen      2019-05-14  121  	{
2ea622b887e744 Eric Sandeen      2019-05-14  122  		.procname	= "bitmap_0001",
2ea622b887e744 Eric Sandeen      2019-05-14  123  		.data		= &test_data.bitmap_0001,
2ea622b887e744 Eric Sandeen      2019-05-14  124  		.maxlen		= SYSCTL_TEST_BITMAP_SIZE,
2ea622b887e744 Eric Sandeen      2019-05-14  125  		.mode		= 0644,
2ea622b887e744 Eric Sandeen      2019-05-14 @126  		.proc_handler	= proc_do_large_bitmap,
2ea622b887e744 Eric Sandeen      2019-05-14  127  	},
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  128  	{ }
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  129  };
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  130  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  131  static struct ctl_table test_sysctl_table[] = {
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  132  	{
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  133  		.procname	= "test_sysctl",
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  134  		.maxlen		= 0,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  135  		.mode		= 0555,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  136  		.child		= test_table,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  137  	},
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  138  	{ }
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  139  };
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  140  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  141  static struct ctl_table test_sysctl_root_table[] = {
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  142  	{
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  143  		.procname	= "debug",
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  144  		.maxlen		= 0,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  145  		.mode		= 0555,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  146  		.child		= test_sysctl_table,
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  147  	},
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  148  	{ }
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  149  };
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  150  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  151  static struct ctl_table_header *test_sysctl_header;
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  152  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  153  static int __init test_sysctl_init(void)
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  154  {
2ea622b887e744 Eric Sandeen      2019-05-14  155  	test_data.bitmap_0001 = kzalloc(SYSCTL_TEST_BITMAP_SIZE/8, GFP_KERNEL);
2ea622b887e744 Eric Sandeen      2019-05-14  156  	if (!test_data.bitmap_0001)
2ea622b887e744 Eric Sandeen      2019-05-14  157  		return -ENOMEM;
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12 @158  	test_sysctl_header = register_sysctl_table(test_sysctl_root_table);
2ea622b887e744 Eric Sandeen      2019-05-14  159  	if (!test_sysctl_header) {
2ea622b887e744 Eric Sandeen      2019-05-14  160  		kfree(test_data.bitmap_0001);
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  161  		return -ENOMEM;
2ea622b887e744 Eric Sandeen      2019-05-14  162  	}
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  163  	return 0;
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  164  }
2f56f84511367c Masami Hiramatsu  2020-05-28  165  module_init(test_sysctl_init);
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  166  
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  167  static void __exit test_sysctl_exit(void)
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  168  {
2ea622b887e744 Eric Sandeen      2019-05-14  169  	kfree(test_data.bitmap_0001);
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  170  	if (test_sysctl_header)
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12 @171  		unregister_sysctl_table(test_sysctl_header);
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  172  }
9308f2f9e7f055 Luis R. Rodriguez 2017-07-12  173  

:::::: The code at line 74 was first introduced by commit
:::::: 9308f2f9e7f055cf3934645ec622bb5259dc1c14 test_sysctl: add dedicated proc sysctl test driver

:::::: TO: Luis R. Rodriguez <mcgrof@kernel.org>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28760 bytes --]

             reply	other threads:[~2021-06-14  4:08 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-14  4:07 kernel test robot [this message]
2021-06-14  4:07 ` [tip:tmp.tmp2 291/364] lib/test_sysctl.c:74:25: error: array type has incomplete element type 'struct ctl_table' kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202106141233.yph6M5wy-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.