tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-testing head: 36c3c6ecedac0e96207e9454d77231b5b1857a3f commit: 36c3c6ecedac0e96207e9454d77231b5b1857a3f [1122/1122] staging: add bcm2708 vchiq driver config: arm-multi_v7_defconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 36c3c6ecedac0e96207e9454d77231b5b1857a3f # save the attached .config to linux build tree make.cross ARCH=arm
All error/warnings (new ones prefixed by >>):
In file included from ./arch/arm/include/generated/asm/current.h:1:0,
from include/linux/wait.h:9,
from include/linux/mmzone.h:9,
from include/linux/gfp.h:5,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:36:
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c: In function
'dump_phys_mem':
>> include/asm-generic/current.h:6:23: warning: passing argument 1 of
>> 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
#define get_current() (current_thread_info()->task)
^
>> include/asm-generic/current.h:7:17: note: in expansion of macro 'get_current'
#define current get_current()
^~~~~~~~~~~
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1476:22: note:
>> in expansion of macro 'current'
rc = get_user_pages(current, /* task */
^~~~~~~
In file included from
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:42:0:
include/linux/mm.h:1293:6: note: expected 'long unsigned int' but argument
is of type 'struct task_struct *'
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
In file included from ./arch/arm/include/generated/asm/current.h:1:0,
from include/linux/wait.h:9,
from include/linux/mmzone.h:9,
from include/linux/gfp.h:5,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:36:
include/asm-generic/current.h:6:23: warning: passing argument 2 of
'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
#define get_current() (current_thread_info()->task)
^
>> include/asm-generic/current.h:7:17: note: in expansion of macro 'get_current'
#define current get_current()
^~~~~~~~~~~
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1477:3: note:
in expansion of macro 'current'
current->mm, /* mm */
^~~~~~~
In file included from
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:42:0:
include/linux/mm.h:1293:6: note: expected 'long unsigned int' but argument
is of type 'struct mm_struct *'
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1476:7: error:
>> too many arguments to function 'get_user_pages'
rc = get_user_pages(current, /* task */
^~~~~~~~~~~~~~
In file included from
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:42:0:
include/linux/mm.h:1293:6: note: declared here
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1516:3: error:
>> implicit declaration of function 'page_cache_release'
>> [-Werror=implicit-function-declaration]
page_cache_release(pages[page_idx]);
^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c: In
function 'vchiq_platform_init':
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:169:34:
>> error: 'RPI_FIRMWARE_VCHIQ_INIT' undeclared (first use in this function)
err = rpi_firmware_property(fw, RPI_FIRMWARE_VCHIQ_INIT,
^~~~~~~~~~~~~~~~~~~~~~~
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:169:34:
note: each undeclared identifier is reported only once for each function it
appears in
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c: In
function 'create_pagelist':
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:423:33:
>> warning: passing argument 1 of 'get_user_pages' makes integer from pointer
>> without a cast [-Wint-conversion]
actual_pages = get_user_pages(task, task->mm,
^~~~
In file included from include/linux/pagemap.h:7:0,
from
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:38:
include/linux/mm.h:1293:6: note: expected 'long unsigned int' but argument
is of type 'struct task_struct *'
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:423:39:
warning: passing argument 2 of 'get_user_pages' makes integer from pointer
without a cast [-Wint-conversion]
actual_pages = get_user_pages(task, task->mm,
^~~~
In file included from include/linux/pagemap.h:7:0,
from
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:38:
include/linux/mm.h:1293:6: note: expected 'long unsigned int' but argument
is of type 'struct mm_struct *'
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:426:8:
>> warning: passing argument 5 of 'get_user_pages' makes pointer from integer
>> without a cast [-Wint-conversion]
(type == PAGELIST_READ) /*Write */ ,
^
In file included from include/linux/pagemap.h:7:0,
from
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:38:
include/linux/mm.h:1293:6: note: expected 'struct page **' but argument is
of type 'int'
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:423:18:
>> error: too many arguments to function 'get_user_pages'
actual_pages = get_user_pages(task, task->mm,
^~~~~~~~~~~~~~
In file included from include/linux/pagemap.h:7:0,
from
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:38:
include/linux/mm.h:1293:6: note: declared here
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:442:5:
>> error: implicit declaration of function 'page_cache_release'
>> [-Werror=implicit-function-declaration]
page_cache_release(pages[actual_pages]);
^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
In file included from ./arch/arm/include/generated/asm/current.h:1:0,
from include/linux/wait.h:9,
from include/linux/mmzone.h:9,
from include/linux/gfp.h:5,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from
drivers/staging/vc04_services//interface/vchiq_arm/vchiq_arm.c:36:
drivers/staging/vc04_services//interface/vchiq_arm/vchiq_arm.c: In function
'dump_phys_mem':
>> include/asm-generic/current.h:6:23: warning: passing argument 1 of
>> 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
#define get_current() (current_thread_info()->task)
^
>> include/asm-generic/current.h:7:17: note: in expansion of macro 'get_current'
#define current get_current()
^~~~~~~~~~~
drivers/staging/vc04_services//interface/vchiq_arm/vchiq_arm.c:1476:22:
note: in expansion of macro 'current'
rc = get_user_pages(current, /* task */
^~~~~~~
In file included from
drivers/staging/vc04_services//interface/vchiq_arm/vchiq_arm.c:42:0:
include/linux/mm.h:1293:6: note: expected 'long unsigned int' but argument
is of type 'struct task_struct *'
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
In file included from ./arch/arm/include/generated/asm/current.h:1:0,
from include/linux/wait.h:9,
from include/linux/mmzone.h:9,
from include/linux/gfp.h:5,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from
drivers/staging/vc04_services//interface/vchiq_arm/vchiq_arm.c:36:
include/asm-generic/current.h:6:23: warning: passing argument 2 of
'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
#define get_current() (current_thread_info()->task)
^
>> include/asm-generic/current.h:7:17: note: in expansion of macro 'get_current'
#define current get_current()
^~~~~~~~~~~
drivers/staging/vc04_services//interface/vchiq_arm/vchiq_arm.c:1477:3: note:
in expansion of macro 'current'
current->mm, /* mm */
^~~~~~~
In file included from
drivers/staging/vc04_services//interface/vchiq_arm/vchiq_arm.c:42:0:
include/linux/mm.h:1293:6: note: expected 'long unsigned int' but argument
is of type 'struct mm_struct *'
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
drivers/staging/vc04_services//interface/vchiq_arm/vchiq_arm.c:1476:7:
error: too many arguments to function 'get_user_pages'
rc = get_user_pages(current, /* task */
^~~~~~~~~~~~~~
In file included from
drivers/staging/vc04_services//interface/vchiq_arm/vchiq_arm.c:42:0:
include/linux/mm.h:1293:6: note: declared here
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
drivers/staging/vc04_services//interface/vchiq_arm/vchiq_arm.c:1516:3:
error: implicit declaration of function 'page_cache_release'
[-Werror=implicit-function-declaration]
page_cache_release(pages[page_idx]);
^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/get_user_pages +1476
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
1470 "Unable to allocation memory for %d pages\n",
1471 num_pages);
1472 return;
1473 }
1474
1475 down_read(¤t->mm->mmap_sem);
> 1476 rc = get_user_pages(current, /* task */
> 1477 current->mm, /* mm */
1478 (unsigned long)virt_addr, /* start */
1479 num_pages, /* len */
1480 0, /* write */
1481 0, /* force */
1482 pages, /* pages (array of page
pointers) */
1483 NULL); /* vmas */
1484 up_read(¤t->mm->mmap_sem);
1485
1486 prev_idx = -1;
1487 page = NULL;
1488
1489 while (offset < end_offset) {
1490
1491 int page_offset = offset % PAGE_SIZE;
1492 page_idx = offset / PAGE_SIZE;
1493
1494 if (page_idx != prev_idx) {
1495
1496 if (page != NULL)
1497 kunmap(page);
1498 page = pages[page_idx];
1499 kmapped_virt_ptr = kmap(page);
1500
1501 prev_idx = page_idx;
1502 }
1503
1504 if (vchiq_arm_log_level >= VCHIQ_LOG_TRACE)
1505 vchiq_log_dump_mem("ph",
1506 (uint32_t)(unsigned
long)&kmapped_virt_ptr[
1507 page_offset],
1508 &kmapped_virt_ptr[page_offset], 16);
1509
1510 offset += 16;
1511 }
1512 if (page != NULL)
1513 kunmap(page);
1514
1515 for (page_idx = 0; page_idx < num_pages; page_idx++)
> 1516 page_cache_release(pages[page_idx]);
1517
1518 kfree(pages);
1519 }
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip
_______________________________________________ devel mailing list [email protected] http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
