Re: [PATCH] goldfish: fix goldfish_pipe driver BUG

From: kbuild test robot
Date: Fri Nov 06 2015 - 11:43:56 EST


Hi yalin,

[auto build test ERROR on staging/staging-testing]
[also build test ERROR on v4.3 next-20151106]

url: https://github.com/0day-ci/linux/commits/yalin-wang/goldfish-fix-goldfish_pipe-driver-BUG/20151106-235541
config: i386-allmodconfig (attached as .config)
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

All errors (new ones prefixed by >>):

drivers/platform/goldfish/goldfish_pipe.c: In function 'goldfish_pipe_read_write':
>> drivers/platform/goldfish/goldfish_pipe.c:340:7: error: implicit declaration of function 'get_user_pages_unlocked' [-Werror=implicit-function-declaration]
if (get_user_pages_unlocked(current, current->active_mm,
^
>> drivers/platform/goldfish/goldfish_pipe.c:343:36: error: implicit declaration of function 'offset_in_page' [-Werror=implicit-function-declaration]
phys_addr = page_to_phys(page) + offset_in_page(address);
^
>> drivers/platform/goldfish/goldfish_pipe.c:355:3: error: implicit declaration of function 'put_page' [-Werror=implicit-function-declaration]
put_page(page);
^
cc1: some warnings being treated as errors

vim +/get_user_pages_unlocked +340 drivers/platform/goldfish/goldfish_pipe.c

334 if (__put_user(0, (char __user *)address)) {
335 if (!ret)
336 ret = -EFAULT;
337 break;
338 }
339 }
> 340 if (get_user_pages_unlocked(current, current->active_mm,
341 address, 1, !is_write, 0, &page) != 1)
342 return -EINVAL;
> 343 phys_addr = page_to_phys(page) + offset_in_page(address);
344 /* Now, try to transfer the bytes in the current page */
345 spin_lock_irqsave(&dev->lock, irq_flags);
346 gf_write_ptr(pipe, dev->base + PIPE_REG_CHANNEL,
347 dev->base + PIPE_REG_CHANNEL_HIGH);
348 writel(avail, dev->base + PIPE_REG_SIZE);
349 gf_write_ptr((void *)phys_addr, dev->base + PIPE_REG_ADDRESS,
350 dev->base + PIPE_REG_ADDRESS_HIGH);
351 writel(CMD_WRITE_BUFFER + cmd_offset,
352 dev->base + PIPE_REG_COMMAND);
353 status = readl(dev->base + PIPE_REG_STATUS);
354 spin_unlock_irqrestore(&dev->lock, irq_flags);
> 355 put_page(page);
356 if (status > 0) { /* Correct transfer */
357 ret += status;
358 address += status;

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: Binary data