[mmotm:master 117/211] mm/hmm.c:331:10: error: implicit declaration of function 'pgd_addr_end'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]
  Powered by Linux