====== Cleaning ====== ../../../scripts/Makefile.include:4: *** O=build_tools/ does not exist. Stop. make[1]: *** nsfs: No such file or directory. Stop. ====== Baseline building the tree ====== mount-notify_test_ns.c:23:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 23 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net/wt-0/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net/wt-0/build_tools/usr/include/linux/types.h:9, from /home/nipa/net/wt-0/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test_ns.c:6: /home/nipa/net/wt-0/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/filesystems/mount-notify/mount-notify_test_ns] Error 1 make[1]: *** Waiting for unfinished jobs.... mount-notify_test.c:22:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 22 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net/wt-0/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net/wt-0/build_tools/usr/include/linux/types.h:9, from /home/nipa/net/wt-0/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test.c:6: /home/nipa/net/wt-0/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/filesystems/mount-notify/mount-notify_test] Error 1 In file included from iommufd.c:12: In function ‘_test_ioctl_ioas_map_file’, inlined from ‘iommufd_mock_domain_all_aligns’ at iommufd.c:1772:5, inlined from ‘wrapper_iommufd_mock_domain_all_aligns’ at iommufd.c:1740:1: iommufd_utils.h:675:36: warning: ‘mfd’ may be used uninitialized [-Wmaybe-uninitialized] 675 | struct iommu_ioas_map_file cmd = { | ^~~ iommufd.c: In function ‘wrapper_iommufd_mock_domain_all_aligns’: iommufd.c:1749:13: note: ‘mfd’ was declared here 1749 | int mfd; | ^~~ In function ‘_test_ioctl_ioas_map_file’, inlined from ‘iommufd_mock_domain_all_aligns_copy’ at iommufd.c:1826:5, inlined from ‘wrapper_iommufd_mock_domain_all_aligns_copy’ at iommufd.c:1792:1: iommufd_utils.h:675:36: warning: ‘mfd’ may be used uninitialized [-Wmaybe-uninitialized] 675 | struct iommu_ioas_map_file cmd = { | ^~~ iommufd.c: In function ‘wrapper_iommufd_mock_domain_all_aligns_copy’: iommufd.c:1801:13: note: ‘mfd’ was declared here 1801 | int mfd; | ^~~ In file included from iommufd_utils.h:11: In function ‘_test_cmd_get_hw_info’, inlined from ‘iommufd_ioas_get_hw_info’ at iommufd.c:779:3, inlined from ‘wrapper_iommufd_ioas_get_hw_info’ at iommufd.c:752:1: iommufd_utils.h:804:37: warning: array subscript ‘struct iommu_test_hw_info[0]’ is partly outside array bounds of ‘struct iommu_test_hw_info_buffer_smaller[1]’ [-Warray-bounds=] 804 | assert(!info->flags); | ~~~~^~~~~~~ iommufd.c: In function ‘wrapper_iommufd_ioas_get_hw_info’: iommufd.c:761:11: note: object ‘buffer_smaller’ of size 4 761 | } buffer_smaller; | ^~~~~~~~~~~~~~ make[1]: *** nsfs: No such file or directory. Stop. In file included from kublk.c:6: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in kublk.c: In function ‘ublk_ctrl_update_size’: kublk.c:223:27: error: ‘UBLK_U_CMD_UPDATE_SIZE’ undeclared (first use in this function) 223 | .cmd_op = UBLK_U_CMD_UPDATE_SIZE, | ^~~~~~~~~~~~~~~~~~~~~~ kublk.c: In function ‘ublk_ctrl_quiesce_dev’: kublk.c:235:27: error: ‘UBLK_U_CMD_QUIESCE_DEV’ undeclared (first use in this function); did you mean ‘UBLK_U_CMD_DEL_DEV’? 235 | .cmd_op = UBLK_U_CMD_QUIESCE_DEV, | ^~~~~~~~~~~~~~~~~~~~~~ | UBLK_U_CMD_DEL_DEV kublk.c: In function ‘ublk_queue_init’: kublk.c:447:63: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 447 | if (dev->dev_info.flags & (UBLK_F_SUPPORT_ZERO_COPY | UBLK_F_AUTO_BUF_REG)) { | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG kublk.c: In function ‘ublk_set_auto_buf_reg’: kublk.c:560:16: error: variable ‘buf’ has initializer but incomplete type 560 | struct ublk_auto_buf_reg buf = {}; | ^~~~~~~~~~~~~~~~~ kublk.c:560:34: error: storage size of ‘buf’ isn’t known 560 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c:568:29: error: ‘UBLK_AUTO_BUF_REG_FALLBACK’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG_FALLBACK’? 568 | buf.flags = UBLK_AUTO_BUF_REG_FALLBACK; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG_FALLBACK kublk.c:570:21: error: implicit declaration of function ‘ublk_auto_buf_reg_to_sqe_addr’ [-Wimplicit-function-declaration] 570 | sqe->addr = ublk_auto_buf_reg_to_sqe_addr(&buf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kublk.c:560:34: error: unused variable ‘buf’ [-Werror=unused-variable] 560 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c: In function ‘__cmd_dev_add’: kublk.c:1068:25: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1068 | if ((features & UBLK_F_QUIESCE) && | ^~~~~~~~~~~~~~ kublk.c: In function ‘cmd_dev_get_features’: kublk.c:1266:30: error: ‘UBLK_F_UPDATE_SIZE’ undeclared (first use in this function) 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1267:30: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1268:30: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c: In function ‘main’: kublk.c:1493:46: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1493 | ctx.flags |= UBLK_F_AUTO_BUF_REG; | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG cc1: all warnings being treated as errors In file included from null.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in null.c: In function ‘ublk_null_tgt_init’: null.c:20:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 20 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN | | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC null.c:21:25: error: ‘UBLK_PARAM_TYPE_SEGMENT’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_DEVT’? 21 | UBLK_PARAM_TYPE_SEGMENT, | ^~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_DEVT null.c:30:18: error: ‘struct ublk_params’ has no member named ‘dma’ 30 | .dma = { | ^~~ null.c:31:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 31 | .alignment = 4095, | ^~~~~~~~~ null.c:33:18: error: ‘struct ublk_params’ has no member named ‘seg’ 33 | .seg = { | ^~~ null.c:34:26: error: ‘struct ublk_param_devt’ has no member named ‘seg_boundary_mask’ 34 | .seg_boundary_mask = 4095, | ^~~~~~~~~~~~~~~~~ null.c:35:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segment_size’ 35 | .max_segment_size = 32 << 10, | ^~~~~~~~~~~~~~~~ null.c:36:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segments’ 36 | .max_segments = 32, | ^~~~~~~~~~~~ In file included from file_backed.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in file_backed.c: In function ‘ublk_loop_tgt_init’: file_backed.c:138:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 138 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN, | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC file_backed.c:147:18: error: ‘struct ublk_params’ has no member named ‘dma’ 147 | .dma = { | ^~~ file_backed.c:148:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 148 | .alignment = 511, | ^~~~~~~~~ In file included from common.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in In file included from stripe.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in stripe.c: In function ‘stripe_to_uring_op’: stripe.c:120:29: error: ‘IORING_OP_READV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_READ_FIXED’? 120 | return zc ? IORING_OP_READV_FIXED : IORING_OP_READV; | ^~~~~~~~~~~~~~~~~~~~~ | IORING_OP_READ_FIXED stripe.c:122:29: error: ‘IORING_OP_WRITEV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_WRITE_FIXED’? 122 | return zc ? IORING_OP_WRITEV_FIXED : IORING_OP_WRITEV; | ^~~~~~~~~~~~~~~~~~~~~~ | IORING_OP_WRITE_FIXED In file included from fault_inject.c:11: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in make[1]: *** [../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/ublk/kublk] Error 1 ====== Building the tree before the patch ====== mount-notify_test_ns.c:23:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 23 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net/wt-0/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net/wt-0/build_tools/usr/include/linux/types.h:9, from /home/nipa/net/wt-0/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test_ns.c:6: /home/nipa/net/wt-0/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/filesystems/mount-notify/mount-notify_test_ns] Error 1 make[1]: *** Waiting for unfinished jobs.... mount-notify_test.c:22:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 22 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net/wt-0/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net/wt-0/build_tools/usr/include/linux/types.h:9, from /home/nipa/net/wt-0/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test.c:6: /home/nipa/net/wt-0/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/filesystems/mount-notify/mount-notify_test] Error 1 make[1]: *** nsfs: No such file or directory. Stop. In file included from kublk.c:6: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in kublk.c: In function ‘ublk_ctrl_update_size’: kublk.c:223:27: error: ‘UBLK_U_CMD_UPDATE_SIZE’ undeclared (first use in this function) 223 | .cmd_op = UBLK_U_CMD_UPDATE_SIZE, | ^~~~~~~~~~~~~~~~~~~~~~ kublk.c: In function ‘ublk_ctrl_quiesce_dev’: kublk.c:235:27: error: ‘UBLK_U_CMD_QUIESCE_DEV’ undeclared (first use in this function); did you mean ‘UBLK_U_CMD_DEL_DEV’? 235 | .cmd_op = UBLK_U_CMD_QUIESCE_DEV, | ^~~~~~~~~~~~~~~~~~~~~~ | UBLK_U_CMD_DEL_DEV kublk.c: In function ‘ublk_queue_init’: kublk.c:447:63: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 447 | if (dev->dev_info.flags & (UBLK_F_SUPPORT_ZERO_COPY | UBLK_F_AUTO_BUF_REG)) { | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG kublk.c: In function ‘ublk_set_auto_buf_reg’: kublk.c:560:16: error: variable ‘buf’ has initializer but incomplete type 560 | struct ublk_auto_buf_reg buf = {}; | ^~~~~~~~~~~~~~~~~ kublk.c:560:34: error: storage size of ‘buf’ isn’t known 560 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c:568:29: error: ‘UBLK_AUTO_BUF_REG_FALLBACK’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG_FALLBACK’? 568 | buf.flags = UBLK_AUTO_BUF_REG_FALLBACK; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG_FALLBACK kublk.c:570:21: error: implicit declaration of function ‘ublk_auto_buf_reg_to_sqe_addr’ [-Wimplicit-function-declaration] 570 | sqe->addr = ublk_auto_buf_reg_to_sqe_addr(&buf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kublk.c:560:34: error: unused variable ‘buf’ [-Werror=unused-variable] 560 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c: In function ‘__cmd_dev_add’: kublk.c:1068:25: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1068 | if ((features & UBLK_F_QUIESCE) && | ^~~~~~~~~~~~~~ kublk.c: In function ‘cmd_dev_get_features’: kublk.c:1266:30: error: ‘UBLK_F_UPDATE_SIZE’ undeclared (first use in this function) 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1267:30: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1268:30: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c: In function ‘main’: kublk.c:1493:46: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1493 | ctx.flags |= UBLK_F_AUTO_BUF_REG; | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG cc1: all warnings being treated as errors In file included from null.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in null.c: In function ‘ublk_null_tgt_init’: null.c:20:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 20 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN | | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC null.c:21:25: error: ‘UBLK_PARAM_TYPE_SEGMENT’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_DEVT’? 21 | UBLK_PARAM_TYPE_SEGMENT, | ^~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_DEVT null.c:30:18: error: ‘struct ublk_params’ has no member named ‘dma’ 30 | .dma = { | ^~~ null.c:31:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 31 | .alignment = 4095, | ^~~~~~~~~ null.c:33:18: error: ‘struct ublk_params’ has no member named ‘seg’ 33 | .seg = { | ^~~ null.c:34:26: error: ‘struct ublk_param_devt’ has no member named ‘seg_boundary_mask’ 34 | .seg_boundary_mask = 4095, | ^~~~~~~~~~~~~~~~~ null.c:35:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segment_size’ 35 | .max_segment_size = 32 << 10, | ^~~~~~~~~~~~~~~~ null.c:36:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segments’ 36 | .max_segments = 32, | ^~~~~~~~~~~~ In file included from file_backed.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in file_backed.c: In function ‘ublk_loop_tgt_init’: file_backed.c:138:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 138 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN, | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC file_backed.c:147:18: error: ‘struct ublk_params’ has no member named ‘dma’ 147 | .dma = { | ^~~ file_backed.c:148:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 148 | .alignment = 511, | ^~~~~~~~~ In file included from common.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in In file included from stripe.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in stripe.c: In function ‘stripe_to_uring_op’: stripe.c:120:29: error: ‘IORING_OP_READV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_READ_FIXED’? 120 | return zc ? IORING_OP_READV_FIXED : IORING_OP_READV; | ^~~~~~~~~~~~~~~~~~~~~ | IORING_OP_READ_FIXED stripe.c:122:29: error: ‘IORING_OP_WRITEV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_WRITE_FIXED’? 122 | return zc ? IORING_OP_WRITEV_FIXED : IORING_OP_WRITEV; | ^~~~~~~~~~~~~~~~~~~~~~ | IORING_OP_WRITE_FIXED In file included from fault_inject.c:11: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in make[1]: *** [../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/ublk/kublk] Error 1 ====== Checking if tree is clean ====== ?? arch/x86/Makefile.orig ?? arch/x86/Makefile.rej ====== Building the tree with the patch ====== mount-notify_test.c:22:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 22 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net/wt-0/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net/wt-0/build_tools/usr/include/linux/types.h:9, from /home/nipa/net/wt-0/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test.c:6: /home/nipa/net/wt-0/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/filesystems/mount-notify/mount-notify_test] Error 1 make[1]: *** Waiting for unfinished jobs.... mount-notify_test_ns.c:23:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 23 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net/wt-0/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net/wt-0/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net/wt-0/build_tools/usr/include/linux/types.h:9, from /home/nipa/net/wt-0/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test_ns.c:6: /home/nipa/net/wt-0/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/filesystems/mount-notify/mount-notify_test_ns] Error 1 make[1]: *** nsfs: No such file or directory. Stop. In file included from kublk.c:6: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in kublk.c: In function ‘ublk_ctrl_update_size’: kublk.c:223:27: error: ‘UBLK_U_CMD_UPDATE_SIZE’ undeclared (first use in this function) 223 | .cmd_op = UBLK_U_CMD_UPDATE_SIZE, | ^~~~~~~~~~~~~~~~~~~~~~ kublk.c: In function ‘ublk_ctrl_quiesce_dev’: kublk.c:235:27: error: ‘UBLK_U_CMD_QUIESCE_DEV’ undeclared (first use in this function); did you mean ‘UBLK_U_CMD_DEL_DEV’? 235 | .cmd_op = UBLK_U_CMD_QUIESCE_DEV, | ^~~~~~~~~~~~~~~~~~~~~~ | UBLK_U_CMD_DEL_DEV kublk.c: In function ‘ublk_queue_init’: kublk.c:447:63: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 447 | if (dev->dev_info.flags & (UBLK_F_SUPPORT_ZERO_COPY | UBLK_F_AUTO_BUF_REG)) { | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG kublk.c: In function ‘ublk_thread_init’: kublk.c:507:63: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 507 | if (dev->dev_info.flags & (UBLK_F_SUPPORT_ZERO_COPY | UBLK_F_AUTO_BUF_REG)) { | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG kublk.c: In function ‘ublk_set_auto_buf_reg’: kublk.c:579:16: error: variable ‘buf’ has initializer but incomplete type 579 | struct ublk_auto_buf_reg buf = {}; | ^~~~~~~~~~~~~~~~~ kublk.c:579:34: error: storage size of ‘buf’ isn’t known 579 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c:587:29: error: ‘UBLK_AUTO_BUF_REG_FALLBACK’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG_FALLBACK’? 587 | buf.flags = UBLK_AUTO_BUF_REG_FALLBACK; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG_FALLBACK kublk.c:589:21: error: implicit declaration of function ‘ublk_auto_buf_reg_to_sqe_addr’ [-Wimplicit-function-declaration] 589 | sqe->addr = ublk_auto_buf_reg_to_sqe_addr(&buf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kublk.c:579:34: error: unused variable ‘buf’ [-Werror=unused-variable] 579 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c: In function ‘__cmd_dev_add’: kublk.c:1178:25: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1178 | if ((features & UBLK_F_QUIESCE) && | ^~~~~~~~~~~~~~ kublk.c: In function ‘cmd_dev_get_features’: kublk.c:1381:30: error: ‘UBLK_F_UPDATE_SIZE’ undeclared (first use in this function) 1381 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~~~~~~~~ kublk.c:1369:46: note: in definition of macro ‘const_ilog2’ 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1369:24: error: array index in initializer not of integer type 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1381:18: note: in expansion of macro ‘const_ilog2’ 1381 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1369:24: note: (near initialization for ‘feat_map’) 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1381:18: note: in expansion of macro ‘const_ilog2’ 1381 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1382:30: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1382 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~~~~~~~~~ kublk.c:1369:46: note: in definition of macro ‘const_ilog2’ 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1369:24: error: array index in initializer not of integer type 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1382:18: note: in expansion of macro ‘const_ilog2’ 1382 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1369:24: note: (near initialization for ‘feat_map’) 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1382:18: note: in expansion of macro ‘const_ilog2’ 1382 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1383:30: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1383 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~~~~ kublk.c:1369:46: note: in definition of macro ‘const_ilog2’ 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1369:24: error: array index in initializer not of integer type 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1383:18: note: in expansion of macro ‘const_ilog2’ 1383 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c:1369:24: note: (near initialization for ‘feat_map’) 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1383:18: note: in expansion of macro ‘const_ilog2’ 1383 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c:1384:30: error: ‘UBLK_F_PER_IO_DAEMON’ undeclared (first use in this function) 1384 | [const_ilog2(UBLK_F_PER_IO_DAEMON)] = "PER_IO_DAEMON", | ^~~~~~~~~~~~~~~~~~~~ kublk.c:1369:46: note: in definition of macro ‘const_ilog2’ 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1369:24: error: array index in initializer not of integer type 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1384:18: note: in expansion of macro ‘const_ilog2’ 1384 | [const_ilog2(UBLK_F_PER_IO_DAEMON)] = "PER_IO_DAEMON", | ^~~~~~~~~~~ kublk.c:1369:24: note: (near initialization for ‘feat_map’) 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1384:18: note: in expansion of macro ‘const_ilog2’ 1384 | [const_ilog2(UBLK_F_PER_IO_DAEMON)] = "PER_IO_DAEMON", | ^~~~~~~~~~~ kublk.c: In function ‘main’: kublk.c:1613:46: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1613 | ctx.flags |= UBLK_F_AUTO_BUF_REG; | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG cc1: all warnings being treated as errors In file included from null.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in null.c: In function ‘ublk_null_tgt_init’: null.c:20:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 20 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN | | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC null.c:21:25: error: ‘UBLK_PARAM_TYPE_SEGMENT’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_DEVT’? 21 | UBLK_PARAM_TYPE_SEGMENT, | ^~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_DEVT null.c:30:18: error: ‘struct ublk_params’ has no member named ‘dma’ 30 | .dma = { | ^~~ null.c:31:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 31 | .alignment = 4095, | ^~~~~~~~~ null.c:33:18: error: ‘struct ublk_params’ has no member named ‘seg’ 33 | .seg = { | ^~~ null.c:34:26: error: ‘struct ublk_param_devt’ has no member named ‘seg_boundary_mask’ 34 | .seg_boundary_mask = 4095, | ^~~~~~~~~~~~~~~~~ null.c:35:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segment_size’ 35 | .max_segment_size = 32 << 10, | ^~~~~~~~~~~~~~~~ null.c:36:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segments’ 36 | .max_segments = 32, | ^~~~~~~~~~~~ In file included from file_backed.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in file_backed.c: In function ‘ublk_loop_tgt_init’: file_backed.c:138:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 138 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN, | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC file_backed.c:147:18: error: ‘struct ublk_params’ has no member named ‘dma’ 147 | .dma = { | ^~~ file_backed.c:148:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 148 | .alignment = 511, | ^~~~~~~~~ In file included from common.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in In file included from stripe.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in stripe.c: In function ‘stripe_to_uring_op’: stripe.c:120:29: error: ‘IORING_OP_READV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_READ_FIXED’? 120 | return zc ? IORING_OP_READV_FIXED : IORING_OP_READV; | ^~~~~~~~~~~~~~~~~~~~~ | IORING_OP_READ_FIXED stripe.c:122:29: error: ‘IORING_OP_WRITEV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_WRITE_FIXED’? 122 | return zc ? IORING_OP_WRITEV_FIXED : IORING_OP_WRITEV; | ^~~~~~~~~~~~~~~~~~~~~~ | IORING_OP_WRITE_FIXED In file included from fault_inject.c:11: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in make[1]: *** [../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/ublk/kublk] Error 1 ====== Checking if tree is clean ====== ?? arch/x86/Makefile.orig ?? arch/x86/Makefile.rej New errors added --- /tmp/tmp.QGH3BjRqVg 2025-06-11 18:39:16.185056461 -0700 +++ /tmp/tmp.cK3XHE6qpE 2025-06-11 18:39:23.879006514 -0700 @@ -1,2 +1,2 @@ -mount-notify_test_ns.c:23:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ - 23 | } __kernel_fsid_t; +mount-notify_test.c:22:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ + 22 | } __kernel_fsid_t; @@ -11 +11 @@ - from mount-notify_test_ns.c:6: + from mount-notify_test.c:6: @@ -15 +15 @@ -make[1]: *** [../../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/filesystems/mount-notify/mount-notify_test_ns] Error 1 +make[1]: *** [../../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/filesystems/mount-notify/mount-notify_test] Error 1 @@ -17,2 +17,2 @@ -mount-notify_test.c:22:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ - 22 | } __kernel_fsid_t; +mount-notify_test_ns.c:23:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ + 23 | } __kernel_fsid_t; @@ -27 +27 @@ - from mount-notify_test.c:6: + from mount-notify_test_ns.c:6: @@ -31 +31 @@ -make[1]: *** [../../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/filesystems/mount-notify/mount-notify_test] Error 1 +make[1]: *** [../../lib.mk:222: /home/nipa/net/wt-0/build_tools/kselftest/filesystems/mount-notify/mount-notify_test_ns] Error 1 @@ -35,2 +35,2 @@ -kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? - 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); +kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? + 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); @@ -39 +39 @@ -kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in +kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in @@ -53,0 +54,5 @@ +kublk.c: In function ‘ublk_thread_init’: +kublk.c:507:63: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? + 507 | if (dev->dev_info.flags & (UBLK_F_SUPPORT_ZERO_COPY | UBLK_F_AUTO_BUF_REG)) { + | ^~~~~~~~~~~~~~~~~~~ + | UBLKSRV_AUTO_BUF_REG @@ -55,2 +60,2 @@ -kublk.c:560:16: error: variable ‘buf’ has initializer but incomplete type - 560 | struct ublk_auto_buf_reg buf = {}; +kublk.c:579:16: error: variable ‘buf’ has initializer but incomplete type + 579 | struct ublk_auto_buf_reg buf = {}; @@ -58,2 +63,2 @@ -kublk.c:560:34: error: storage size of ‘buf’ isn’t known - 560 | struct ublk_auto_buf_reg buf = {}; +kublk.c:579:34: error: storage size of ‘buf’ isn’t known + 579 | struct ublk_auto_buf_reg buf = {}; @@ -61,2 +66,2 @@ -kublk.c:568:29: error: ‘UBLK_AUTO_BUF_REG_FALLBACK’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG_FALLBACK’? - 568 | buf.flags = UBLK_AUTO_BUF_REG_FALLBACK; +kublk.c:587:29: error: ‘UBLK_AUTO_BUF_REG_FALLBACK’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG_FALLBACK’? + 587 | buf.flags = UBLK_AUTO_BUF_REG_FALLBACK; @@ -65,2 +70,2 @@ -kublk.c:570:21: error: implicit declaration of function ‘ublk_auto_buf_reg_to_sqe_addr’ [-Wimplicit-function-declaration] - 570 | sqe->addr = ublk_auto_buf_reg_to_sqe_addr(&buf); +kublk.c:589:21: error: implicit declaration of function ‘ublk_auto_buf_reg_to_sqe_addr’ [-Wimplicit-function-declaration] + 589 | sqe->addr = ublk_auto_buf_reg_to_sqe_addr(&buf); @@ -68,2 +73,2 @@ -kublk.c:560:34: error: unused variable ‘buf’ [-Werror=unused-variable] - 560 | struct ublk_auto_buf_reg buf = {}; +kublk.c:579:34: error: unused variable ‘buf’ [-Werror=unused-variable] + 579 | struct ublk_auto_buf_reg buf = {}; @@ -72,2 +77,2 @@ -kublk.c:1068:25: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) - 1068 | if ((features & UBLK_F_QUIESCE) && +kublk.c:1178:25: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) + 1178 | if ((features & UBLK_F_QUIESCE) && @@ -76,2 +81,2 @@ -kublk.c:1266:30: error: ‘UBLK_F_UPDATE_SIZE’ undeclared (first use in this function) - 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", +kublk.c:1381:30: error: ‘UBLK_F_UPDATE_SIZE’ undeclared (first use in this function) + 1381 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", @@ -79,2 +84,2 @@ -kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ - 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) +kublk.c:1369:46: note: in definition of macro ‘const_ilog2’ + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) @@ -82,2 +87,2 @@ -kublk.c:1254:24: error: array index in initializer not of integer type - 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) +kublk.c:1369:24: error: array index in initializer not of integer type + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) @@ -85,2 +90,2 @@ -kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ - 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", +kublk.c:1381:18: note: in expansion of macro ‘const_ilog2’ + 1381 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", @@ -88,2 +93,2 @@ -kublk.c:1254:24: note: (near initialization for ‘feat_map’) - 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) +kublk.c:1369:24: note: (near initialization for ‘feat_map’) + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) @@ -91,2 +96,2 @@ -kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ - 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", +kublk.c:1381:18: note: in expansion of macro ‘const_ilog2’ + 1381 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", @@ -94,2 +99,2 @@ -kublk.c:1267:30: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? - 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", +kublk.c:1382:30: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? + 1382 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", @@ -97,2 +102,2 @@ -kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ - 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) +kublk.c:1369:46: note: in definition of macro ‘const_ilog2’ + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) @@ -100,2 +105,2 @@ -kublk.c:1254:24: error: array index in initializer not of integer type - 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) +kublk.c:1369:24: error: array index in initializer not of integer type + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) @@ -103,2 +108,2 @@ -kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ - 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", +kublk.c:1382:18: note: in expansion of macro ‘const_ilog2’ + 1382 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", @@ -106,2 +111,2 @@ -kublk.c:1254:24: note: (near initialization for ‘feat_map’) - 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) +kublk.c:1369:24: note: (near initialization for ‘feat_map’) + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) @@ -109,2 +114,2 @@ -kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ - 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", +kublk.c:1382:18: note: in expansion of macro ‘const_ilog2’ + 1382 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", @@ -112,2 +117,2 @@ -kublk.c:1268:30: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) - 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", +kublk.c:1383:30: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) + 1383 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", @@ -115,2 +120,20 @@ -kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ - 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) +kublk.c:1369:46: note: in definition of macro ‘const_ilog2’ + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) + | ^ +kublk.c:1369:24: error: array index in initializer not of integer type + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) + | ^ +kublk.c:1383:18: note: in expansion of macro ‘const_ilog2’ + 1383 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", + | ^~~~~~~~~~~ +kublk.c:1369:24: note: (near initialization for ‘feat_map’) + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) + | ^ +kublk.c:1383:18: note: in expansion of macro ‘const_ilog2’ + 1383 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", + | ^~~~~~~~~~~ +kublk.c:1384:30: error: ‘UBLK_F_PER_IO_DAEMON’ undeclared (first use in this function) + 1384 | [const_ilog2(UBLK_F_PER_IO_DAEMON)] = "PER_IO_DAEMON", + | ^~~~~~~~~~~~~~~~~~~~ +kublk.c:1369:46: note: in definition of macro ‘const_ilog2’ + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) @@ -118,2 +141,2 @@ -kublk.c:1254:24: error: array index in initializer not of integer type - 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) +kublk.c:1369:24: error: array index in initializer not of integer type + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) @@ -121,2 +144,2 @@ -kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ - 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", +kublk.c:1384:18: note: in expansion of macro ‘const_ilog2’ + 1384 | [const_ilog2(UBLK_F_PER_IO_DAEMON)] = "PER_IO_DAEMON", @@ -124,2 +147,2 @@ -kublk.c:1254:24: note: (near initialization for ‘feat_map’) - 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) +kublk.c:1369:24: note: (near initialization for ‘feat_map’) + 1369 | #define const_ilog2(x) (63 - __builtin_clzll(x)) @@ -127,2 +150,2 @@ -kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ - 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", +kublk.c:1384:18: note: in expansion of macro ‘const_ilog2’ + 1384 | [const_ilog2(UBLK_F_PER_IO_DAEMON)] = "PER_IO_DAEMON", @@ -131,2 +154,2 @@ -kublk.c:1493:46: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? - 1493 | ctx.flags |= UBLK_F_AUTO_BUF_REG; +kublk.c:1613:46: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? + 1613 | ctx.flags |= UBLK_F_AUTO_BUF_REG; @@ -138,2 +161,2 @@ -kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? - 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); +kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? + 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); @@ -142 +165 @@ -kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in +kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in @@ -172,2 +195,2 @@ -kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? - 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); +kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? + 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); @@ -176 +199 @@ -kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in +kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in @@ -190,2 +213,2 @@ -kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? - 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); +kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? + 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); @@ -194 +217 @@ -kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in +kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in @@ -197,2 +220,2 @@ -kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? - 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); +kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? + 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); @@ -201 +224 @@ -kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in +kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in @@ -213,2 +236,2 @@ -kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? - 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); +kublk.h:240:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? + 240 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); @@ -217 +240 @@ -kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in +kublk.h:240:35: note: each undeclared identifier is reported only once for each function it appears in Per-file breakdown