* [rgushchin:kmem_reparent.4 170/380] mm/mprotect.c:152:16: error: 'mm' undeclared
@ 2019-05-14 5:54 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2019-05-14 5:54 UTC (permalink / raw)
To: Mike Rapoport
Cc: kbuild-all, Roman Gushchin, Johannes Weiner, Andrew Morton,
Linux Memory Management List
[-- Attachment #1: Type: text/plain, Size: 13493 bytes --]
tree: https://github.com/rgushchin/linux.git kmem_reparent.4
head: 595d92aaebb6a603b2820ce7188b6db971693d85
commit: c7b45943bdf12b5ccfcd016538c62aa7edd604d5 [170/380] mm/mprotect.c: fix compilation warning because of unused 'mm' varaible
config: i386-randconfig-l0-05140835 (attached as .config)
compiler: gcc-5 (Debian 5.5.0-3) 5.4.1 20171010
reproduce:
git checkout c7b45943bdf12b5ccfcd016538c62aa7edd604d5
# save the attached .config to linux build tree
make ARCH=i386
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
Note: the rgushchin/kmem_reparent.4 HEAD 595d92aaebb6a603b2820ce7188b6db971693d85 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
In file included from include/linux/mm.h:99:0,
from mm/mprotect.c:12:
mm/mprotect.c: In function 'change_pte_range':
mm/mprotect.c:138:19: error: 'struct vm_area_struct' has no member named 'mm'
set_pte_at(vma->mm, addr, pte, newpte);
^
arch/x86/include/asm/pgtable.h:64:59: note: in definition of macro 'set_pte_at'
#define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte)
^
>> mm/mprotect.c:152:16: error: 'mm' undeclared (first use in this function)
set_pte_at(mm, addr, pte, newpte);
^
arch/x86/include/asm/pgtable.h:64:59: note: in definition of macro 'set_pte_at'
#define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte)
^
mm/mprotect.c:152:16: note: each undeclared identifier is reported only once for each function it appears in
set_pte_at(mm, addr, pte, newpte);
^
arch/x86/include/asm/pgtable.h:64:59: note: in definition of macro 'set_pte_at'
#define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte)
^
vim +/mm +152 mm/mprotect.c
^1da177e4 Linus Torvalds 2005-04-16 @12 #include <linux/mm.h>
^1da177e4 Linus Torvalds 2005-04-16 13 #include <linux/hugetlb.h>
^1da177e4 Linus Torvalds 2005-04-16 14 #include <linux/shm.h>
^1da177e4 Linus Torvalds 2005-04-16 15 #include <linux/mman.h>
^1da177e4 Linus Torvalds 2005-04-16 16 #include <linux/fs.h>
^1da177e4 Linus Torvalds 2005-04-16 17 #include <linux/highmem.h>
^1da177e4 Linus Torvalds 2005-04-16 18 #include <linux/security.h>
^1da177e4 Linus Torvalds 2005-04-16 19 #include <linux/mempolicy.h>
^1da177e4 Linus Torvalds 2005-04-16 20 #include <linux/personality.h>
^1da177e4 Linus Torvalds 2005-04-16 21 #include <linux/syscalls.h>
0697212a4 Christoph Lameter 2006-06-23 22 #include <linux/swap.h>
0697212a4 Christoph Lameter 2006-06-23 23 #include <linux/swapops.h>
cddb8a5c1 Andrea Arcangeli 2008-07-28 24 #include <linux/mmu_notifier.h>
64cdd548f KOSAKI Motohiro 2009-01-06 25 #include <linux/migrate.h>
cdd6c482c Ingo Molnar 2009-09-21 26 #include <linux/perf_event.h>
e8c24d3a2 Dave Hansen 2016-07-29 27 #include <linux/pkeys.h>
64a9a34e2 Mel Gorman 2014-01-21 28 #include <linux/ksm.h>
7c0f6ba68 Linus Torvalds 2016-12-24 29 #include <linux/uaccess.h>
09a913a7a Mel Gorman 2018-04-10 30 #include <linux/mm_inline.h>
^1da177e4 Linus Torvalds 2005-04-16 31 #include <asm/pgtable.h>
^1da177e4 Linus Torvalds 2005-04-16 32 #include <asm/cacheflush.h>
e8c24d3a2 Dave Hansen 2016-07-29 33 #include <asm/mmu_context.h>
^1da177e4 Linus Torvalds 2005-04-16 34 #include <asm/tlbflush.h>
^1da177e4 Linus Torvalds 2005-04-16 35
36f881883 Kirill A. Shutemov 2015-06-24 36 #include "internal.h"
36f881883 Kirill A. Shutemov 2015-06-24 37
4b10e7d56 Mel Gorman 2012-10-25 38 static unsigned long change_pte_range(struct vm_area_struct *vma, pmd_t *pmd,
c1e6098b2 Peter Zijlstra 2006-09-25 39 unsigned long addr, unsigned long end, pgprot_t newprot,
0f19c1792 Mel Gorman 2013-10-07 40 int dirty_accountable, int prot_numa)
^1da177e4 Linus Torvalds 2005-04-16 41 {
0697212a4 Christoph Lameter 2006-06-23 42 pte_t *pte, oldpte;
705e87c0c Hugh Dickins 2005-10-29 43 spinlock_t *ptl;
7da4d641c Peter Zijlstra 2012-11-19 44 unsigned long pages = 0;
3e3215876 Andi Kleen 2016-12-12 45 int target_node = NUMA_NO_NODE;
^1da177e4 Linus Torvalds 2005-04-16 46
175ad4f1e Andrea Arcangeli 2017-02-22 47 /*
175ad4f1e Andrea Arcangeli 2017-02-22 48 * Can be called with only the mmap_sem for reading by
175ad4f1e Andrea Arcangeli 2017-02-22 49 * prot_numa so we must check the pmd isn't constantly
175ad4f1e Andrea Arcangeli 2017-02-22 50 * changing from under us from pmd_none to pmd_trans_huge
175ad4f1e Andrea Arcangeli 2017-02-22 51 * and/or the other way around.
175ad4f1e Andrea Arcangeli 2017-02-22 52 */
175ad4f1e Andrea Arcangeli 2017-02-22 53 if (pmd_trans_unstable(pmd))
175ad4f1e Andrea Arcangeli 2017-02-22 54 return 0;
175ad4f1e Andrea Arcangeli 2017-02-22 55
175ad4f1e Andrea Arcangeli 2017-02-22 56 /*
175ad4f1e Andrea Arcangeli 2017-02-22 57 * The pmd points to a regular pte so the pmd can't change
175ad4f1e Andrea Arcangeli 2017-02-22 58 * from under us even if the mmap_sem is only hold for
175ad4f1e Andrea Arcangeli 2017-02-22 59 * reading.
175ad4f1e Andrea Arcangeli 2017-02-22 60 */
175ad4f1e Andrea Arcangeli 2017-02-22 61 pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
1ad9f620c Mel Gorman 2014-04-07 62
3e3215876 Andi Kleen 2016-12-12 63 /* Get target node for single threaded private VMAs */
3e3215876 Andi Kleen 2016-12-12 64 if (prot_numa && !(vma->vm_flags & VM_SHARED) &&
3e3215876 Andi Kleen 2016-12-12 65 atomic_read(&vma->vm_mm->mm_users) == 1)
3e3215876 Andi Kleen 2016-12-12 66 target_node = numa_node_id();
3e3215876 Andi Kleen 2016-12-12 67
3ea277194 Mel Gorman 2017-08-02 68 flush_tlb_batched_pending(vma->vm_mm);
6606c3e0d Zachary Amsden 2006-09-30 69 arch_enter_lazy_mmu_mode();
^1da177e4 Linus Torvalds 2005-04-16 70 do {
0697212a4 Christoph Lameter 2006-06-23 71 oldpte = *pte;
0697212a4 Christoph Lameter 2006-06-23 72 if (pte_present(oldpte)) {
^1da177e4 Linus Torvalds 2005-04-16 73 pte_t ptent;
b191f9b10 Mel Gorman 2015-03-25 74 bool preserve_write = prot_numa && pte_write(oldpte);
^1da177e4 Linus Torvalds 2005-04-16 75
e944fd67b Mel Gorman 2015-02-12 76 /*
e944fd67b Mel Gorman 2015-02-12 77 * Avoid trapping faults against the zero or KSM
e944fd67b Mel Gorman 2015-02-12 78 * pages. See similar comment in change_huge_pmd.
e944fd67b Mel Gorman 2015-02-12 79 */
e944fd67b Mel Gorman 2015-02-12 80 if (prot_numa) {
e944fd67b Mel Gorman 2015-02-12 81 struct page *page;
e944fd67b Mel Gorman 2015-02-12 82
e944fd67b Mel Gorman 2015-02-12 83 page = vm_normal_page(vma, addr, oldpte);
e944fd67b Mel Gorman 2015-02-12 84 if (!page || PageKsm(page))
e944fd67b Mel Gorman 2015-02-12 85 continue;
10c1045f2 Mel Gorman 2015-02-12 86
859d4adc3 Henry Willard 2018-01-31 87 /* Also skip shared copy-on-write pages */
859d4adc3 Henry Willard 2018-01-31 88 if (is_cow_mapping(vma->vm_flags) &&
859d4adc3 Henry Willard 2018-01-31 89 page_mapcount(page) != 1)
859d4adc3 Henry Willard 2018-01-31 90 continue;
859d4adc3 Henry Willard 2018-01-31 91
09a913a7a Mel Gorman 2018-04-10 92 /*
09a913a7a Mel Gorman 2018-04-10 93 * While migration can move some dirty pages,
09a913a7a Mel Gorman 2018-04-10 94 * it cannot move them all from MIGRATE_ASYNC
09a913a7a Mel Gorman 2018-04-10 95 * context.
09a913a7a Mel Gorman 2018-04-10 96 */
09a913a7a Mel Gorman 2018-04-10 97 if (page_is_file_cache(page) && PageDirty(page))
09a913a7a Mel Gorman 2018-04-10 98 continue;
09a913a7a Mel Gorman 2018-04-10 99
10c1045f2 Mel Gorman 2015-02-12 100 /* Avoid TLB flush if possible */
10c1045f2 Mel Gorman 2015-02-12 101 if (pte_protnone(oldpte))
10c1045f2 Mel Gorman 2015-02-12 102 continue;
3e3215876 Andi Kleen 2016-12-12 103
3e3215876 Andi Kleen 2016-12-12 104 /*
3e3215876 Andi Kleen 2016-12-12 105 * Don't mess with PTEs if page is already on the node
3e3215876 Andi Kleen 2016-12-12 106 * a single-threaded process is running on.
3e3215876 Andi Kleen 2016-12-12 107 */
3e3215876 Andi Kleen 2016-12-12 108 if (target_node == page_to_nid(page))
3e3215876 Andi Kleen 2016-12-12 109 continue;
e944fd67b Mel Gorman 2015-02-12 110 }
e944fd67b Mel Gorman 2015-02-12 111
04a864530 Aneesh Kumar K.V 2019-03-05 112 oldpte = ptep_modify_prot_start(vma, addr, pte);
04a864530 Aneesh Kumar K.V 2019-03-05 113 ptent = pte_modify(oldpte, newprot);
b191f9b10 Mel Gorman 2015-03-25 114 if (preserve_write)
288bc5494 Aneesh Kumar K.V 2017-02-24 115 ptent = pte_mk_savedwrite(ptent);
8a0516ed8 Mel Gorman 2015-02-12 116
8a0516ed8 Mel Gorman 2015-02-12 117 /* Avoid taking write faults for known dirty pages */
64e455079 Peter Feiner 2014-10-13 118 if (dirty_accountable && pte_dirty(ptent) &&
64e455079 Peter Feiner 2014-10-13 119 (pte_soft_dirty(ptent) ||
8a0516ed8 Mel Gorman 2015-02-12 120 !(vma->vm_flags & VM_SOFTDIRTY))) {
9d85d5863 Aneesh Kumar K.V 2014-02-12 121 ptent = pte_mkwrite(ptent);
4b10e7d56 Mel Gorman 2012-10-25 122 }
04a864530 Aneesh Kumar K.V 2019-03-05 123 ptep_modify_prot_commit(vma, addr, pte, oldpte, ptent);
7da4d641c Peter Zijlstra 2012-11-19 124 pages++;
0661a3361 Kirill A. Shutemov 2015-02-10 125 } else if (IS_ENABLED(CONFIG_MIGRATION)) {
0697212a4 Christoph Lameter 2006-06-23 126 swp_entry_t entry = pte_to_swp_entry(oldpte);
0697212a4 Christoph Lameter 2006-06-23 127
0697212a4 Christoph Lameter 2006-06-23 128 if (is_write_migration_entry(entry)) {
c3d16e165 Cyrill Gorcunov 2013-10-16 129 pte_t newpte;
0697212a4 Christoph Lameter 2006-06-23 130 /*
0697212a4 Christoph Lameter 2006-06-23 131 * A protection check is difficult so
0697212a4 Christoph Lameter 2006-06-23 132 * just be safe and disable write
0697212a4 Christoph Lameter 2006-06-23 133 */
0697212a4 Christoph Lameter 2006-06-23 134 make_migration_entry_read(&entry);
c3d16e165 Cyrill Gorcunov 2013-10-16 135 newpte = swp_entry_to_pte(entry);
c3d16e165 Cyrill Gorcunov 2013-10-16 136 if (pte_swp_soft_dirty(oldpte))
c3d16e165 Cyrill Gorcunov 2013-10-16 137 newpte = pte_swp_mksoft_dirty(newpte);
c7b45943b Mike Rapoport 2019-05-12 138 set_pte_at(vma->mm, addr, pte, newpte);
e920e14ca Mel Gorman 2013-10-07 139
7da4d641c Peter Zijlstra 2012-11-19 140 pages++;
^1da177e4 Linus Torvalds 2005-04-16 141 }
5042db43c Jérôme Glisse 2017-09-08 142
5042db43c Jérôme Glisse 2017-09-08 143 if (is_write_device_private_entry(entry)) {
5042db43c Jérôme Glisse 2017-09-08 144 pte_t newpte;
5042db43c Jérôme Glisse 2017-09-08 145
5042db43c Jérôme Glisse 2017-09-08 146 /*
5042db43c Jérôme Glisse 2017-09-08 147 * We do not preserve soft-dirtiness. See
5042db43c Jérôme Glisse 2017-09-08 148 * copy_one_pte() for explanation.
5042db43c Jérôme Glisse 2017-09-08 149 */
5042db43c Jérôme Glisse 2017-09-08 150 make_device_private_entry_read(&entry);
5042db43c Jérôme Glisse 2017-09-08 151 newpte = swp_entry_to_pte(entry);
5042db43c Jérôme Glisse 2017-09-08 @152 set_pte_at(mm, addr, pte, newpte);
5042db43c Jérôme Glisse 2017-09-08 153
5042db43c Jérôme Glisse 2017-09-08 154 pages++;
5042db43c Jérôme Glisse 2017-09-08 155 }
e920e14ca Mel Gorman 2013-10-07 156 }
^1da177e4 Linus Torvalds 2005-04-16 157 } while (pte++, addr += PAGE_SIZE, addr != end);
6606c3e0d Zachary Amsden 2006-09-30 158 arch_leave_lazy_mmu_mode();
705e87c0c Hugh Dickins 2005-10-29 159 pte_unmap_unlock(pte - 1, ptl);
7da4d641c Peter Zijlstra 2012-11-19 160
7da4d641c Peter Zijlstra 2012-11-19 161 return pages;
^1da177e4 Linus Torvalds 2005-04-16 162 }
^1da177e4 Linus Torvalds 2005-04-16 163
:::::: The code at line 152 was first introduced by commit
:::::: 5042db43cc26f51eed51c56192e2c2317e44315f mm/ZONE_DEVICE: new type of ZONE_DEVICE for unaddressable memory
:::::: TO: Jérôme Glisse <jglisse@redhat.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
---
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: 28413 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-05-14 5:55 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-14 5:54 [rgushchin:kmem_reparent.4 170/380] mm/mprotect.c:152:16: error: 'mm' undeclared 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;
as well as URLs for NNTP newsgroup(s).