Hi Mikulas, [FYI, it's a private test report for your RFC patch.] [auto build test ERROR on axboe-block/for-next] [also build test ERROR on linus/master v5.17-rc2 next-20220201] [cannot apply to linux-nvme/for-next] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Mikulas-Patocka/block-add-copy-offload-support/20220202-033318 base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next config: alpha-allmodconfig (https://download.01.org/0day-ci/archive/20220202/202202020535.upnRkg5V-lkp(a)intel.com/config) compiler: alpha-linux-gcc (GCC) 11.2.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://github.com/0day-ci/linux/commit/b59e9d971770c50aaac1d07d6edaa10a4a47171b git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Mikulas-Patocka/block-add-copy-offload-support/20220202-033318 git checkout b59e9d971770c50aaac1d07d6edaa10a4a47171b # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=alpha SHELL=/bin/bash drivers/nvme/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All error/warnings (new ones prefixed by >>): drivers/nvme/host/nvme-debug.c: In function 'nvme_debug_alloc_namespace': >> drivers/nvme/host/nvme-debug.c:98:21: error: implicit declaration of function 'vzalloc'; did you mean 'kvzalloc'? [-Werror=implicit-function-declaration] 98 | ns->space = vzalloc(ns->n_sectors << ns->sector_size_bits); | ^~~~~~~ | kvzalloc >> drivers/nvme/host/nvme-debug.c:98:19: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 98 | ns->space = vzalloc(ns->n_sectors << ns->sector_size_bits); | ^ drivers/nvme/host/nvme-debug.c: In function 'nvme_debug_free_namespace': >> drivers/nvme/host/nvme-debug.c:115:9: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration] 115 | vfree(ns->space); | ^~~~~ | kvfree drivers/nvme/host/nvme-debug.c: At top level: >> drivers/nvme/host/nvme-debug.c:148:5: warning: no previous prototype for 'nvme_debug_reg_read64' [-Wmissing-prototypes] 148 | int nvme_debug_reg_read64(struct nvme_ctrl *nctrl, u32 off, u64 *val) | ^~~~~~~~~~~~~~~~~~~~~ >> drivers/nvme/host/nvme-debug.c:163:5: warning: no previous prototype for 'nvme_debug_reg_write32' [-Wmissing-prototypes] 163 | int nvme_debug_reg_write32(struct nvme_ctrl *nctrl, u32 off, u32 val) | ^~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +98 drivers/nvme/host/nvme-debug.c 71 72 static bool nvme_debug_alloc_namespace(struct nvme_debug_ctrl *ctrl) 73 { 74 struct nvme_debug_namespace *ns; 75 unsigned s; 76 size_t dsm; 77 78 ns = kmalloc(sizeof(struct nvme_debug_namespace), GFP_KERNEL); 79 if (!ns) 80 goto fail0; 81 82 ns->nsid = 1; 83 while (nvme_debug_find_namespace(ctrl, ns->nsid)) 84 ns->nsid++; 85 86 s = READ_ONCE(sector_size); 87 if (s < 512 || s > PAGE_SIZE || !is_power_of_2(s)) 88 goto fail1; 89 ns->sector_size_bits = __ffs(s); 90 dsm = READ_ONCE(dev_size_mb); 91 ns->n_sectors = dsm << (20 - ns->sector_size_bits); 92 if (ns->n_sectors >> (20 - ns->sector_size_bits) != dsm) 93 goto fail1; 94 95 if (ns->n_sectors << ns->sector_size_bits >> ns->sector_size_bits != ns->n_sectors) 96 goto fail1; 97 > 98 ns->space = vzalloc(ns->n_sectors << ns->sector_size_bits); 99 if (!ns->space) 100 goto fail1; 101 102 generate_random_uuid(ns->uuid); 103 104 list_add(&ns->list, &ctrl->namespaces); 105 return true; 106 107 fail1: 108 kfree(ns); 109 fail0: 110 return false; 111 } 112 113 static void nvme_debug_free_namespace(struct nvme_debug_namespace *ns) 114 { > 115 vfree(ns->space); 116 list_del(&ns->list); 117 kfree(ns); 118 } 119 120 static int nvme_debug_reg_read32(struct nvme_ctrl *nctrl, u32 off, u32 *val) 121 { 122 struct nvme_debug_ctrl *ctrl = to_debug_ctrl(nctrl); 123 switch (off) { 124 case NVME_REG_VS: { 125 *val = 0x20000; 126 break; 127 } 128 case NVME_REG_CC: { 129 *val = ctrl->reg_cc; 130 break; 131 } 132 case NVME_REG_CSTS: { 133 *val = 0; 134 if (ctrl->reg_cc & NVME_CC_ENABLE) 135 *val |= NVME_CSTS_RDY; 136 if (ctrl->reg_cc & NVME_CC_SHN_MASK) 137 *val |= NVME_CSTS_SHST_CMPLT; 138 break; 139 } 140 default: { 141 printk("nvme_debug_reg_read32: %x\n", off); 142 return -ENOSYS; 143 } 144 } 145 return 0; 146 } 147 > 148 int nvme_debug_reg_read64(struct nvme_ctrl *nctrl, u32 off, u64 *val) 149 { 150 switch (off) { 151 case NVME_REG_CAP: { 152 *val = (1ULL << 0) | (1ULL << 37); 153 break; 154 } 155 default: { 156 printk("nvme_debug_reg_read64: %x\n", off); 157 return -ENOSYS; 158 } 159 } 160 return 0; 161 } 162 > 163 int nvme_debug_reg_write32(struct nvme_ctrl *nctrl, u32 off, u32 val) 164 { 165 struct nvme_debug_ctrl *ctrl = to_debug_ctrl(nctrl); 166 switch (off) { 167 case NVME_REG_CC: { 168 ctrl->reg_cc = val; 169 break; 170 } 171 default: { 172 printk("nvme_debug_reg_write32: %x, %x\n", off, val); 173 return -ENOSYS; 174 } 175 } 176 return 0; 177 } 178 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org