From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 345BDC28CBC for ; Sat, 9 May 2020 10:47:54 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 7F04B24954 for ; Sat, 9 May 2020 10:47:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7F04B24954 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id D4D89900004; Sat, 9 May 2020 06:47:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CFED68E0003; Sat, 9 May 2020 06:47:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B9DF4900004; Sat, 9 May 2020 06:47:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0029.hostedemail.com [216.40.44.29]) by kanga.kvack.org (Postfix) with ESMTP id 994128E0003 for ; Sat, 9 May 2020 06:47:52 -0400 (EDT) Received: from smtpin25.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 4F164348D for ; Sat, 9 May 2020 10:47:52 +0000 (UTC) X-FDA: 76796855184.25.rice05_2769343ef2c5c X-HE-Tag: rice05_2769343ef2c5c X-Filterd-Recvd-Size: 70966 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by imf08.hostedemail.com (Postfix) with ESMTP for ; Sat, 9 May 2020 10:47:50 +0000 (UTC) IronPort-SDR: R1hcdt6zKv9Gvu7KPLhrKa5tsYp5hwt1USCGBSa4mSQEYYW+fhyWB3lhisPf/mYwgCs3kUgDuJ 7tJfALPMrXZw== X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 May 2020 03:47:47 -0700 IronPort-SDR: eAaYE29xD7H4R0rf+pdOKR1vGSUYdhKfHyME2Akxj+Fv0xlDaub/CssIgwcPTf7QVL/qiPrD9K HECp0Vy2VOYg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,371,1583222400"; d="gz'50?scan'50,208,50";a="261259741" Received: from lkp-server01.sh.intel.com (HELO lkp-server01) ([10.239.97.150]) by orsmga003.jf.intel.com with ESMTP; 09 May 2020 03:47:45 -0700 Received: from kbuild by lkp-server01 with local (Exim 4.89) (envelope-from ) id 1jXN1E-000B3O-P3; Sat, 09 May 2020 18:47:44 +0800 Date: Sat, 9 May 2020 18:46:50 +0800 From: kbuild test robot To: Zong Li Cc: kbuild-all@lists.01.org, Andrew Morton , Linux Memory Management List Subject: [linux-next:master 7592/7905] arch/riscv/mm/ptdump.c:57:3: error: 'FIXADDR_START' undeclared here (not in a function); did you mean 'XAS_RESTART'? Message-ID: <202005091847.zkVHPjis%lkp@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="AhhlLboLdkugWU4S" Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --AhhlLboLdkugWU4S Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Zong, First bad commit (maybe != root cause): tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 30e2206e11ce27ae910cc0dab21472429e400a87 commit: c0eba2d72e70b4208ca6fd82820ba7428090e350 [7592/7905] riscv: support DEBUG_WX config: riscv-randconfig-r003-20200509 (attached as .config) compiler: riscv64-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout c0eba2d72e70b4208ca6fd82820ba7428090e350 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=riscv If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All error/warnings (new ones prefixed by >>): >> arch/riscv/mm/ptdump.c:57:3: error: 'FIXADDR_START' undeclared here (not in a function); did you mean 'XAS_RESTART'? 57 | {FIXADDR_START, "Fixmap start"}, | ^~~~~~~~~~~~~ | XAS_RESTART >> arch/riscv/mm/ptdump.c:58:3: error: 'FIXADDR_TOP' undeclared here (not in a function) 58 | {FIXADDR_TOP, "Fixmap end"}, | ^~~~~~~~~~~ >> arch/riscv/mm/ptdump.c:59:3: error: 'PCI_IO_START' undeclared here (not in a function) 59 | {PCI_IO_START, "PCI I/O start"}, | ^~~~~~~~~~~~ >> arch/riscv/mm/ptdump.c:60:3: error: 'PCI_IO_END' undeclared here (not in a function) 60 | {PCI_IO_END, "PCI I/O end"}, | ^~~~~~~~~~ In file included from arch/riscv/include/asm/page.h:12, from arch/riscv/include/asm/thread_info.h:11, from include/linux/thread_info.h:38, from include/asm-generic/preempt.h:5, from ./arch/riscv/include/generated/asm/preempt.h:1, from include/linux/preempt.h:78, from include/linux/spinlock.h:51, from include/linux/wait.h:9, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from include/linux/debugfs.h:15, from arch/riscv/mm/ptdump.c:7: arch/riscv/mm/ptdump.c: In function 'note_page': >> arch/riscv/mm/ptdump.c:210:20: error: implicit declaration of function 'pte_pfn' [-Werror=implicit-function-declaration] 210 | u64 pa = PFN_PHYS(pte_pfn(__pte(val))); | ^~~~~~~ include/linux/pfn.h:21:36: note: in definition of macro 'PFN_PHYS' 21 | #define PFN_PHYS(x) ((phys_addr_t)(x) << PAGE_SHIFT) | ^ arch/riscv/mm/ptdump.c: In function 'ptdump_walk': >> arch/riscv/mm/ptdump.c:257:6: error: 'KERN_VIRT_START' undeclared (first use in this function); did you mean 'KERN_VIRT_SIZE'? 257 | {KERN_VIRT_START, ULONG_MAX}, | ^~~~~~~~~~~~~~~ | KERN_VIRT_SIZE arch/riscv/mm/ptdump.c:257:6: note: each undeclared identifier is reported only once for each function it appears in >> arch/riscv/mm/ptdump.c:257:6: warning: initialization of 'long unsigned int' from 'struct addr_marker *' makes integer from pointer without a cast [-Wint-conversion] arch/riscv/mm/ptdump.c:257:6: note: (near initialization for '(anonymous)[0].start') arch/riscv/mm/ptdump.c: In function 'ptdump_check_wx': arch/riscv/mm/ptdump.c:279:6: error: 'KERN_VIRT_START' undeclared (first use in this function); did you mean 'KERN_VIRT_SIZE'? 279 | {KERN_VIRT_START, ULONG_MAX}, | ^~~~~~~~~~~~~~~ | KERN_VIRT_SIZE arch/riscv/mm/ptdump.c:279:6: warning: initialization of 'long unsigned int' from 'struct addr_marker *' makes integer from pointer without a cast [-Wint-conversion] arch/riscv/mm/ptdump.c:279:6: note: (near initialization for '(anonymous)[0].start') cc1: some warnings being treated as errors vim +57 arch/riscv/mm/ptdump.c 59c4da8640ccf4 Zong Li 2020-03-12 @7 #include 59c4da8640ccf4 Zong Li 2020-03-12 8 #include 59c4da8640ccf4 Zong Li 2020-03-12 9 #include 59c4da8640ccf4 Zong Li 2020-03-12 10 59c4da8640ccf4 Zong Li 2020-03-12 11 #include 59c4da8640ccf4 Zong Li 2020-03-12 12 #include 59c4da8640ccf4 Zong Li 2020-03-12 13 #include 59c4da8640ccf4 Zong Li 2020-03-12 14 59c4da8640ccf4 Zong Li 2020-03-12 15 #define pt_dump_seq_printf(m, fmt, args...) \ 59c4da8640ccf4 Zong Li 2020-03-12 16 ({ \ 59c4da8640ccf4 Zong Li 2020-03-12 17 if (m) \ 59c4da8640ccf4 Zong Li 2020-03-12 18 seq_printf(m, fmt, ##args); \ 59c4da8640ccf4 Zong Li 2020-03-12 19 }) 59c4da8640ccf4 Zong Li 2020-03-12 20 59c4da8640ccf4 Zong Li 2020-03-12 21 #define pt_dump_seq_puts(m, fmt) \ 59c4da8640ccf4 Zong Li 2020-03-12 22 ({ \ 59c4da8640ccf4 Zong Li 2020-03-12 23 if (m) \ 59c4da8640ccf4 Zong Li 2020-03-12 24 seq_printf(m, fmt); \ 59c4da8640ccf4 Zong Li 2020-03-12 25 }) 59c4da8640ccf4 Zong Li 2020-03-12 26 59c4da8640ccf4 Zong Li 2020-03-12 27 /* 59c4da8640ccf4 Zong Li 2020-03-12 28 * The page dumper groups page table entries of the same type into a single 59c4da8640ccf4 Zong Li 2020-03-12 29 * description. It uses pg_state to track the range information while 59c4da8640ccf4 Zong Li 2020-03-12 30 * iterating over the pte entries. When the continuity is broken it then 59c4da8640ccf4 Zong Li 2020-03-12 31 * dumps out a description of the range. 59c4da8640ccf4 Zong Li 2020-03-12 32 */ 59c4da8640ccf4 Zong Li 2020-03-12 33 struct pg_state { 59c4da8640ccf4 Zong Li 2020-03-12 34 struct ptdump_state ptdump; 59c4da8640ccf4 Zong Li 2020-03-12 35 struct seq_file *seq; 59c4da8640ccf4 Zong Li 2020-03-12 36 const struct addr_marker *marker; 59c4da8640ccf4 Zong Li 2020-03-12 37 unsigned long start_address; 59c4da8640ccf4 Zong Li 2020-03-12 38 unsigned long start_pa; 59c4da8640ccf4 Zong Li 2020-03-12 39 unsigned long last_pa; 59c4da8640ccf4 Zong Li 2020-03-12 40 int level; 59c4da8640ccf4 Zong Li 2020-03-12 41 u64 current_prot; 59c4da8640ccf4 Zong Li 2020-03-12 42 bool check_wx; 59c4da8640ccf4 Zong Li 2020-03-12 43 unsigned long wx_pages; 59c4da8640ccf4 Zong Li 2020-03-12 44 }; 59c4da8640ccf4 Zong Li 2020-03-12 45 59c4da8640ccf4 Zong Li 2020-03-12 46 /* Address marker */ 59c4da8640ccf4 Zong Li 2020-03-12 47 struct addr_marker { 59c4da8640ccf4 Zong Li 2020-03-12 48 unsigned long start_address; 59c4da8640ccf4 Zong Li 2020-03-12 49 const char *name; 59c4da8640ccf4 Zong Li 2020-03-12 50 }; 59c4da8640ccf4 Zong Li 2020-03-12 51 59c4da8640ccf4 Zong Li 2020-03-12 52 static struct addr_marker address_markers[] = { 59c4da8640ccf4 Zong Li 2020-03-12 53 #ifdef CONFIG_KASAN 59c4da8640ccf4 Zong Li 2020-03-12 54 {KASAN_SHADOW_START, "Kasan shadow start"}, 59c4da8640ccf4 Zong Li 2020-03-12 55 {KASAN_SHADOW_END, "Kasan shadow end"}, 59c4da8640ccf4 Zong Li 2020-03-12 56 #endif 59c4da8640ccf4 Zong Li 2020-03-12 @57 {FIXADDR_START, "Fixmap start"}, 59c4da8640ccf4 Zong Li 2020-03-12 @58 {FIXADDR_TOP, "Fixmap end"}, 59c4da8640ccf4 Zong Li 2020-03-12 @59 {PCI_IO_START, "PCI I/O start"}, 59c4da8640ccf4 Zong Li 2020-03-12 @60 {PCI_IO_END, "PCI I/O end"}, 59c4da8640ccf4 Zong Li 2020-03-12 61 #ifdef CONFIG_SPARSEMEM_VMEMMAP 59c4da8640ccf4 Zong Li 2020-03-12 62 {VMEMMAP_START, "vmemmap start"}, 59c4da8640ccf4 Zong Li 2020-03-12 63 {VMEMMAP_END, "vmemmap end"}, 59c4da8640ccf4 Zong Li 2020-03-12 64 #endif 59c4da8640ccf4 Zong Li 2020-03-12 65 {VMALLOC_START, "vmalloc() area"}, 59c4da8640ccf4 Zong Li 2020-03-12 66 {VMALLOC_END, "vmalloc() end"}, 59c4da8640ccf4 Zong Li 2020-03-12 67 {PAGE_OFFSET, "Linear mapping"}, 59c4da8640ccf4 Zong Li 2020-03-12 68 {-1, NULL}, 59c4da8640ccf4 Zong Li 2020-03-12 69 }; 59c4da8640ccf4 Zong Li 2020-03-12 70 59c4da8640ccf4 Zong Li 2020-03-12 71 /* Page Table Entry */ 59c4da8640ccf4 Zong Li 2020-03-12 72 struct prot_bits { 59c4da8640ccf4 Zong Li 2020-03-12 73 u64 mask; 59c4da8640ccf4 Zong Li 2020-03-12 74 u64 val; 59c4da8640ccf4 Zong Li 2020-03-12 75 const char *set; 59c4da8640ccf4 Zong Li 2020-03-12 76 const char *clear; 59c4da8640ccf4 Zong Li 2020-03-12 77 }; 59c4da8640ccf4 Zong Li 2020-03-12 78 59c4da8640ccf4 Zong Li 2020-03-12 79 static const struct prot_bits pte_bits[] = { 59c4da8640ccf4 Zong Li 2020-03-12 80 { 59c4da8640ccf4 Zong Li 2020-03-12 81 .mask = _PAGE_SOFT, 59c4da8640ccf4 Zong Li 2020-03-12 82 .val = _PAGE_SOFT, 59c4da8640ccf4 Zong Li 2020-03-12 83 .set = "RSW", 59c4da8640ccf4 Zong Li 2020-03-12 84 .clear = " ", 59c4da8640ccf4 Zong Li 2020-03-12 85 }, { 59c4da8640ccf4 Zong Li 2020-03-12 86 .mask = _PAGE_DIRTY, 59c4da8640ccf4 Zong Li 2020-03-12 87 .val = _PAGE_DIRTY, 59c4da8640ccf4 Zong Li 2020-03-12 88 .set = "D", 59c4da8640ccf4 Zong Li 2020-03-12 89 .clear = ".", 59c4da8640ccf4 Zong Li 2020-03-12 90 }, { 59c4da8640ccf4 Zong Li 2020-03-12 91 .mask = _PAGE_ACCESSED, 59c4da8640ccf4 Zong Li 2020-03-12 92 .val = _PAGE_ACCESSED, 59c4da8640ccf4 Zong Li 2020-03-12 93 .set = "A", 59c4da8640ccf4 Zong Li 2020-03-12 94 .clear = ".", 59c4da8640ccf4 Zong Li 2020-03-12 95 }, { 59c4da8640ccf4 Zong Li 2020-03-12 96 .mask = _PAGE_GLOBAL, 59c4da8640ccf4 Zong Li 2020-03-12 97 .val = _PAGE_GLOBAL, 59c4da8640ccf4 Zong Li 2020-03-12 98 .set = "G", 59c4da8640ccf4 Zong Li 2020-03-12 99 .clear = ".", 59c4da8640ccf4 Zong Li 2020-03-12 100 }, { 59c4da8640ccf4 Zong Li 2020-03-12 101 .mask = _PAGE_USER, 59c4da8640ccf4 Zong Li 2020-03-12 102 .val = _PAGE_USER, 59c4da8640ccf4 Zong Li 2020-03-12 103 .set = "U", 59c4da8640ccf4 Zong Li 2020-03-12 104 .clear = ".", 59c4da8640ccf4 Zong Li 2020-03-12 105 }, { 59c4da8640ccf4 Zong Li 2020-03-12 106 .mask = _PAGE_EXEC, 59c4da8640ccf4 Zong Li 2020-03-12 107 .val = _PAGE_EXEC, 59c4da8640ccf4 Zong Li 2020-03-12 108 .set = "X", 59c4da8640ccf4 Zong Li 2020-03-12 109 .clear = ".", 59c4da8640ccf4 Zong Li 2020-03-12 110 }, { 59c4da8640ccf4 Zong Li 2020-03-12 111 .mask = _PAGE_WRITE, 59c4da8640ccf4 Zong Li 2020-03-12 112 .val = _PAGE_WRITE, 59c4da8640ccf4 Zong Li 2020-03-12 113 .set = "W", 59c4da8640ccf4 Zong Li 2020-03-12 114 .clear = ".", 59c4da8640ccf4 Zong Li 2020-03-12 115 }, { 59c4da8640ccf4 Zong Li 2020-03-12 116 .mask = _PAGE_READ, 59c4da8640ccf4 Zong Li 2020-03-12 117 .val = _PAGE_READ, 59c4da8640ccf4 Zong Li 2020-03-12 118 .set = "R", 59c4da8640ccf4 Zong Li 2020-03-12 119 .clear = ".", 59c4da8640ccf4 Zong Li 2020-03-12 120 }, { 59c4da8640ccf4 Zong Li 2020-03-12 121 .mask = _PAGE_PRESENT, 59c4da8640ccf4 Zong Li 2020-03-12 122 .val = _PAGE_PRESENT, 59c4da8640ccf4 Zong Li 2020-03-12 123 .set = "V", 59c4da8640ccf4 Zong Li 2020-03-12 124 .clear = ".", 59c4da8640ccf4 Zong Li 2020-03-12 125 } 59c4da8640ccf4 Zong Li 2020-03-12 126 }; 59c4da8640ccf4 Zong Li 2020-03-12 127 59c4da8640ccf4 Zong Li 2020-03-12 128 /* Page Level */ 59c4da8640ccf4 Zong Li 2020-03-12 129 struct pg_level { 59c4da8640ccf4 Zong Li 2020-03-12 130 const char *name; 59c4da8640ccf4 Zong Li 2020-03-12 131 u64 mask; 59c4da8640ccf4 Zong Li 2020-03-12 132 }; 59c4da8640ccf4 Zong Li 2020-03-12 133 59c4da8640ccf4 Zong Li 2020-03-12 134 static struct pg_level pg_level[] = { 59c4da8640ccf4 Zong Li 2020-03-12 135 { /* pgd */ 59c4da8640ccf4 Zong Li 2020-03-12 136 .name = "PGD", 59c4da8640ccf4 Zong Li 2020-03-12 137 }, { /* p4d */ 59c4da8640ccf4 Zong Li 2020-03-12 138 .name = (CONFIG_PGTABLE_LEVELS > 4) ? "P4D" : "PGD", 59c4da8640ccf4 Zong Li 2020-03-12 139 }, { /* pud */ 59c4da8640ccf4 Zong Li 2020-03-12 140 .name = (CONFIG_PGTABLE_LEVELS > 3) ? "PUD" : "PGD", 59c4da8640ccf4 Zong Li 2020-03-12 141 }, { /* pmd */ 59c4da8640ccf4 Zong Li 2020-03-12 142 .name = (CONFIG_PGTABLE_LEVELS > 2) ? "PMD" : "PGD", 59c4da8640ccf4 Zong Li 2020-03-12 143 }, { /* pte */ 59c4da8640ccf4 Zong Li 2020-03-12 144 .name = "PTE", 59c4da8640ccf4 Zong Li 2020-03-12 145 }, 59c4da8640ccf4 Zong Li 2020-03-12 146 }; 59c4da8640ccf4 Zong Li 2020-03-12 147 59c4da8640ccf4 Zong Li 2020-03-12 148 static void dump_prot(struct pg_state *st) 59c4da8640ccf4 Zong Li 2020-03-12 149 { 59c4da8640ccf4 Zong Li 2020-03-12 150 unsigned int i; 59c4da8640ccf4 Zong Li 2020-03-12 151 59c4da8640ccf4 Zong Li 2020-03-12 152 for (i = 0; i < ARRAY_SIZE(pte_bits); i++) { 59c4da8640ccf4 Zong Li 2020-03-12 153 const char *s; 59c4da8640ccf4 Zong Li 2020-03-12 154 59c4da8640ccf4 Zong Li 2020-03-12 155 if ((st->current_prot & pte_bits[i].mask) == pte_bits[i].val) 59c4da8640ccf4 Zong Li 2020-03-12 156 s = pte_bits[i].set; 59c4da8640ccf4 Zong Li 2020-03-12 157 else 59c4da8640ccf4 Zong Li 2020-03-12 158 s = pte_bits[i].clear; 59c4da8640ccf4 Zong Li 2020-03-12 159 59c4da8640ccf4 Zong Li 2020-03-12 160 if (s) 59c4da8640ccf4 Zong Li 2020-03-12 161 pt_dump_seq_printf(st->seq, " %s", s); 59c4da8640ccf4 Zong Li 2020-03-12 162 } 59c4da8640ccf4 Zong Li 2020-03-12 163 } 59c4da8640ccf4 Zong Li 2020-03-12 164 59c4da8640ccf4 Zong Li 2020-03-12 165 #ifdef CONFIG_64BIT 59c4da8640ccf4 Zong Li 2020-03-12 166 #define ADDR_FORMAT "0x%016lx" 59c4da8640ccf4 Zong Li 2020-03-12 167 #else 59c4da8640ccf4 Zong Li 2020-03-12 168 #define ADDR_FORMAT "0x%08lx" 59c4da8640ccf4 Zong Li 2020-03-12 169 #endif 59c4da8640ccf4 Zong Li 2020-03-12 170 static void dump_addr(struct pg_state *st, unsigned long addr) 59c4da8640ccf4 Zong Li 2020-03-12 171 { 59c4da8640ccf4 Zong Li 2020-03-12 172 static const char units[] = "KMGTPE"; 59c4da8640ccf4 Zong Li 2020-03-12 173 const char *unit = units; 59c4da8640ccf4 Zong Li 2020-03-12 174 unsigned long delta; 59c4da8640ccf4 Zong Li 2020-03-12 175 59c4da8640ccf4 Zong Li 2020-03-12 176 pt_dump_seq_printf(st->seq, ADDR_FORMAT "-" ADDR_FORMAT " ", 59c4da8640ccf4 Zong Li 2020-03-12 177 st->start_address, addr); 59c4da8640ccf4 Zong Li 2020-03-12 178 59c4da8640ccf4 Zong Li 2020-03-12 179 pt_dump_seq_printf(st->seq, " " ADDR_FORMAT " ", st->start_pa); 59c4da8640ccf4 Zong Li 2020-03-12 180 delta = (addr - st->start_address) >> 10; 59c4da8640ccf4 Zong Li 2020-03-12 181 59c4da8640ccf4 Zong Li 2020-03-12 182 while (!(delta & 1023) && unit[1]) { 59c4da8640ccf4 Zong Li 2020-03-12 183 delta >>= 10; 59c4da8640ccf4 Zong Li 2020-03-12 184 unit++; 59c4da8640ccf4 Zong Li 2020-03-12 185 } 59c4da8640ccf4 Zong Li 2020-03-12 186 59c4da8640ccf4 Zong Li 2020-03-12 187 pt_dump_seq_printf(st->seq, "%9lu%c %s", delta, *unit, 59c4da8640ccf4 Zong Li 2020-03-12 188 pg_level[st->level].name); 59c4da8640ccf4 Zong Li 2020-03-12 189 } 59c4da8640ccf4 Zong Li 2020-03-12 190 59c4da8640ccf4 Zong Li 2020-03-12 191 static void note_prot_wx(struct pg_state *st, unsigned long addr) 59c4da8640ccf4 Zong Li 2020-03-12 192 { 59c4da8640ccf4 Zong Li 2020-03-12 193 if (!st->check_wx) 59c4da8640ccf4 Zong Li 2020-03-12 194 return; 59c4da8640ccf4 Zong Li 2020-03-12 195 59c4da8640ccf4 Zong Li 2020-03-12 196 if ((st->current_prot & (_PAGE_WRITE | _PAGE_EXEC)) != 59c4da8640ccf4 Zong Li 2020-03-12 197 (_PAGE_WRITE | _PAGE_EXEC)) 59c4da8640ccf4 Zong Li 2020-03-12 198 return; 59c4da8640ccf4 Zong Li 2020-03-12 199 59c4da8640ccf4 Zong Li 2020-03-12 200 WARN_ONCE(1, "riscv/mm: Found insecure W+X mapping at address %p/%pS\n", 59c4da8640ccf4 Zong Li 2020-03-12 201 (void *)st->start_address, (void *)st->start_address); 59c4da8640ccf4 Zong Li 2020-03-12 202 59c4da8640ccf4 Zong Li 2020-03-12 203 st->wx_pages += (addr - st->start_address) / PAGE_SIZE; 59c4da8640ccf4 Zong Li 2020-03-12 204 } 59c4da8640ccf4 Zong Li 2020-03-12 205 59c4da8640ccf4 Zong Li 2020-03-12 206 static void note_page(struct ptdump_state *pt_st, unsigned long addr, 59c4da8640ccf4 Zong Li 2020-03-12 207 int level, unsigned long val) 59c4da8640ccf4 Zong Li 2020-03-12 208 { 59c4da8640ccf4 Zong Li 2020-03-12 209 struct pg_state *st = container_of(pt_st, struct pg_state, ptdump); 59c4da8640ccf4 Zong Li 2020-03-12 @210 u64 pa = PFN_PHYS(pte_pfn(__pte(val))); 59c4da8640ccf4 Zong Li 2020-03-12 211 u64 prot = 0; 59c4da8640ccf4 Zong Li 2020-03-12 212 59c4da8640ccf4 Zong Li 2020-03-12 213 if (level >= 0) 59c4da8640ccf4 Zong Li 2020-03-12 214 prot = val & pg_level[level].mask; 59c4da8640ccf4 Zong Li 2020-03-12 215 59c4da8640ccf4 Zong Li 2020-03-12 216 if (st->level == -1) { 59c4da8640ccf4 Zong Li 2020-03-12 217 st->level = level; 59c4da8640ccf4 Zong Li 2020-03-12 218 st->current_prot = prot; 59c4da8640ccf4 Zong Li 2020-03-12 219 st->start_address = addr; 59c4da8640ccf4 Zong Li 2020-03-12 220 st->start_pa = pa; 59c4da8640ccf4 Zong Li 2020-03-12 221 st->last_pa = pa; 59c4da8640ccf4 Zong Li 2020-03-12 222 pt_dump_seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); 59c4da8640ccf4 Zong Li 2020-03-12 223 } else if (prot != st->current_prot || 59c4da8640ccf4 Zong Li 2020-03-12 224 level != st->level || addr >= st->marker[1].start_address) { 59c4da8640ccf4 Zong Li 2020-03-12 225 if (st->current_prot) { 59c4da8640ccf4 Zong Li 2020-03-12 226 note_prot_wx(st, addr); 59c4da8640ccf4 Zong Li 2020-03-12 227 dump_addr(st, addr); 59c4da8640ccf4 Zong Li 2020-03-12 228 dump_prot(st); 59c4da8640ccf4 Zong Li 2020-03-12 229 pt_dump_seq_puts(st->seq, "\n"); 59c4da8640ccf4 Zong Li 2020-03-12 230 } 59c4da8640ccf4 Zong Li 2020-03-12 231 59c4da8640ccf4 Zong Li 2020-03-12 232 while (addr >= st->marker[1].start_address) { 59c4da8640ccf4 Zong Li 2020-03-12 233 st->marker++; 59c4da8640ccf4 Zong Li 2020-03-12 234 pt_dump_seq_printf(st->seq, "---[ %s ]---\n", 59c4da8640ccf4 Zong Li 2020-03-12 235 st->marker->name); 59c4da8640ccf4 Zong Li 2020-03-12 236 } 59c4da8640ccf4 Zong Li 2020-03-12 237 59c4da8640ccf4 Zong Li 2020-03-12 238 st->start_address = addr; 59c4da8640ccf4 Zong Li 2020-03-12 239 st->start_pa = pa; 59c4da8640ccf4 Zong Li 2020-03-12 240 st->last_pa = pa; 59c4da8640ccf4 Zong Li 2020-03-12 241 st->current_prot = prot; 59c4da8640ccf4 Zong Li 2020-03-12 242 st->level = level; 59c4da8640ccf4 Zong Li 2020-03-12 243 } else { 59c4da8640ccf4 Zong Li 2020-03-12 244 st->last_pa = pa; 59c4da8640ccf4 Zong Li 2020-03-12 245 } 59c4da8640ccf4 Zong Li 2020-03-12 246 } 59c4da8640ccf4 Zong Li 2020-03-12 247 :::::: The code at line 57 was first introduced by commit :::::: 59c4da8640ccf4721d54d36835706f3eefb521a4 riscv: Add support to dump the kernel page tables :::::: TO: Zong Li :::::: CC: Palmer Dabbelt --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --AhhlLboLdkugWU4S Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 U/wB6EVV6Uu4/wO2Z95VwD8CAA== --AhhlLboLdkugWU4S--