Re: [PATCH 1/1] blk-snap - Block snapshot module This module implements snapshot and changed block tracking functionality. It is intended to create backup copies of any block devices without usage of device-mapper.
From: kernel test robot
Date: Fri Oct 02 2020 - 12:24:37 EST
Hi Sergei,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.9-rc7]
[cannot apply to block/for-next sparc-next/master next-20201002]
[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/Sergei-Shtepa/Block-snapshot-module-and-block-layer-filter-API/20201002-210406
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 472e5b056f000a778abb41f1e443de58eb259783
config: sparc-allyesconfig (attached as .config)
compiler: sparc64-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://github.com/0day-ci/linux/commit/61a37e3bb74afbef1b725eaf80405e0e6e5d64b7
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Sergei-Shtepa/Block-snapshot-module-and-block-layer-filter-API/20201002-210406
git checkout 61a37e3bb74afbef1b725eaf80405e0e6e5d64b7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All error/warnings (new ones prefixed by >>):
drivers/block/blk-snap/snapstore_mem.c: In function 'snapstore_mem_destroy':
>> drivers/block/blk-snap/snapstore_mem.c:48:4: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
48 | vfree(buffer_el->buff);
| ^~~~~
| kvfree
drivers/block/blk-snap/snapstore_mem.c: In function 'snapstore_mem_get_block':
>> drivers/block/blk-snap/snapstore_mem.c:74:20: error: implicit declaration of function '__vmalloc'; did you mean '__kmalloc'? [-Werror=implicit-function-declaration]
74 | buffer_el->buff = __vmalloc(snapstore_block_size() * SECTOR_SIZE, GFP_NOIO);
| ^~~~~~~~~
| __kmalloc
>> drivers/block/blk-snap/snapstore_mem.c:74:18: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
74 | buffer_el->buff = __vmalloc(snapstore_block_size() * SECTOR_SIZE, GFP_NOIO);
| ^
cc1: some warnings being treated as errors
vim +48 drivers/block/blk-snap/snapstore_mem.c
28
29 void snapstore_mem_destroy(struct snapstore_mem *mem)
30 {
31 struct buffer_el *buffer_el;
32
33 if (mem == NULL)
34 return;
35
36 do {
37 buffer_el = NULL;
38
39 mutex_lock(&mem->blocks_lock);
40 if (!list_empty(&mem->blocks)) {
41 buffer_el = list_entry(mem->blocks.next, struct buffer_el, link);
42
43 list_del(&buffer_el->link);
44 }
45 mutex_unlock(&mem->blocks_lock);
46
47 if (buffer_el) {
> 48 vfree(buffer_el->buff);
49 kfree(buffer_el);
50 }
51 } while (buffer_el);
52
53 blk_descr_mem_pool_done(&mem->pool);
54
55 kfree(mem);
56 }
57
58 void *snapstore_mem_get_block(struct snapstore_mem *mem)
59 {
60 struct buffer_el *buffer_el;
61
62 if (mem->blocks_allocated >= mem->blocks_limit) {
63 pr_err("Unable to get block from snapstore in memory\n");
64 pr_err("Block limit is reached, allocated %ld, limit %ld\n", mem->blocks_allocated,
65 mem->blocks_limit);
66 return NULL;
67 }
68
69 buffer_el = kzalloc(sizeof(struct buffer_el), GFP_KERNEL);
70 if (buffer_el == NULL)
71 return NULL;
72 INIT_LIST_HEAD(&buffer_el->link);
73
> 74 buffer_el->buff = __vmalloc(snapstore_block_size() * SECTOR_SIZE, GFP_NOIO);
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip