tree: https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git working-io_uring head: b03397f9888285533147f4b7669dd2f5faa33f11 commit: 61801b89c3279e80bd30350b3ef85707b22d8ef3 [2/9] audit,io_uring,io-wq: add some basic audit support to io_uring config: ia64-randconfig-r024-20210522 (attached as .config) compiler: ia64-linux-gcc (GCC) 9.3.0 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://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git/commit/?id=61801b89c3279e80bd30350b3ef85707b22d8ef3 git remote add pcmoore-selinux https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git git fetch --no-tags pcmoore-selinux working-io_uring git checkout 61801b89c3279e80bd30350b3ef85707b22d8ef3 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): fs/io_uring.c: In function 'io_issue_sqe': >> fs/io_uring.c:6110:3: error: implicit declaration of function 'audit_uring_entry'; did you mean 'audit_syscall_entry'? [-Werror=implicit-function-declaration] 6110 | audit_uring_entry(req->opcode); | ^~~~~~~~~~~~~~~~~ | audit_syscall_entry >> fs/io_uring.c:6219:3: error: implicit declaration of function 'audit_uring_exit'; did you mean 'audit_context'? [-Werror=implicit-function-declaration] 6219 | audit_uring_exit(!ret, ret); | ^~~~~~~~~~~~~~~~ | audit_context cc1: some warnings being treated as errors vim +6110 fs/io_uring.c 6099 6100 static int io_issue_sqe(struct io_kiocb *req, unsigned int issue_flags) 6101 { 6102 struct io_ring_ctx *ctx = req->ctx; 6103 const struct cred *creds = NULL; 6104 int ret; 6105 6106 if (req->work.creds && req->work.creds != current_cred()) 6107 creds = override_creds(req->work.creds); 6108 6109 if (req->opcode < IORING_OP_LAST) > 6110 audit_uring_entry(req->opcode); 6111 6112 switch (req->opcode) { 6113 case IORING_OP_NOP: 6114 ret = io_nop(req, issue_flags); 6115 break; 6116 case IORING_OP_READV: 6117 case IORING_OP_READ_FIXED: 6118 case IORING_OP_READ: 6119 ret = io_read(req, issue_flags); 6120 break; 6121 case IORING_OP_WRITEV: 6122 case IORING_OP_WRITE_FIXED: 6123 case IORING_OP_WRITE: 6124 ret = io_write(req, issue_flags); 6125 break; 6126 case IORING_OP_FSYNC: 6127 ret = io_fsync(req, issue_flags); 6128 break; 6129 case IORING_OP_POLL_ADD: 6130 ret = io_poll_add(req, issue_flags); 6131 break; 6132 case IORING_OP_POLL_REMOVE: 6133 ret = io_poll_update(req, issue_flags); 6134 break; 6135 case IORING_OP_SYNC_FILE_RANGE: 6136 ret = io_sync_file_range(req, issue_flags); 6137 break; 6138 case IORING_OP_SENDMSG: 6139 ret = io_sendmsg(req, issue_flags); 6140 break; 6141 case IORING_OP_SEND: 6142 ret = io_send(req, issue_flags); 6143 break; 6144 case IORING_OP_RECVMSG: 6145 ret = io_recvmsg(req, issue_flags); 6146 break; 6147 case IORING_OP_RECV: 6148 ret = io_recv(req, issue_flags); 6149 break; 6150 case IORING_OP_TIMEOUT: 6151 ret = io_timeout(req, issue_flags); 6152 break; 6153 case IORING_OP_TIMEOUT_REMOVE: 6154 ret = io_timeout_remove(req, issue_flags); 6155 break; 6156 case IORING_OP_ACCEPT: 6157 ret = io_accept(req, issue_flags); 6158 break; 6159 case IORING_OP_CONNECT: 6160 ret = io_connect(req, issue_flags); 6161 break; 6162 case IORING_OP_ASYNC_CANCEL: 6163 ret = io_async_cancel(req, issue_flags); 6164 break; 6165 case IORING_OP_FALLOCATE: 6166 ret = io_fallocate(req, issue_flags); 6167 break; 6168 case IORING_OP_OPENAT: 6169 ret = io_openat(req, issue_flags); 6170 break; 6171 case IORING_OP_CLOSE: 6172 ret = io_close(req, issue_flags); 6173 break; 6174 case IORING_OP_FILES_UPDATE: 6175 ret = io_files_update(req, issue_flags); 6176 break; 6177 case IORING_OP_STATX: 6178 ret = io_statx(req, issue_flags); 6179 break; 6180 case IORING_OP_FADVISE: 6181 ret = io_fadvise(req, issue_flags); 6182 break; 6183 case IORING_OP_MADVISE: 6184 ret = io_madvise(req, issue_flags); 6185 break; 6186 case IORING_OP_OPENAT2: 6187 ret = io_openat2(req, issue_flags); 6188 break; 6189 case IORING_OP_EPOLL_CTL: 6190 ret = io_epoll_ctl(req, issue_flags); 6191 break; 6192 case IORING_OP_SPLICE: 6193 ret = io_splice(req, issue_flags); 6194 break; 6195 case IORING_OP_PROVIDE_BUFFERS: 6196 ret = io_provide_buffers(req, issue_flags); 6197 break; 6198 case IORING_OP_REMOVE_BUFFERS: 6199 ret = io_remove_buffers(req, issue_flags); 6200 break; 6201 case IORING_OP_TEE: 6202 ret = io_tee(req, issue_flags); 6203 break; 6204 case IORING_OP_SHUTDOWN: 6205 ret = io_shutdown(req, issue_flags); 6206 break; 6207 case IORING_OP_RENAMEAT: 6208 ret = io_renameat(req, issue_flags); 6209 break; 6210 case IORING_OP_UNLINKAT: 6211 ret = io_unlinkat(req, issue_flags); 6212 break; 6213 default: 6214 ret = -EINVAL; 6215 break; 6216 } 6217 6218 if (req->opcode < IORING_OP_LAST) > 6219 audit_uring_exit(!ret, ret); 6220 6221 if (creds) 6222 revert_creds(creds); 6223 6224 if (ret) 6225 return ret; 6226 6227 /* If the op doesn't have a file, we're not polling for it */ 6228 if ((ctx->flags & IORING_SETUP_IOPOLL) && req->file) { 6229 const bool in_async = io_wq_current_is_worker(); 6230 6231 /* workqueue context doesn't hold uring_lock, grab it now */ 6232 if (in_async) 6233 mutex_lock(&ctx->uring_lock); 6234 6235 io_iopoll_req_issued(req, in_async); 6236 6237 if (in_async) 6238 mutex_unlock(&ctx->uring_lock); 6239 } 6240 6241 return 0; 6242 } 6243 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip