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: <202205270601.ddjmEUKQ-lkp@intel.com>
Date:   Fri, 27 May 2022 06:44:10 +0800
From:   kernel test robot <lkp@...el.com>
To:     Jens Axboe <axboe@...nel.dk>
Cc:     llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
        GNU/Weeb Mailing List <gwml@...r.gnuweeb.org>,
        linux-kernel@...r.kernel.org
Subject: [ammarfaizi2-block:axboe/linux-block/for-5.20/io_uring 60/60]
 io_uring/io_uring.c:224:13: error: use of undeclared identifier
 'io_eopnotsupp_prep'

tree:   https://github.com/ammarfaizi2/linux-block axboe/linux-block/for-5.20/io_uring
head:   69d8d55bf2af24767a9ee24afdf88f349c4eec2d
commit: 69d8d55bf2af24767a9ee24afdf88f349c4eec2d [60/60] io_uring: move io_op_defs[] back to the top of the file
config: hexagon-randconfig-r045-20220524 (https://download.01.org/0day-ci/archive/20220527/202205270601.ddjmEUKQ-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 6f4644d194da594562027a5d458d9fb7a20ebc39)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/ammarfaizi2/linux-block/commit/69d8d55bf2af24767a9ee24afdf88f349c4eec2d
        git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
        git fetch --no-tags ammarfaizi2-block axboe/linux-block/for-5.20/io_uring
        git checkout 69d8d55bf2af24767a9ee24afdf88f349c4eec2d
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@...el.com>

All errors (new ones prefixed by >>):

>> io_uring/io_uring.c:224:13: error: use of undeclared identifier 'io_eopnotsupp_prep'
                   .prep                   = io_eopnotsupp_prep,
                                             ^
   io_uring/io_uring.c:240:13: error: use of undeclared identifier 'io_eopnotsupp_prep'
                   .prep                   = io_eopnotsupp_prep,
                                             ^
   io_uring/io_uring.c:268:13: error: use of undeclared identifier 'io_eopnotsupp_prep'
                   .prep                   = io_eopnotsupp_prep,
                                             ^
   io_uring/io_uring.c:295:13: error: use of undeclared identifier 'io_eopnotsupp_prep'
                   .prep                   = io_eopnotsupp_prep,
                                             ^
   io_uring/io_uring.c:379:13: error: use of undeclared identifier 'io_eopnotsupp_prep'
                   .prep                   = io_eopnotsupp_prep,
                                             ^
   io_uring/io_uring.c:393:13: error: use of undeclared identifier 'io_eopnotsupp_prep'
                   .prep                   = io_eopnotsupp_prep,
                                             ^
   io_uring/io_uring.c:410:13: error: use of undeclared identifier 'io_eopnotsupp_prep'
                   .prep                   = io_eopnotsupp_prep,
                                             ^
   io_uring/io_uring.c:452:13: error: use of undeclared identifier 'io_eopnotsupp_prep'
                   .prep                   = io_eopnotsupp_prep,
                                             ^
   io_uring/io_uring.c:525:13: error: use of undeclared identifier 'io_eopnotsupp_prep'
                   .prep                   = io_eopnotsupp_prep,
                                             ^
>> io_uring/io_uring.c:4495:15: error: invalid application of 'sizeof' to an incomplete type 'const struct io_op_def[]'
           BUILD_BUG_ON(ARRAY_SIZE(io_op_defs) != IORING_OP_LAST);
           ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:55:32: note: expanded from macro 'ARRAY_SIZE'
   #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
                                  ^
   include/linux/build_bug.h:50:19: note: expanded from macro 'BUILD_BUG_ON'
           BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
           ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:39:58: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
   include/linux/compiler_types.h:352:22: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler_types.h:340:23: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler_types.h:332:9: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                         ^~~~~~~~~
   io_uring/io_uring.c:4500:18: error: invalid application of 'sizeof' to an incomplete type 'const struct io_op_def[]'
           for (i = 0; i < ARRAY_SIZE(io_op_defs); i++) {
                           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:55:32: note: expanded from macro 'ARRAY_SIZE'
   #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
                                  ^~~~~
   11 errors generated.


vim +/io_eopnotsupp_prep +224 io_uring/io_uring.c

   115	
   116	const struct io_op_def io_op_defs[] = {
   117		[IORING_OP_NOP] = {
   118			.audit_skip		= 1,
   119			.iopoll			= 1,
   120			.buffer_select		= 1,
   121			.name			= "NOP",
   122			.prep			= io_nop_prep,
   123			.issue			= io_nop,
   124		},
   125		[IORING_OP_READV] = {
   126			.needs_file		= 1,
   127			.unbound_nonreg_file	= 1,
   128			.pollin			= 1,
   129			.buffer_select		= 1,
   130			.plug			= 1,
   131			.audit_skip		= 1,
   132			.ioprio			= 1,
   133			.iopoll			= 1,
   134			.async_size		= sizeof(struct io_async_rw),
   135			.name			= "READV",
   136			.prep			= io_prep_rw,
   137			.issue			= io_read,
   138			.prep_async		= io_readv_prep_async,
   139			.cleanup		= io_readv_writev_cleanup,
   140		},
   141		[IORING_OP_WRITEV] = {
   142			.needs_file		= 1,
   143			.hash_reg_file		= 1,
   144			.unbound_nonreg_file	= 1,
   145			.pollout		= 1,
   146			.plug			= 1,
   147			.audit_skip		= 1,
   148			.ioprio			= 1,
   149			.iopoll			= 1,
   150			.async_size		= sizeof(struct io_async_rw),
   151			.name			= "WRITEV",
   152			.prep			= io_prep_rw,
   153			.issue			= io_write,
   154			.prep_async		= io_writev_prep_async,
   155			.cleanup		= io_readv_writev_cleanup,
   156		},
   157		[IORING_OP_FSYNC] = {
   158			.needs_file		= 1,
   159			.audit_skip		= 1,
   160			.name			= "FSYNC",
   161			.prep			= io_fsync_prep,
   162			.issue			= io_fsync,
   163		},
   164		[IORING_OP_READ_FIXED] = {
   165			.needs_file		= 1,
   166			.unbound_nonreg_file	= 1,
   167			.pollin			= 1,
   168			.plug			= 1,
   169			.audit_skip		= 1,
   170			.ioprio			= 1,
   171			.iopoll			= 1,
   172			.async_size		= sizeof(struct io_async_rw),
   173			.name			= "READ_FIXED",
   174			.prep			= io_prep_rw,
   175			.issue			= io_read,
   176		},
   177		[IORING_OP_WRITE_FIXED] = {
   178			.needs_file		= 1,
   179			.hash_reg_file		= 1,
   180			.unbound_nonreg_file	= 1,
   181			.pollout		= 1,
   182			.plug			= 1,
   183			.audit_skip		= 1,
   184			.ioprio			= 1,
   185			.iopoll			= 1,
   186			.async_size		= sizeof(struct io_async_rw),
   187			.name			= "WRITE_FIXED",
   188			.prep			= io_prep_rw,
   189			.issue			= io_write,
   190		},
   191		[IORING_OP_POLL_ADD] = {
   192			.needs_file		= 1,
   193			.unbound_nonreg_file	= 1,
   194			.audit_skip		= 1,
   195			.name			= "POLL_ADD",
   196			.prep			= io_poll_add_prep,
   197			.issue			= io_poll_add,
   198		},
   199		[IORING_OP_POLL_REMOVE] = {
   200			.audit_skip		= 1,
   201			.name			= "POLL_REMOVE",
   202			.prep			= io_poll_remove_prep,
   203			.issue			= io_poll_remove,
   204		},
   205		[IORING_OP_SYNC_FILE_RANGE] = {
   206			.needs_file		= 1,
   207			.audit_skip		= 1,
   208			.name			= "SYNC_FILE_RANGE",
   209			.prep			= io_sfr_prep,
   210			.issue			= io_sync_file_range,
   211		},
   212		[IORING_OP_SENDMSG] = {
   213			.needs_file		= 1,
   214			.unbound_nonreg_file	= 1,
   215			.pollout		= 1,
   216			.name			= "SENDMSG",
   217	#if defined(CONFIG_NET)
   218			.async_size		= sizeof(struct io_async_msghdr),
   219			.prep			= io_sendmsg_prep,
   220			.issue			= io_sendmsg,
   221			.prep_async		= io_sendmsg_prep_async,
   222			.cleanup		= io_sendmsg_recvmsg_cleanup,
   223	#else
 > 224			.prep			= io_eopnotsupp_prep,
   225	#endif
   226		},
   227		[IORING_OP_RECVMSG] = {
   228			.needs_file		= 1,
   229			.unbound_nonreg_file	= 1,
   230			.pollin			= 1,
   231			.buffer_select		= 1,
   232			.name			= "RECVMSG",
   233	#if defined(CONFIG_NET)
   234			.async_size		= sizeof(struct io_async_msghdr),
   235			.prep			= io_recvmsg_prep,
   236			.issue			= io_recvmsg,
   237			.prep_async		= io_recvmsg_prep_async,
   238			.cleanup		= io_sendmsg_recvmsg_cleanup,
   239	#else
   240			.prep			= io_eopnotsupp_prep,
   241	#endif
   242		},
   243		[IORING_OP_TIMEOUT] = {
   244			.audit_skip		= 1,
   245			.async_size		= sizeof(struct io_timeout_data),
   246			.name			= "TIMEOUT",
   247			.prep			= io_timeout_prep,
   248			.issue			= io_timeout,
   249		},
   250		[IORING_OP_TIMEOUT_REMOVE] = {
   251			/* used by timeout updates' prep() */
   252			.audit_skip		= 1,
   253			.name			= "TIMEOUT_REMOVE",
   254			.prep			= io_timeout_remove_prep,
   255			.issue			= io_timeout_remove,
   256		},
   257		[IORING_OP_ACCEPT] = {
   258			.needs_file		= 1,
   259			.unbound_nonreg_file	= 1,
   260			.pollin			= 1,
   261			.poll_exclusive		= 1,
   262			.ioprio			= 1,	/* used for flags */
   263			.name			= "ACCEPT",
   264	#if defined(CONFIG_NET)
   265			.prep			= io_accept_prep,
   266			.issue			= io_accept,
   267	#else
   268			.prep			= io_eopnotsupp_prep,
   269	#endif
   270		},
   271		[IORING_OP_ASYNC_CANCEL] = {
   272			.audit_skip		= 1,
   273			.name			= "ASYNC_CANCEL",
   274			.prep			= io_async_cancel_prep,
   275			.issue			= io_async_cancel,
   276		},
   277		[IORING_OP_LINK_TIMEOUT] = {
   278			.audit_skip		= 1,
   279			.async_size		= sizeof(struct io_timeout_data),
   280			.name			= "LINK_TIMEOUT",
   281			.prep			= io_link_timeout_prep,
   282			.issue			= io_no_issue,
   283		},
   284		[IORING_OP_CONNECT] = {
   285			.needs_file		= 1,
   286			.unbound_nonreg_file	= 1,
   287			.pollout		= 1,
   288			.name			= "CONNECT",
   289	#if defined(CONFIG_NET)
   290			.async_size		= sizeof(struct io_async_connect),
   291			.prep			= io_connect_prep,
   292			.issue			= io_connect,
   293			.prep_async		= io_connect_prep_async,
   294	#else
   295			.prep			= io_eopnotsupp_prep,
   296	#endif
   297		},
   298		[IORING_OP_FALLOCATE] = {
   299			.needs_file		= 1,
   300			.name			= "FALLOCATE",
   301			.prep			= io_fallocate_prep,
   302			.issue			= io_fallocate,
   303		},
   304		[IORING_OP_OPENAT] = {
   305			.name			= "OPENAT",
   306			.prep			= io_openat_prep,
   307			.issue			= io_openat,
   308			.cleanup		= io_open_cleanup,
   309		},
   310		[IORING_OP_CLOSE] = {
   311			.name			= "CLOSE",
   312			.prep			= io_close_prep,
   313			.issue			= io_close,
   314		},
   315		[IORING_OP_FILES_UPDATE] = {
   316			.audit_skip		= 1,
   317			.iopoll			= 1,
   318			.name			= "FILES_UPDATE",
   319			.prep			= io_files_update_prep,
   320			.issue			= io_files_update,
   321		},
   322		[IORING_OP_STATX] = {
   323			.audit_skip		= 1,
   324			.name			= "STATX",
   325			.prep			= io_statx_prep,
   326			.issue			= io_statx,
   327			.cleanup		= io_statx_cleanup,
   328		},
   329		[IORING_OP_READ] = {
   330			.needs_file		= 1,
   331			.unbound_nonreg_file	= 1,
   332			.pollin			= 1,
   333			.buffer_select		= 1,
   334			.plug			= 1,
   335			.audit_skip		= 1,
   336			.ioprio			= 1,
   337			.iopoll			= 1,
   338			.async_size		= sizeof(struct io_async_rw),
   339			.name			= "READ",
   340			.prep			= io_prep_rw,
   341			.issue			= io_read,
   342		},
   343		[IORING_OP_WRITE] = {
   344			.needs_file		= 1,
   345			.hash_reg_file		= 1,
   346			.unbound_nonreg_file	= 1,
   347			.pollout		= 1,
   348			.plug			= 1,
   349			.audit_skip		= 1,
   350			.ioprio			= 1,
   351			.iopoll			= 1,
   352			.async_size		= sizeof(struct io_async_rw),
   353			.name			= "WRITE",
   354			.prep			= io_prep_rw,
   355			.issue			= io_write,
   356		},
   357		[IORING_OP_FADVISE] = {
   358			.needs_file		= 1,
   359			.audit_skip		= 1,
   360			.name			= "FADVISE",
   361			.prep			= io_fadvise_prep,
   362			.issue			= io_fadvise,
   363		},
   364		[IORING_OP_MADVISE] = {
   365			.name			= "MADVISE",
   366			.prep			= io_madvise_prep,
   367			.issue			= io_madvise,
   368		},
   369		[IORING_OP_SEND] = {
   370			.needs_file		= 1,
   371			.unbound_nonreg_file	= 1,
   372			.pollout		= 1,
   373			.audit_skip		= 1,
   374			.name			= "SEND",
   375	#if defined(CONFIG_NET)
   376			.prep			= io_sendmsg_prep,
   377			.issue			= io_send,
   378	#else
   379			.prep			= io_eopnotsupp_prep,
   380	#endif
   381		},
   382		[IORING_OP_RECV] = {
   383			.needs_file		= 1,
   384			.unbound_nonreg_file	= 1,
   385			.pollin			= 1,
   386			.buffer_select		= 1,
   387			.audit_skip		= 1,
   388			.name			= "RECV",
   389	#if defined(CONFIG_NET)
   390			.prep			= io_recvmsg_prep,
   391			.issue			= io_recv,
   392	#else
   393			.prep			= io_eopnotsupp_prep,
   394	#endif
   395		},
   396		[IORING_OP_OPENAT2] = {
   397			.name			= "OPENAT2",
   398			.prep			= io_openat2_prep,
   399			.issue			= io_openat2,
   400			.cleanup		= io_open_cleanup,
   401		},
   402		[IORING_OP_EPOLL_CTL] = {
   403			.unbound_nonreg_file	= 1,
   404			.audit_skip		= 1,
   405			.name			= "EPOLL",
   406	#if defined(CONFIG_EPOLL)
   407			.prep			= io_epoll_ctl_prep,
   408			.issue			= io_epoll_ctl,
   409	#else
 > 410			.prep			= io_eopnotsupp_prep,
   411	#endif
   412		},
   413		[IORING_OP_SPLICE] = {
   414			.needs_file		= 1,
   415			.hash_reg_file		= 1,
   416			.unbound_nonreg_file	= 1,
   417			.audit_skip		= 1,
   418			.name			= "SPLICE",
   419			.prep			= io_splice_prep,
   420			.issue			= io_splice,
   421		},
   422		[IORING_OP_PROVIDE_BUFFERS] = {
   423			.audit_skip		= 1,
   424			.iopoll			= 1,
   425			.name			= "PROVIDE_BUFFERS",
   426			.prep			= io_provide_buffers_prep,
   427			.issue			= io_provide_buffers,
   428		},
   429		[IORING_OP_REMOVE_BUFFERS] = {
   430			.audit_skip		= 1,
   431			.iopoll			= 1,
   432			.name			= "REMOVE_BUFFERS",
   433			.prep			= io_remove_buffers_prep,
   434			.issue			= io_remove_buffers,
   435		},
   436		[IORING_OP_TEE] = {
   437			.needs_file		= 1,
   438			.hash_reg_file		= 1,
   439			.unbound_nonreg_file	= 1,
   440			.audit_skip		= 1,
   441			.name			= "TEE",
   442			.prep			= io_tee_prep,
   443			.issue			= io_tee,
   444		},
   445		[IORING_OP_SHUTDOWN] = {
   446			.needs_file		= 1,
   447			.name			= "SHUTDOWN",
   448	#if defined(CONFIG_NET)
   449			.prep			= io_shutdown_prep,
   450			.issue			= io_shutdown,
   451	#else
   452			.prep			= io_eopnotsupp_prep,
   453	#endif
   454		},
   455		[IORING_OP_RENAMEAT] = {
   456			.name			= "RENAMEAT",
   457			.prep			= io_renameat_prep,
   458			.issue			= io_renameat,
   459			.cleanup		= io_renameat_cleanup,
   460		},
   461		[IORING_OP_UNLINKAT] = {
   462			.name			= "UNLINKAT",
   463			.prep			= io_unlinkat_prep,
   464			.issue			= io_unlinkat,
   465			.cleanup		= io_unlinkat_cleanup,
   466		},
   467		[IORING_OP_MKDIRAT] = {
   468			.name			= "MKDIRAT",
   469			.prep			= io_mkdirat_prep,
   470			.issue			= io_mkdirat,
   471			.cleanup		= io_mkdirat_cleanup,
   472		},
   473		[IORING_OP_SYMLINKAT] = {
   474			.name			= "SYMLINKAT",
   475			.prep			= io_symlinkat_prep,
   476			.issue			= io_symlinkat,
   477			.cleanup		= io_link_cleanup,
   478		},
   479		[IORING_OP_LINKAT] = {
   480			.name			= "LINKAT",
   481			.prep			= io_linkat_prep,
   482			.issue			= io_linkat,
   483			.cleanup		= io_link_cleanup,
   484		},
   485		[IORING_OP_MSG_RING] = {
   486			.needs_file		= 1,
   487			.iopoll			= 1,
   488			.name			= "MSG_RING",
   489			.prep			= io_msg_ring_prep,
   490			.issue			= io_msg_ring,
   491		},
   492		[IORING_OP_FSETXATTR] = {
   493			.needs_file = 1,
   494			.name			= "FSETXATTR",
   495			.prep			= io_fsetxattr_prep,
   496			.issue			= io_fsetxattr,
   497			.cleanup		= io_xattr_cleanup,
   498		},
   499		[IORING_OP_SETXATTR] = {
   500			.name			= "SETXATTR",
   501			.prep			= io_setxattr_prep,
   502			.issue			= io_setxattr,
   503			.cleanup		= io_xattr_cleanup,
   504		},
   505		[IORING_OP_FGETXATTR] = {
   506			.needs_file = 1,
   507			.name			= "FGETXATTR",
   508			.prep			= io_fgetxattr_prep,
   509			.issue			= io_fgetxattr,
   510			.cleanup		= io_xattr_cleanup,
   511		},
   512		[IORING_OP_GETXATTR] = {
   513			.name			= "GETXATTR",
   514			.prep			= io_getxattr_prep,
   515			.issue			= io_getxattr,
   516			.cleanup		= io_xattr_cleanup,
   517		},
   518		[IORING_OP_SOCKET] = {
   519			.audit_skip		= 1,
   520			.name			= "SOCKET",
   521	#if defined(CONFIG_NET)
   522			.prep			= io_socket_prep,
   523			.issue			= io_socket,
   524	#else
   525			.prep			= io_eopnotsupp_prep,
   526	#endif
   527		},
   528		[IORING_OP_URING_CMD] = {
   529			.needs_file		= 1,
   530			.plug			= 1,
   531			.name			= "URING_CMD",
   532			.async_size		= uring_cmd_pdu_size(1),
   533			.prep			= io_uring_cmd_prep,
   534			.issue			= io_uring_cmd,
   535			.prep_async		= io_uring_cmd_prep_async,
   536		},
   537	};
   538	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ