[ogabbay:habanalabs-next 32/33] drivers/misc/habanalabs/common/irq.c:178:5: warning: no previous prototype for 'handle_registration_node'

From: kernel test robot
Date: Fri Jan 28 2022 - 18:48:10 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git habanalabs-next
head: c720ae02be190b7639446bba872752a68cb4ba17
commit: 402f801a3488a90a5481524ea87c3da17867e635 [32/33] habanalabs: Timestamps buffers registration
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20220129/202201290701.fKs5pg0E-lkp@xxxxxxxxx/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://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git/commit/?id=402f801a3488a90a5481524ea87c3da17867e635
git remote add ogabbay https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git
git fetch --no-tags ogabbay habanalabs-next
git checkout 402f801a3488a90a5481524ea87c3da17867e635
# 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/misc/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/misc/habanalabs/common/irq.c:178:5: warning: no previous prototype for 'handle_registration_node' [-Wmissing-prototypes]
178 | int handle_registration_node(struct hl_device *hdev, struct hl_user_pending_interrupt *pend,
| ^~~~~~~~~~~~~~~~~~~~~~~~
--
drivers/misc/habanalabs/common/memory.c: In function 'ts_buff_release':
drivers/misc/habanalabs/common/memory.c:2046:9: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
2046 | vfree(buff->kernel_buff_address);
| ^~~~~
| kvfree
drivers/misc/habanalabs/common/memory.c: In function 'hl_ts_mmap':
drivers/misc/habanalabs/common/memory.c:2150:14: error: implicit declaration of function 'remap_vmalloc_range'; did you mean 'ida_alloc_range'? [-Werror=implicit-function-declaration]
2150 | rc = remap_vmalloc_range(vma, buff->user_buff_address, 0);
| ^~~~~~~~~~~~~~~~~~~
| ida_alloc_range
drivers/misc/habanalabs/common/memory.c: In function 'hl_ts_alloc_buff':
drivers/misc/habanalabs/common/memory.c:2201:13: error: implicit declaration of function 'vmalloc_user'; did you mean 'kmalloc_order'? [-Werror=implicit-function-declaration]
2201 | p = vmalloc_user(size);
| ^~~~~~~~~~~~
| kmalloc_order
>> drivers/misc/habanalabs/common/memory.c:2201:11: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
2201 | p = vmalloc_user(size);
| ^
drivers/misc/habanalabs/common/memory.c:2210:13: error: implicit declaration of function 'vmalloc'; did you mean 'kvmalloc'? [-Werror=implicit-function-declaration]
2210 | p = vmalloc(size);
| ^~~~~~~
| kvmalloc
drivers/misc/habanalabs/common/memory.c:2210:11: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
2210 | p = vmalloc(size);
| ^
cc1: some warnings being treated as errors


vim +/handle_registration_node +178 drivers/misc/habanalabs/common/irq.c

167
168 /*
169 * This function called with spin_lock of wait_list_lock taken
170 * This function will set timestamp and delete the registration node from the
171 * wait_list_lock.
172 * and since we're protected with spin_lock here, so we cannot just put the refcount
173 * for the objects here, since the release function may be called and it's also a long
174 * logic (which might sleep also) that cannot be handled in irq context.
175 * so here we'll be filling a list with nodes of "put" jobs and then will send this
176 * list to a dedicated workqueue to do the actual put.
177 */
> 178 int handle_registration_node(struct hl_device *hdev, struct hl_user_pending_interrupt *pend,
179 struct list_head **free_list)
180 {
181 struct timestamp_reg_free_node *free_node;
182 u64 timestamp;
183
184 if (!(*free_list)) {
185 /* Alloc/Init the timestamp registration free objects list */
186 *free_list = kmalloc(sizeof(struct list_head), GFP_ATOMIC);
187 if (!(*free_list))
188 return -ENOMEM;
189
190 INIT_LIST_HEAD(*free_list);
191 }
192
193 free_node = kmalloc(sizeof(*free_node), GFP_ATOMIC);
194 if (!free_node)
195 return -ENOMEM;
196
197 timestamp = ktime_get_ns();
198
199 *pend->ts_reg_info.timestamp_kernel_addr = timestamp;
200
201 dev_dbg(hdev->dev, "Timestamp is set to ts cb address (%p), ts: 0x%llx\n",
202 pend->ts_reg_info.timestamp_kernel_addr,
203 *(u64 *)pend->ts_reg_info.timestamp_kernel_addr);
204
205 list_del(&pend->wait_list_node);
206
207 /* Mark kernel CB node as free */
208 pend->ts_reg_info.in_use = 0;
209
210 /* Putting the refcount for ts_buff and cq_cb objects will be handled
211 * in workqueue context, just add job to free_list.
212 */
213 free_node->ts_buff = pend->ts_reg_info.ts_buff;
214 free_node->cq_cb = pend->ts_reg_info.cq_cb;
215 list_add(&free_node->free_objects_node, *free_list);
216
217 return 0;
218 }
219

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx