tree:
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.4
head: 134168653ae75b1ccebec6060e2f06f5dae8cea3
commit: 4270eefdbce3770fe5d2bb9d73a89411b67ddaab [42/45] RDMA/mlx5: Use different doorbell
memory for different processes
config: riscv-allyesconfig (attached as .config)
compiler: riscv64-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/sashal/linux-stable.git/c...
git remote add sashal-linux-stable
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.4
git checkout 4270eefdbce3770fe5d2bb9d73a89411b67ddaab
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/infiniband/hw/mlx5/doorbell.c: In function 'mlx5_ib_db_map_user':
> drivers/infiniband/hw/mlx5/doorbell.c:75:2: error: implicit
declaration of function 'mmgrab'; did you mean 'igrab'?
[-Werror=implicit-function-declaration]
75 | mmgrab(current->mm);
| ^~~~~~
| igrab
drivers/infiniband/hw/mlx5/doorbell.c: In function 'mlx5_ib_db_unmap_user':
> drivers/infiniband/hw/mlx5/doorbell.c:97:3: error: implicit
declaration of function 'mmdrop'; did you mean 'd_drop'?
[-Werror=implicit-function-declaration]
97 |
mmdrop(db->u.user_page->mm);
| ^~~~~~
| d_drop
cc1: some warnings being treated as errors
vim +75 drivers/infiniband/hw/mlx5/doorbell.c
46
47 int mlx5_ib_db_map_user(struct mlx5_ib_ucontext *context,
48 struct ib_udata *udata, unsigned long virt,
49 struct mlx5_db *db)
50 {
51 struct mlx5_ib_user_db_page *page;
52 int err = 0;
53
54 mutex_lock(&context->db_page_mutex);
55
56 list_for_each_entry(page, &context->db_page_list, list)
57 if ((current->mm == page->mm) &&
58 (page->user_virt == (virt & PAGE_MASK)))
59 goto found;
60
61 page = kmalloc(sizeof(*page), GFP_KERNEL);
62 if (!page) {
63 err = -ENOMEM;
64 goto out;
65 }
66
67 page->user_virt = (virt & PAGE_MASK);
68 page->refcnt = 0;
69 page->umem = ib_umem_get(udata, virt & PAGE_MASK, PAGE_SIZE, 0, 0);
70 if (IS_ERR(page->umem)) {
71 err = PTR_ERR(page->umem);
72 kfree(page);
73 goto out;
74 }
75 mmgrab(current->mm);
76 page->mm =
current->mm;
77
78 list_add(&page->list, &context->db_page_list);
79
80 found:
81 db->dma = sg_dma_address(page->umem->sg_head.sgl) + (virt &
~PAGE_MASK);
82 db->u.user_page = page;
83 ++page->refcnt;
84
85 out:
86 mutex_unlock(&context->db_page_mutex);
87
88 return err;
89 }
90
91 void mlx5_ib_db_unmap_user(struct mlx5_ib_ucontext *context, struct mlx5_db *db)
92 {
93 mutex_lock(&context->db_page_mutex);
94
95 if (!--db->u.user_page->refcnt) {
96 list_del(&db->u.user_page->list);
97 mmdrop(db->u.user_page->mm);
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org