* [linux-next:master 13883/13946] drivers//tee/tee_shm.c:257:28: error: expected ')' before ';' token
@ 2019-09-26 11:44 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2019-09-26 11:44 UTC (permalink / raw)
To: Andrey Konovalov
Cc: kbuild-all, Mark Brown, Kees Cook, Andrew Morton,
Linux Memory Management List
[-- Attachment #1: Type: text/plain, Size: 5147 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: d47175169c28eedd2cc2ab8c01f38764cb0269cc
commit: 3a58003c0e1752c459539b82594ff382ddce161d [13883/13946] tee/shm: untag user pointers in tee_shm_register
config: sparc64-allmodconfig (attached as .config)
compiler: sparc64-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 3a58003c0e1752c459539b82594ff382ddce161d
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=sparc64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>):
drivers//tee/tee_shm.c: In function 'tee_shm_register':
>> drivers//tee/tee_shm.c:257:28: error: expected ')' before ';' token
addr = untagged_addr(addr);
^
>> drivers//tee/tee_shm.c:334:1: error: expected ';' before '}' token
}
^
>> drivers//tee/tee_shm.c:250:3: error: label 'err' used but not defined
goto err;
^~~~
drivers//tee/tee_shm.c:231:16: warning: unused variable 'start' [-Wunused-variable]
unsigned long start;
^~~~~
drivers//tee/tee_shm.c:230:6: warning: unused variable 'num_pages' [-Wunused-variable]
int num_pages;
^~~~~~~~~
drivers//tee/tee_shm.c:229:6: warning: unused variable 'rc' [-Wunused-variable]
int rc;
^~
>> drivers//tee/tee_shm.c:334:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
vim +257 drivers//tee/tee_shm.c
221
222 struct tee_shm *tee_shm_register(struct tee_context *ctx, unsigned long addr,
223 size_t length, u32 flags)
224 {
225 struct tee_device *teedev = ctx->teedev;
226 const u32 req_flags = TEE_SHM_DMA_BUF | TEE_SHM_USER_MAPPED;
227 struct tee_shm *shm;
228 void *ret;
229 int rc;
230 int num_pages;
> 231 unsigned long start;
232
233 if (flags != req_flags)
234 return ERR_PTR(-ENOTSUPP);
235
236 if (!tee_device_get(teedev))
237 return ERR_PTR(-EINVAL);
238
239 if (!teedev->desc->ops->shm_register ||
240 !teedev->desc->ops->shm_unregister) {
241 tee_device_put(teedev);
242 return ERR_PTR(-ENOTSUPP);
243 }
244
245 teedev_ctx_get(ctx);
246
247 shm = kzalloc(sizeof(*shm), GFP_KERNEL);
248 if (!shm) {
249 ret = ERR_PTR(-ENOMEM);
> 250 goto err;
251 }
252
253 shm->flags = flags | TEE_SHM_REGISTER;
254 shm->teedev = teedev;
255 shm->ctx = ctx;
256 shm->id = -1;
> 257 addr = untagged_addr(addr);
258 start = rounddown(addr, PAGE_SIZE);
259 shm->offset = addr - start;
260 shm->size = length;
261 num_pages = (roundup(addr + length, PAGE_SIZE) - start) / PAGE_SIZE;
262 shm->pages = kcalloc(num_pages, sizeof(*shm->pages), GFP_KERNEL);
263 if (!shm->pages) {
264 ret = ERR_PTR(-ENOMEM);
265 goto err;
266 }
267
268 rc = get_user_pages_fast(start, num_pages, FOLL_WRITE, shm->pages);
269 if (rc > 0)
270 shm->num_pages = rc;
271 if (rc != num_pages) {
272 if (rc >= 0)
273 rc = -ENOMEM;
274 ret = ERR_PTR(rc);
275 goto err;
276 }
277
278 mutex_lock(&teedev->mutex);
279 shm->id = idr_alloc(&teedev->idr, shm, 1, 0, GFP_KERNEL);
280 mutex_unlock(&teedev->mutex);
281
282 if (shm->id < 0) {
283 ret = ERR_PTR(shm->id);
284 goto err;
285 }
286
287 rc = teedev->desc->ops->shm_register(ctx, shm, shm->pages,
288 shm->num_pages, start);
289 if (rc) {
290 ret = ERR_PTR(rc);
291 goto err;
292 }
293
294 if (flags & TEE_SHM_DMA_BUF) {
295 DEFINE_DMA_BUF_EXPORT_INFO(exp_info);
296
297 exp_info.ops = &tee_shm_dma_buf_ops;
298 exp_info.size = shm->size;
299 exp_info.flags = O_RDWR;
300 exp_info.priv = shm;
301
302 shm->dmabuf = dma_buf_export(&exp_info);
303 if (IS_ERR(shm->dmabuf)) {
304 ret = ERR_CAST(shm->dmabuf);
305 teedev->desc->ops->shm_unregister(ctx, shm);
306 goto err;
307 }
308 }
309
310 mutex_lock(&teedev->mutex);
311 list_add_tail(&shm->link, &ctx->list_shm);
312 mutex_unlock(&teedev->mutex);
313
314 return shm;
315 err:
316 if (shm) {
317 size_t n;
318
319 if (shm->id >= 0) {
320 mutex_lock(&teedev->mutex);
321 idr_remove(&teedev->idr, shm->id);
322 mutex_unlock(&teedev->mutex);
323 }
324 if (shm->pages) {
325 for (n = 0; n < shm->num_pages; n++)
326 put_page(shm->pages[n]);
327 kfree(shm->pages);
328 }
329 }
330 kfree(shm);
331 teedev_ctx_put(ctx);
332 tee_device_put(teedev);
333 return ret;
> 334 }
335 EXPORT_SYMBOL_GPL(tee_shm_register);
336
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 59052 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-09-26 11:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-26 11:44 [linux-next:master 13883/13946] drivers//tee/tee_shm.c:257:28: error: expected ')' before ';' token kbuild test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox