lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202106141233.yph6M5wy-lkp@intel.com>
Date:   Mon, 14 Jun 2021 12:07:40 +0800
From:   kernel test robot <lkp@...el.com>
To:     Ingo Molnar <mingo@...nel.org>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        x86@...nel.org
Subject: [tip:tmp.tmp2 291/364] lib/test_sysctl.c:74:25: error: array type
 has incomplete element type 'struct ctl_table'

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@...el.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@...nel.org>
:::::: CC: Linus Torvalds <torvalds@...ux-foundation.org>

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

Download attachment ".config.gz" of type "application/gzip" (28760 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ