From: kbuild test robot <fengguang.wu@intel.com>
To: "Jérôme Glisse" <jglisse@redhat.com>
Cc: kbuild-all@01.org, Johannes Weiner <hannes@cmpxchg.org>,
Evgeny Baskakov <ebaskakov@nvidia.com>,
John Hubbard <jhubbard@nvidia.com>,
Mark Hairgrove <mhairgrove@nvidia.com>,
Sherry Cheung <SCheung@nvidia.com>,
Subhash Gutti <sgutti@nvidia.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>
Subject: [mmotm:master 117/211] mm/hmm.c:331:10: error: implicit declaration of function 'pgd_addr_end'
Date: Fri, 17 Mar 2017 09:21:18 +0800 [thread overview]
Message-ID: <201703170913.bUuqCpwC%fengguang.wu@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 7122 bytes --]
tree: git://git.cmpxchg.org/linux-mmotm.git master
head: 8276ddb3c638602509386f1a05f75326dbf5ce09
commit: 905a9b0bd6eba8d56ea426ff5ad32b19eecae750 [117/211] mm/hmm/mirror: helper to snapshot CPU page table
config: blackfin-allmodconfig (attached as .config)
compiler: bfin-uclinux-gcc (GCC) 6.2.0
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 905a9b0bd6eba8d56ea426ff5ad32b19eecae750
# save the attached .config to linux build tree
make.cross ARCH=blackfin
All error/warnings (new ones prefixed by >>):
mm/hmm.c: In function 'hmm_vma_walk':
>> mm/hmm.c:331:10: error: implicit declaration of function 'pgd_addr_end' [-Werror=implicit-function-declaration]
next = pgd_addr_end(addr, end);
^~~~~~~~~~~~
>> mm/hmm.c:332:10: error: implicit declaration of function 'pgd_offset' [-Werror=implicit-function-declaration]
pgdp = pgd_offset(vma->vm_mm, addr);
^~~~~~~~~~
>> mm/hmm.c:332:8: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
pgdp = pgd_offset(vma->vm_mm, addr);
^
>> mm/hmm.c:345:10: error: implicit declaration of function 'pmd_addr_end' [-Werror=implicit-function-declaration]
next = pmd_addr_end(addr, end);
^~~~~~~~~~~~
>> mm/hmm.c:347:9: error: implicit declaration of function 'pmd_read_atomic' [-Werror=implicit-function-declaration]
pmd = pmd_read_atomic(pmdp);
^~~~~~~~~~~~~~~
>> mm/hmm.c:347:7: error: incompatible types when assigning to type 'pmd_t {aka struct <anonymous>}' from type 'int'
pmd = pmd_read_atomic(pmdp);
^
>> mm/hmm.c:353:7: error: implicit declaration of function 'pmd_trans_huge' [-Werror=implicit-function-declaration]
if (pmd_trans_huge(pmd) || pmd_devmap(pmd)) {
^~~~~~~~~~~~~~
mm/hmm.c:354:24: error: implicit declaration of function 'pmd_pfn' [-Werror=implicit-function-declaration]
unsigned long pfn = pmd_pfn(pmd) + pte_index(addr);
^~~~~~~
>> mm/hmm.c:354:39: error: implicit declaration of function 'pte_index' [-Werror=implicit-function-declaration]
unsigned long pfn = pmd_pfn(pmd) + pte_index(addr);
^~~~~~~~~
>> mm/hmm.c:357:8: error: implicit declaration of function 'pmd_protnone' [-Werror=implicit-function-declaration]
if (pmd_protnone(pmd)) {
^~~~~~~~~~~~
mm/hmm.c:358:5: error: implicit declaration of function 'hmm_pfns_clear' [-Werror=implicit-function-declaration]
hmm_pfns_clear(&pfns[i], addr, next);
^~~~~~~~~~~~~~
>> mm/hmm.c:361:13: error: implicit declaration of function 'pmd_write' [-Werror=implicit-function-declaration]
flags |= pmd_write(*pmdp) ? HMM_PFN_WRITE : 0;
^~~~~~~~~
>> mm/hmm.c:368:10: error: implicit declaration of function 'pte_offset_map' [-Werror=implicit-function-declaration]
ptep = pte_offset_map(pmdp, addr);
^~~~~~~~~~~~~~
mm/hmm.c:368:8: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
ptep = pte_offset_map(pmdp, addr);
^
>> mm/hmm.c:375:8: error: implicit declaration of function 'pte_none' [-Werror=implicit-function-declaration]
if (pte_none(pte)) {
^~~~~~~~
>> mm/hmm.c:381:9: error: implicit declaration of function 'pte_present' [-Werror=implicit-function-declaration]
if (!pte_present(pte) && !non_swap_entry(entry)) {
^~~~~~~~~~~
>> mm/hmm.c:386:32: error: implicit declaration of function 'pte_pfn' [-Werror=implicit-function-declaration]
pfns[i] = hmm_pfn_from_pfn(pte_pfn(pte))|flag;
^~~~~~~
>> mm/hmm.c:387:16: error: implicit declaration of function 'pte_write' [-Werror=implicit-function-declaration]
pfns[i] |= pte_write(pte) ? HMM_PFN_WRITE : 0;
^~~~~~~~~
>> mm/hmm.c:406:3: error: implicit declaration of function 'pte_unmap' [-Werror=implicit-function-declaration]
pte_unmap(ptep - 1);
^~~~~~~~~
cc1: some warnings being treated as errors
vim +/pgd_addr_end +331 mm/hmm.c
325 /*
326 * We are accessing/faulting for a device from an unknown
327 * thread that might be foreign to the mm we are faulting
328 * against so do not call arch_vma_access_permitted() !
329 */
330
> 331 next = pgd_addr_end(addr, end);
> 332 pgdp = pgd_offset(vma->vm_mm, addr);
333 if (pgd_none(*pgdp) || pgd_bad(*pgdp)) {
334 hmm_pfns_empty(&pfns[i], addr, next);
335 continue;
336 }
337
338 next = pud_addr_end(addr, end);
339 pudp = pud_offset(pgdp, addr);
340 if (pud_none(*pudp) || pud_bad(*pudp)) {
341 hmm_pfns_empty(&pfns[i], addr, next);
342 continue;
343 }
344
> 345 next = pmd_addr_end(addr, end);
346 pmdp = pmd_offset(pudp, addr);
> 347 pmd = pmd_read_atomic(pmdp);
348 barrier();
349 if (pmd_none(pmd) || pmd_bad(pmd)) {
350 hmm_pfns_empty(&pfns[i], addr, next);
351 continue;
352 }
> 353 if (pmd_trans_huge(pmd) || pmd_devmap(pmd)) {
> 354 unsigned long pfn = pmd_pfn(pmd) + pte_index(addr);
355 hmm_pfn_t flags = flag;
356
> 357 if (pmd_protnone(pmd)) {
358 hmm_pfns_clear(&pfns[i], addr, next);
359 continue;
360 }
> 361 flags |= pmd_write(*pmdp) ? HMM_PFN_WRITE : 0;
362 flags |= pmd_devmap(pmd) ? HMM_PFN_DEVICE : 0;
363 for (; addr < next; addr += PAGE_SIZE, i++, pfn++)
364 pfns[i] = hmm_pfn_from_pfn(pfn) | flags;
365 continue;
366 }
367
> 368 ptep = pte_offset_map(pmdp, addr);
369 for (; addr < next; addr += PAGE_SIZE, i++, ptep++) {
370 swp_entry_t entry;
371 pte_t pte = *ptep;
372
373 pfns[i] = 0;
374
> 375 if (pte_none(pte)) {
376 pfns[i] = HMM_PFN_EMPTY;
377 continue;
378 }
379
380 entry = pte_to_swp_entry(pte);
> 381 if (!pte_present(pte) && !non_swap_entry(entry)) {
382 continue;
383 }
384
385 if (pte_present(pte)) {
> 386 pfns[i] = hmm_pfn_from_pfn(pte_pfn(pte))|flag;
> 387 pfns[i] |= pte_write(pte) ? HMM_PFN_WRITE : 0;
388 continue;
389 }
390
391 /*
392 * This is a special swap entry, ignore migration, use
393 * device and report anything else as error.
394 */
395 if (is_device_entry(entry)) {
396 pfns[i] = hmm_pfn_from_pfn(swp_offset(entry));
397 if (is_write_device_entry(entry))
398 pfns[i] |= HMM_PFN_WRITE;
399 pfns[i] |= HMM_PFN_DEVICE;
400 pfns[i] |= HMM_PFN_UNADDRESSABLE;
401 pfns[i] |= flag;
402 } else if (!is_migration_entry(entry)) {
403 pfns[i] = HMM_PFN_ERROR;
404 }
405 }
> 406 pte_unmap(ptep - 1);
407 }
408 }
409
---
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: 43905 bytes --]
reply other threads:[~2017-03-17 1:21 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201703170913.bUuqCpwC%fengguang.wu@intel.com \
--to=fengguang.wu@intel.com \
--cc=SCheung@nvidia.com \
--cc=akpm@linux-foundation.org \
--cc=ebaskakov@nvidia.com \
--cc=hannes@cmpxchg.org \
--cc=jglisse@redhat.com \
--cc=jhubbard@nvidia.com \
--cc=kbuild-all@01.org \
--cc=linux-mm@kvack.org \
--cc=mhairgrove@nvidia.com \
--cc=sgutti@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox